[llvm-commits] CVS: llvm/include/llvm/Target/TargetInstrInfo.h

Dan Gohman djg at cray.com
Thu Jun 14 13:51:06 PDT 2007



Changes in directory llvm/include/llvm/Target:

TargetInstrInfo.h updated: 1.127 -> 1.128
---
Log message:

Add a target hook to allow loads from constant pools to be rematerialized, and an
implementation for x86.


---
Diffs of the changes:  (+10 -0)

 TargetInstrInfo.h |   10 ++++++++++
 1 files changed, 10 insertions(+)


Index: llvm/include/llvm/Target/TargetInstrInfo.h
diff -u llvm/include/llvm/Target/TargetInstrInfo.h:1.127 llvm/include/llvm/Target/TargetInstrInfo.h:1.128
--- llvm/include/llvm/Target/TargetInstrInfo.h:1.127	Fri Jun  8 16:59:04 2007
+++ llvm/include/llvm/Target/TargetInstrInfo.h	Thu Jun 14 15:50:44 2007
@@ -298,6 +298,16 @@
     return 0;
   }
 
+  /// isOtherReMaterializableLoad - If the specified machine instruction is a
+  /// direct load that is trivially rematerializable, not counting loads from
+  /// stack slots, return true. If not, return false.  This predicate must
+  /// return false if the instruction has any side effects other than
+  /// producing the value from the load, or if it requres any address
+  /// registers that are not always available.
+  virtual bool isOtherReMaterializableLoad(MachineInstr *MI) const {
+    return false;
+  }
+
   /// convertToThreeAddress - This method must be implemented by targets that
   /// set the M_CONVERTIBLE_TO_3_ADDR flag.  When this flag is set, the target
   /// may be able to convert a two-address instruction into one or moretrue






More information about the llvm-commits mailing list