- Oct 08, 2010
-
-
Daniel Dunbar authored
'add'", which seems to have broken just about everything. llvm-svn: 116033
-
Daniel Dunbar authored
on r116007, which I am about to revert. llvm-svn: 116032
-
Daniel Dunbar authored
which depends on r116007, which I am about to revert. llvm-svn: 116031
-
Chris Lattner authored
only end up emitting LEA instead of OR. If we aren't able to promote something into an LEA, we should never be emitting it as an ADD. Add some testcases that we emit "or" in cases where we used to produce an "add". llvm-svn: 116026
-
Chris Lattner authored
casing FsMOVAPDrr/FsMOVAPSrr. llvm-svn: 116016
-
Chris Lattner authored
llvm-svn: 116014
-
Chris Lattner authored
is general goodness because it allows ORs to be converted to LEA to avoid inserting copies. However, this is bad because it makes the generated .s file less obvious and gives valgrind heartburn (tons of false positives in bitfield code). While the general fix should be in valgrind, we can at least try to avoid emitting ADD instructions that *don't* get promoted to LEA. This is more work because it requires introducing pseudo instructions to represents "add that knows the bits are disjoint", but hey, people really love valgrind. This fixes this testcase: https://bugs.kde.org/show_bug.cgi?id=242137#c20 the add r/i cases are coming next. llvm-svn: 116007
-
Chris Lattner authored
with the right types. llvm-svn: 116001
-
Chris Lattner authored
llvm-svn: 115997
-
- Oct 07, 2010
-
-
Chris Lattner authored
use. Since TEST is completely different than all other binops, don't define a multipattern for it. This completes factorization of binops. llvm-svn: 115982
-
Chris Lattner authored
llvm-svn: 115978
-
Evan Cheng authored
Canonicalize X86ISD::MOVDDUP nodes to v2f64 to make sure all cases match. Also eliminate unneeded isel patterns. rdar://8520311 llvm-svn: 115977
-
Chris Lattner authored
llvm-svn: 115968
-
Chris Lattner authored
llvm-svn: 115967
-
Chris Lattner authored
are not defined as returning EFLAGS (like add_flag and friends), the entire multipattern and several of the subclasses need to be cloned. This could be handled through better instantiation support in tblgen, but it isn't meta enough. llvm-svn: 115964
-
Jakob Stoklund Olesen authored
llvm-svn: 115952
-
Chris Lattner authored
allowing us to convert ADD over. deletes 160 lines of .td file. llvm-svn: 115897
-
Chris Lattner authored
Start using ArithBinOpEFLAGS for OR, XOR, and SUB. This removes 500 lines from the .td file. Now AND/OR/XOR/SUB are all defined exactly the same way instead of being close relatives. llvm-svn: 115896
-
Chris Lattner authored
which instantiates the 34 versions of and all in one swoop. The BaseOpc/BaseOpc2/BaseOpc4 stuff should not be required, but tblgen's feeble brain explodes when I use Or4<BaseOpc>.V in the multipattern. No change in the generated .inc files. llvm-svn: 115893
-
Chris Lattner authored
This does change the generated .inc files to include the implicit use/def of eax. Since these instructions are only generated by the assembler and disassembler it doesn't actually matter though. llvm-svn: 115885
-
Chris Lattner authored
As usual, no change in generated .inc files. llvm-svn: 115882
-
Chris Lattner authored
llvm-svn: 115880
-
Jakob Stoklund Olesen authored
instructions. This unbreaks the machine code verifier and fixes PR8317. llvm-svn: 115879
-
Chris Lattner authored
convert AND64ri32 to use BinOpRI. llvm-svn: 115878
-
Jakob Stoklund Olesen authored
This function looks like it is about ready to be generated by TebleGen. llvm-svn: 115876
-
- Oct 06, 2010
-
-
Chris Lattner authored
operand kind for immediates. Use these to define a new BinOpRI class and switch AND8/16/32ri over to it. AND64ri32 needs some more refactoring before it can make the switcheroo. llvm-svn: 115752
-
Chris Lattner authored
llvm-svn: 115748
-
Chris Lattner authored
that i8 operations are even and i16,i32,i64 operations have a low opcode bit set (they are odd). llvm-svn: 115747
-
Chris Lattner authored
llvm-svn: 115745
-
Chris Lattner authored
llvm-svn: 115744
-
Chris Lattner authored
gunk that goes along with an MVT (e.g. reg class, preferred load operation, memory operand) llvm-svn: 115727
-
Chris Lattner authored
that I need a heavier handed approach to get ultimate factorization. llvm-svn: 115726
-
Chris Lattner authored
where !cast is just as short. llvm-svn: 115722
-
Chris Lattner authored
!strconcat(!strconcat(!strconcat(!strconcat Simplify some x86 td files to use it. llvm-svn: 115719
-
Chris Lattner authored
register class, and use this to simplify use of BinOpRR. llvm-svn: 115716
-
Chris Lattner authored
llvm-svn: 115715
-
Chris Lattner authored
convert all the rest of the cmovs to the multiclass, with good results: X86InstrCMovSetCC.td | 598 +-------------------------------------------------- X86InstrCompiler.td | 61 +++++ 2 files changed, 77 insertions(+), 582 deletions(-) llvm-svn: 115707
-
Chris Lattner authored
(e.g. CMOVBE16rr instead of CMOVBErr16). llvm-svn: 115705
-
Chris Lattner authored
simplify the X86 CMOVmr's. llvm-svn: 115702
-
Chris Lattner authored
and verbosity llvm-svn: 115701
-