diff options
author | Richard Sandiford <rsandifo@linux.vnet.ibm.com> | 2013-06-27 09:38:48 +0000 |
---|---|---|
committer | Richard Sandiford <rsandifo@linux.vnet.ibm.com> | 2013-06-27 09:38:48 +0000 |
commit | a57e13b670ac4f40befe6b0e50bb7e91eec3b481 (patch) | |
tree | 19738a4a649f83fa0d368b5d5b9edf145740e9ac /llvm/lib/Target/SystemZ/SystemZInstrInfo.td | |
parent | 815d3232a77c1a67a8b95386066aea526257f32d (diff) | |
download | bcm5719-llvm-a57e13b670ac4f40befe6b0e50bb7e91eec3b481.tar.gz bcm5719-llvm-a57e13b670ac4f40befe6b0e50bb7e91eec3b481.zip |
[SystemZ] Allow immediate moves to be rematerialized
llvm-svn: 185068
Diffstat (limited to 'llvm/lib/Target/SystemZ/SystemZInstrInfo.td')
-rw-r--r-- | llvm/lib/Target/SystemZ/SystemZInstrInfo.td | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/llvm/lib/Target/SystemZ/SystemZInstrInfo.td b/llvm/lib/Target/SystemZ/SystemZInstrInfo.td index 44ff1d00472..7debcdd506a 100644 --- a/llvm/lib/Target/SystemZ/SystemZInstrInfo.td +++ b/llvm/lib/Target/SystemZ/SystemZInstrInfo.td @@ -222,7 +222,8 @@ let neverHasSideEffects = 1 in { } // Immediate moves. -let neverHasSideEffects = 1, isAsCheapAsAMove = 1, isMoveImm = 1 in { +let neverHasSideEffects = 1, isAsCheapAsAMove = 1, isMoveImm = 1, + isReMaterializable = 1 in { // 16-bit sign-extended immediates. def LHI : UnaryRI<"lhi", 0xA78, bitconvert, GR32, imm32sx16>; def LGHI : UnaryRI<"lghi", 0xA79, bitconvert, GR64, imm64sx16>; @@ -476,7 +477,8 @@ def IIHH : BinaryRI<"iihh", 0xA50, inserthh, GR64, imm64hh16>; // full-width move. (We use IILF rather than something like LLILF // for 32-bit moves because IILF leaves the upper 32 bits of the // GR64 unchanged.) -let isCodeGenOnly = 1 in { +let isCodeGenOnly = 1, isAsCheapAsAMove = 1, isMoveImm = 1, + isReMaterializable = 1 in { def IILF32 : UnaryRIL<"iilf", 0xC09, bitconvert, GR32, uimm32>; } def IILF : BinaryRIL<"iilf", 0xC09, insertlf, GR64, imm64lf32>; |