OSDN Git Service

Add a new method, described in the comment.
authorChris Lattner <sabre@nondot.org>
Wed, 19 Jan 2005 06:53:02 +0000 (06:53 +0000)
committerChris Lattner <sabre@nondot.org>
Wed, 19 Jan 2005 06:53:02 +0000 (06:53 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19683 91177308-0d34-0410-b5e6-96231b3b80d8

include/llvm/Target/TargetInstrInfo.h

index 855ce86..d5237f2 100644 (file)
@@ -177,6 +177,18 @@ public:
     return 0;
   }
 
+  /// commuteInstruction - If a target has any instructions that are commutable,
+  /// but require converting to a different instruction or making non-trivial
+  /// changes to commute them, this method can overloaded to do this.  The
+  /// default implementation of this method simply swaps the first two operands
+  /// of MI and returns it.
+  ///
+  /// If a target wants to make more aggressive changes, they can construct and
+  /// return a new machine instruction.  If an instruction cannot commute, it
+  /// can also return null.
+  ///
+  virtual MachineInstr *commuteInstruction(MachineInstr *MI) const;
+
   /// Insert a goto (unconditional branch) sequence to TMBB, at the
   /// end of MBB
   virtual void insertGoto(MachineBasicBlock& MBB,