From: Chris Lattner Date: Wed, 19 Jan 2005 06:53:02 +0000 (+0000) Subject: Add a new method, described in the comment. X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=d7e2fe40e42dffa04a770191c3414446d5e8c30a;p=oota-llvm.git Add a new method, described in the comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19683 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/include/llvm/Target/TargetInstrInfo.h b/include/llvm/Target/TargetInstrInfo.h index 855ce86ed08..d5237f2f7cc 100644 --- a/include/llvm/Target/TargetInstrInfo.h +++ b/include/llvm/Target/TargetInstrInfo.h @@ -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,