diff options
Diffstat (limited to 'include')
-rw-r--r-- | include/llvm/Target/Target.td | 2 | ||||
-rw-r--r-- | include/llvm/Target/TargetInstrDesc.h | 13 |
2 files changed, 9 insertions, 6 deletions
diff --git a/include/llvm/Target/Target.td b/include/llvm/Target/Target.td index 91e44f23a5..c3daf09acc 100644 --- a/include/llvm/Target/Target.td +++ b/include/llvm/Target/Target.td @@ -189,7 +189,7 @@ class Instruction { bit isIndirectBranch = 0; // Is this instruction an indirect branch? bit isBarrier = 0; // Can control flow fall through this instruction? bit isCall = 0; // Is this instruction a call instruction? - bit isSimpleLoad = 0; // Is this just a load instruction? + bit isSimpleLoad = 0; // Can this be folded as a 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 isTwoAddress = 0; // Is this a two address instruction? diff --git a/include/llvm/Target/TargetInstrDesc.h b/include/llvm/Target/TargetInstrDesc.h index 6d9a9bca28..70893e313b 100644 --- a/include/llvm/Target/TargetInstrDesc.h +++ b/include/llvm/Target/TargetInstrDesc.h @@ -301,11 +301,14 @@ public: return Flags & (1 << TID::DelaySlot); } - /// isSimpleLoad - Return true for instructions that are simple loads from - /// memory. This should only be set on instructions that load a value from - /// memory and return it in their only virtual register definition. - /// Instructions that return a value loaded from memory and then modified in - /// some way should not return true for this. + /// isSimpleLoad - Return true for instructions that can be folded as + /// memory operands in other instructions. The most common use for this + /// is instructions that are simple loads from memory that don't modify + /// the loaded value in any way, but it can also be used for instructions + /// that can be expressed as constant-pool loads, such as V_SETALLONES + /// on x86, to allow them to be folded when it is beneficial. + /// This should only be set on instructions that return a value in their + /// only virtual register definition. bool isSimpleLoad() const { return Flags & (1 << TID::SimpleLoad); } |