Changes in directory llvm/lib/Target/ARM:
ARMInstrInfo.td updated: 1.88 -> 1.89 ARMInstrThumb.td updated: 1.14 -> 1.15 --- Log message: Constant generation instructions are re-materializable. --- Diffs of the changes: (+11 -5) ARMInstrInfo.td | 15 ++++++++++----- ARMInstrThumb.td | 1 + 2 files changed, 11 insertions(+), 5 deletions(-) Index: llvm/lib/Target/ARM/ARMInstrInfo.td diff -u llvm/lib/Target/ARM/ARMInstrInfo.td:1.88 llvm/lib/Target/ARM/ARMInstrInfo.td:1.89 --- llvm/lib/Target/ARM/ARMInstrInfo.td:1.88 Sat Feb 3 03:11:58 2007 +++ llvm/lib/Target/ARM/ARMInstrInfo.td Mon Mar 19 02:09:02 2007 @@ -137,7 +137,7 @@ PatLeaf<(imm), [{ return ARM_AM::getSOImmVal(-(int)N->getValue()) != -1; }], so_imm_neg_XFORM>; -def so_imm_not : +def so_imm_not : PatLeaf<(imm), [{ return ARM_AM::getSOImmVal(~(int)N->getValue()) != -1; }], so_imm_not_XFORM>; @@ -709,6 +709,8 @@ "mov $dst, $src", []>; def MOVrs : AI1<(ops GPR:$dst, so_reg:$src), "mov $dst, $src", [(set GPR:$dst, so_reg:$src)]>; + +let isReMaterializable = 1 in def MOVri : AI1<(ops GPR:$dst, so_imm:$src), "mov $dst, $src", [(set GPR:$dst, so_imm:$src)]>; @@ -806,10 +808,13 @@ defm EOR : AI1_bin_irs<"eor", BinOpFrag<(xor node:$LHS, node:$RHS)>>; defm BIC : AI1_bin_irs<"bic", BinOpFrag<(and node:$LHS, (not node:$RHS))>>; -defm MVN : AI1_unary_irs<"mvn", not>; - -def : ARMPat<(i32 so_imm_not:$imm), - (MVNi so_imm_not:$imm)>; +def MVNr : AI<(ops GPR:$dst, GPR:$src), + "mvn $dst, $src", [(set GPR:$dst, (not GPR:$src))]>; +def MVNs : AI<(ops GPR:$dst, so_reg:$src), + "mvn $dst, $src", [(set GPR:$dst, (not so_reg:$src))]>; +let isReMaterializable = 1 in +def MVNi : AI<(ops GPR:$dst, so_imm:$imm), + "mvn $dst, $imm", [(set GPR:$dst, so_imm_not:$imm)]>; def : ARMPat<(and GPR:$src, so_imm_not:$imm), (BICri GPR:$src, so_imm_not:$imm)>; Index: llvm/lib/Target/ARM/ARMInstrThumb.td diff -u llvm/lib/Target/ARM/ARMInstrThumb.td:1.14 llvm/lib/Target/ARM/ARMInstrThumb.td:1.15 --- llvm/lib/Target/ARM/ARMInstrThumb.td:1.14 Tue Feb 6 18:06:56 2007 +++ llvm/lib/Target/ARM/ARMInstrThumb.td Mon Mar 19 02:09:02 2007 @@ -374,6 +374,7 @@ "lsr $dst, $rhs", [(set GPR:$dst, (srl GPR:$lhs, GPR:$rhs))]>; +let isReMaterializable = 1 in def tMOVri8 : TI<(ops GPR:$dst, i32imm:$src), "mov $dst, $src", [(set GPR:$dst, imm0_255:$src)]>; _______________________________________________ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits