diff options
author | Jakob Stoklund Olesen <stoklund@2pi.dk> | 2012-08-23 19:34:46 +0000 |
---|---|---|
committer | Jakob Stoklund Olesen <stoklund@2pi.dk> | 2012-08-23 19:34:46 +0000 |
commit | c1f10fd5b9a780d1c42dca7143d7a8acd9bd9377 (patch) | |
tree | 46fdaf33b0229d8d1e181de9f10f58281a4facfe /include/llvm | |
parent | f104bf65b9d748618d23caa37b2407fe9c2b174c (diff) | |
download | external_llvm-c1f10fd5b9a780d1c42dca7143d7a8acd9bd9377.zip external_llvm-c1f10fd5b9a780d1c42dca7143d7a8acd9bd9377.tar.gz external_llvm-c1f10fd5b9a780d1c42dca7143d7a8acd9bd9377.tar.bz2 |
Tristate mayLoad, mayStore, and hasSideEffects.
Keep track of the set/unset state of these bits along with their
true/false values, but treat '?' as '0' for now.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@162461 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include/llvm')
-rw-r--r-- | include/llvm/TableGen/Record.h | 6 | ||||
-rw-r--r-- | include/llvm/Target/Target.td | 6 |
2 files changed, 9 insertions, 3 deletions
diff --git a/include/llvm/TableGen/Record.h b/include/llvm/TableGen/Record.h index add5131..75ca88a 100644 --- a/include/llvm/TableGen/Record.h +++ b/include/llvm/TableGen/Record.h @@ -1511,6 +1511,12 @@ public: /// bool getValueAsBit(StringRef FieldName) const; + /// getValueAsBitOrUnset - This method looks up the specified field and + /// returns its value as a bit. If the field is unset, sets Unset to true and + /// retunrs false. + /// + bool getValueAsBitOrUnset(StringRef FieldName, bool &Unset) const; + /// getValueAsInt - This method looks up the specified field and returns its /// value as an int64_t, throwing an exception if the field does not exist or /// if the value is not the right type. diff --git a/include/llvm/Target/Target.td b/include/llvm/Target/Target.td index 1f86607..f0458ec 100644 --- a/include/llvm/Target/Target.td +++ b/include/llvm/Target/Target.td @@ -343,8 +343,8 @@ class Instruction { bit isBarrier = 0; // Can control flow fall through this instruction? bit isCall = 0; // Is this instruction a call instruction? bit canFoldAsLoad = 0; // Can this be folded as a simple memory operand? - bit mayLoad = 0; // Is it possible for this inst to read memory? - bit mayStore = 0; // Is it possible for this inst to write memory? + bit mayLoad = ?; // Is it possible for this inst to read memory? + bit mayStore = ?; // Is it possible for this inst to write memory? bit isConvertibleToThreeAddress = 0; // Can this 2-addr instruction promote? bit isCommutable = 0; // Is this 3 operand instruction commutable? bit isTerminator = 0; // Is this part of the terminator for a basic block? @@ -369,7 +369,7 @@ class Instruction { // // neverHasSideEffects - Set on an instruction with no pattern if it has no // side effects. - bit hasSideEffects = 0; + bit hasSideEffects = ?; bit neverHasSideEffects = 0; // Is this instruction a "real" instruction (with a distinct machine |