[IR] Conservatively mark 'catchpad' as accessing memory
authorDavid Majnemer <david.majnemer@gmail.com>
Thu, 10 Sep 2015 18:50:09 +0000 (18:50 +0000)
committerDavid Majnemer <david.majnemer@gmail.com>
Thu, 10 Sep 2015 18:50:09 +0000 (18:50 +0000)
The exact semantics of 'catchpad' are really in the hands of the
personality routine so we shouldn't assume that they have no side
effects.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@247322 91177308-0d34-0410-b5e6-96231b3b80d8

lib/IR/Instruction.cpp

index 908e79039b51eafe78cdcfe2ed6c088cd90f1b64..91ac83c10d457cd9423421e4ecbd204cadbc58ff 100644 (file)
@@ -414,6 +414,7 @@ bool Instruction::mayReadFromMemory() const {
   case Instruction::Fence: // FIXME: refine definition of mayReadFromMemory
   case Instruction::AtomicCmpXchg:
   case Instruction::AtomicRMW:
+  case Instruction::CatchPad:
   case Instruction::CatchRet:
   case Instruction::TerminatePad:
     return true;
@@ -436,6 +437,7 @@ bool Instruction::mayWriteToMemory() const {
   case Instruction::VAArg:
   case Instruction::AtomicCmpXchg:
   case Instruction::AtomicRMW:
+  case Instruction::CatchPad:
   case Instruction::CatchRet:
   case Instruction::TerminatePad:
     return true;