[llvm-commits] [llvm] r91972 - /llvm/trunk/lib/Target/X86/X86InstrInfo.td

Chris Lattner sabre at nondot.org
Tue Dec 22 17:30:26 PST 2009


Author: lattner
Date: Tue Dec 22 19:30:26 2009
New Revision: 91972

URL: http://llvm.org/viewvc/llvm-project?rev=91972&view=rev
Log:
stop pattern matching 16-bit zero's of a register to MOV16r0,
instead use the appropriate subreggy thing.  This generates identical
code on some large apps (thanks to Evan's cross class coalescing
stuff he did back in july).  This means that MOV16r0 can go away
completely in the future soon.

Modified:
    llvm/trunk/lib/Target/X86/X86InstrInfo.td

Modified: llvm/trunk/lib/Target/X86/X86InstrInfo.td
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/X86/X86InstrInfo.td?rev=91972&r1=91971&r2=91972&view=diff

==============================================================================
--- llvm/trunk/lib/Target/X86/X86InstrInfo.td (original)
+++ llvm/trunk/lib/Target/X86/X86InstrInfo.td Tue Dec 22 19:30:26 2009
@@ -3700,15 +3700,21 @@
 def MOV8r0   : I<0x30, MRMInitReg, (outs GR8 :$dst), (ins),
                  "xor{b}\t$dst, $dst",
                  [(set GR8:$dst, 0)]>;
+                 
+ def MOV32r0  : I<0x31, MRMInitReg, (outs GR32:$dst), (ins),
+                  "xor{l}\t$dst, $dst",
+                  [(set GR32:$dst, 0)]>;
+
 // Use xorl instead of xorw since we don't care about the high 16 bits,
 // it's smaller, and it avoids a partial-register update.
 def MOV16r0  : I<0x31, MRMInitReg, (outs GR16:$dst), (ins),
-                 "", [(set GR16:$dst, 0)]>;
-def MOV32r0  : I<0x31, MRMInitReg,  (outs GR32:$dst), (ins),
-                 "xor{l}\t$dst, $dst",
-                 [(set GR32:$dst, 0)]>;
+                 "", [/*(set GR16:$dst, 0)*/]>;
 }
 
+let AddedComplexity = 1 in
+def : Pat<(i16 0),
+          (EXTRACT_SUBREG (MOV32r0), x86_subreg_16bit)>;
+
 //===----------------------------------------------------------------------===//
 // Thread Local Storage Instructions
 //





More information about the llvm-commits mailing list