- Jan 22, 2005
-
-
Chris Lattner authored
emitting code like this: case PPC::ADD: O << "add "; printOperand(MI, 0, MVT::i64); O << ", "; prin tOperand(MI, 1, MVT::i64); O << ", "; printOperand(MI, 2, MVT::i64); O << '\n '; break; case PPC::ADDC: O << "addc "; printOperand(MI, 0, MVT::i64); O << ", "; pr intOperand(MI, 1, MVT::i64); O << ", "; printOperand(MI, 2, MVT::i64); O << ' \n'; break; case PPC::ADDE: O << "adde "; printOperand(MI, 0, MVT::i64); O << ", "; pr intOperand(MI, 1, MVT::i64); O << ", "; printOperand(MI, 2, MVT::i64); O << ' \n'; break; ... Emit code like this: case PPC::ADD: case PPC::ADDC: case PPC::ADDE: ... switch (MI->getOpcode()) { case PPC::ADD: O << "add "; break; case PPC::ADDC: O << "addc "; break; case PPC::ADDE: O << "adde "; break; ... } printOperand(MI, 0, MVT::i64); O << ", "; printOperand(MI, 1, MVT::i64); O << ", "; printOperand(MI, 2, MVT::i64); O << "\n"; break; This shrinks the PPC asm writer from 24785->15205 bytes (even though the new asmwriter has much more whitespace than the old one), and the X86 printers shrink quite a bit too. The important implication of this is that GCC no longer hits swap when building the PPC backend in optimized mode. Thus this fixes PR448. -Chris llvm-svn: 19755
-
Chris Lattner authored
llvm-svn: 19754
-
Chris Lattner authored
llvm-svn: 19753
-
Jeff Cohen authored
llvm-svn: 19752
-
Jeff Cohen authored
llvm-svn: 19751
-
Jeff Cohen authored
llvm-svn: 19750
-
Chris Lattner authored
and more understandable. It also allows us to do simple things like fold consequtive literal strings together. For example, instead of emitting this for the X86 backend: O << "adc" << "l" << " "; we now generate this: O << "adcl "; *whoa* :) This shrinks the X86 asmwriters from 62729->58267 and 65176->58644 bytes for the intel/att asm writers respectively. llvm-svn: 19749
-
Jeff Cohen authored
llvm-svn: 19748
-
Jeff Cohen authored
llvm-svn: 19747
-
Jeff Cohen authored
llvm-svn: 19746
-
Chris Lattner authored
This fixes the return-address-not-being-saved problem in the Alpha backend. llvm-svn: 19741
-
Andrew Lenharth authored
llvm-svn: 19740
-
Chris Lattner authored
llvm-svn: 19739
-
Chris Lattner authored
llvm-svn: 19738
-
Chris Lattner authored
llvm-svn: 19737
-
Chris Lattner authored
llvm-svn: 19736
-
Chris Lattner authored
llvm-svn: 19735
-
Chris Lattner authored
as long as they are the same size. llvm-svn: 19734
-
- Jan 21, 2005
-
-
Chris Lattner authored
llvm-svn: 19733
-
Chris Lattner authored
llvm-svn: 19732
-
Chris Lattner authored
llvm-svn: 19731
-
Chris Lattner authored
since we are dirty, special case __main. This should fix the infinite loop horrible stuff that happens on linux-alpha when configuring llvm-gcc. It might also help cygwin, who knows?? llvm-svn: 19729
-
Chris Lattner authored
llvm-svn: 19728
-
Chris Lattner authored
llvm-svn: 19727
-
Chris Lattner authored
operations for 64-bit integers. llvm-svn: 19724
-
Chris Lattner authored
designed to be put on the stack, that's not cool. Catch and ignore the exception. llvm-svn: 19723
-
- Jan 20, 2005
-
-
Chris Lattner authored
readded when the bug is fixed. llvm-svn: 19722
-
Chris Lattner authored
llvm-svn: 19721
-
Chris Lattner authored
fixes most of the remaining llc-beta failures. llvm-svn: 19716
-
Chris Lattner authored
llvm-svn: 19715
-
Chris Lattner authored
llvm-svn: 19714
-
Chris Lattner authored
llvm-svn: 19713
-
Chris Lattner authored
llvm-svn: 19712
-
Chris Lattner authored
llvm-svn: 19711
-
Jeff Cohen authored
llvm-svn: 19710
-
Jeff Cohen authored
llvm-svn: 19709
-
Jeff Cohen authored
llvm-svn: 19708
-
- Jan 19, 2005
-
-
Chris Lattner authored
llvm-svn: 19707
-
Chris Lattner authored
The second folds operations into selects, e.g. (select C, (X+Y), (Y+Z)) -> (Y+(select C, X, Z) This occurs a few times across spec, e.g. select add/sub mesa: 83 0 povray: 5 2 gcc 4 2 parser 0 22 perlbmk 13 30 twolf 0 3 llvm-svn: 19706
-
Chris Lattner authored
llvm-svn: 19705
-