mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-09-24 23:28:41 +00:00
Replace TargetInstrInfo::isInvariantLoad and its target-specific
implementations with a new MachineInstr::isInvariantLoad, which uses MachineMemOperands and is target-independent. This brings MachineLICM and other functionality to targets which previously lacked an isInvariantLoad implementation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83475 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -26,6 +26,7 @@
|
||||
|
||||
namespace llvm {
|
||||
|
||||
class AliasAnalysis;
|
||||
class TargetInstrDesc;
|
||||
class TargetInstrInfo;
|
||||
class TargetRegisterInfo;
|
||||
@@ -286,6 +287,13 @@ public:
|
||||
/// have no volatile memory references.
|
||||
bool hasVolatileMemoryRef() const;
|
||||
|
||||
/// isInvariantLoad - Return true if this instruction is loading from a
|
||||
/// location whose value is invariant across the function. For example,
|
||||
/// loading a value from the constant pool or from from the argument area of
|
||||
/// a function if it does not change. This should only return true of *all*
|
||||
/// loads the instruction does are invariant (if it does multiple loads).
|
||||
bool isInvariantLoad(AliasAnalysis *AA = 0) const;
|
||||
|
||||
//
|
||||
// Debugging support
|
||||
//
|
||||
|
Reference in New Issue
Block a user