aboutsummaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
Diffstat (limited to 'include')
-rw-r--r--include/llvm/CodeGen/MachineInstr.h8
-rw-r--r--include/llvm/InlineAsm.h2
2 files changed, 7 insertions, 3 deletions
diff --git a/include/llvm/CodeGen/MachineInstr.h b/include/llvm/CodeGen/MachineInstr.h
index eab74bd..4270901 100644
--- a/include/llvm/CodeGen/MachineInstr.h
+++ b/include/llvm/CodeGen/MachineInstr.h
@@ -58,8 +58,10 @@ public:
NoFlags = 0,
FrameSetup = 1 << 0, // Instruction is used as a part of
// function frame setup code.
- InsideBundle = 1 << 1 // Instruction is inside a bundle (not
+ InsideBundle = 1 << 1, // Instruction is inside a bundle (not
// the first MI in a bundle)
+ MayLoad = 1 << 2, // Instruction could possibly read memory.
+ MayStore = 1 << 3 // Instruction could possibly modify memory.
};
private:
const MCInstrDesc *MCID; // Instruction descriptor.
@@ -445,7 +447,7 @@ public:
/// Instructions with this flag set are not necessarily simple load
/// instructions, they may load a value and modify it, for example.
bool mayLoad(QueryType Type = AnyInBundle) const {
- return hasProperty(MCID::MayLoad, Type);
+ return hasProperty(MCID::MayLoad, Type) || (Flags & MayLoad);
}
@@ -454,7 +456,7 @@ public:
/// instructions, they may store a modified value based on their operands, or
/// may not actually modify anything, for example.
bool mayStore(QueryType Type = AnyInBundle) const {
- return hasProperty(MCID::MayStore, Type);
+ return hasProperty(MCID::MayStore, Type) || (Flags & MayStore);
}
//===--------------------------------------------------------------------===//
diff --git a/include/llvm/InlineAsm.h b/include/llvm/InlineAsm.h
index c6e0aab..b5e0fd4 100644
--- a/include/llvm/InlineAsm.h
+++ b/include/llvm/InlineAsm.h
@@ -214,6 +214,8 @@ public:
Extra_HasSideEffects = 1,
Extra_IsAlignStack = 2,
Extra_AsmDialect = 4,
+ Extra_MayLoad = 8,
+ Extra_MayStore = 16,
// Inline asm operands map to multiple SDNode / MachineInstr operands.
// The first operand is an immediate describing the asm operand, the low