aboutsummaryrefslogtreecommitdiffstats
path: root/lib/Target/X86/X86InstrInfo.h
diff options
context:
space:
mode:
authorJakob Stoklund Olesen <stoklund@2pi.dk>2010-06-02 22:47:25 +0000
committerJakob Stoklund Olesen <stoklund@2pi.dk>2010-06-02 22:47:25 +0000
commit9edf7deb37f0f97664f279040fa15d89f32e23d9 (patch)
treeff4ebced76552d3fb3baff8aeed89f3b8f6f8791 /lib/Target/X86/X86InstrInfo.h
parent4839d872fca46ec83a76ed8db041b03df3616cfd (diff)
downloadexternal_llvm-9edf7deb37f0f97664f279040fa15d89f32e23d9.zip
external_llvm-9edf7deb37f0f97664f279040fa15d89f32e23d9.tar.gz
external_llvm-9edf7deb37f0f97664f279040fa15d89f32e23d9.tar.bz2
Slightly change the meaning of the reMaterialize target hook when the original
instruction defines subregisters. Any existing subreg indices on the original instruction are preserved or composed with the new subreg index. Also substitute multiple operands mentioning the original register by using the new MachineInstr::substituteRegister() function. This is necessary because there will soon be <imp-def> operands added to non read-modify-write partial definitions. This instruction: %reg1234:foo = FLAP %reg1234<imp-def> will reMaterialize(%reg3333, bar) like this: %reg3333:bar-foo = FLAP %reg333:bar<imp-def> Finally, replace the TargetRegisterInfo pointer argument with a reference to indicate that it cannot be NULL. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105358 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Target/X86/X86InstrInfo.h')
-rw-r--r--lib/Target/X86/X86InstrInfo.h2
1 files changed, 1 insertions, 1 deletions
diff --git a/lib/Target/X86/X86InstrInfo.h b/lib/Target/X86/X86InstrInfo.h
index 62d7c74..2c20232 100644
--- a/lib/Target/X86/X86InstrInfo.h
+++ b/lib/Target/X86/X86InstrInfo.h
@@ -555,7 +555,7 @@ public:
void reMaterialize(MachineBasicBlock &MBB, MachineBasicBlock::iterator MI,
unsigned DestReg, unsigned SubIdx,
const MachineInstr *Orig,
- const TargetRegisterInfo *TRI) const;
+ const TargetRegisterInfo &TRI) const;
/// convertToThreeAddress - This method must be implemented by targets that
/// set the M_CONVERTIBLE_TO_3_ADDR flag. When this flag is set, the target