- May 14, 2005
-
-
Chris Lattner authored
llvm-svn: 22026
-
Chris Lattner authored
llvm-svn: 22015
-
Chris Lattner authored
llvm-svn: 22004
-
Chris Lattner authored
llvm-svn: 21993
-
- May 13, 2005
-
-
Chris Lattner authored
llvm-svn: 21958
-
Chris Lattner authored
llvm-svn: 21931
-
Chris Lattner authored
llvm-svn: 21930
-
- May 12, 2005
-
-
Chris Lattner authored
llvm-svn: 21900
-
- May 11, 2005
-
-
Chris Lattner authored
llvm-svn: 21870
-
- May 10, 2005
-
-
Chris Lattner authored
llvm-svn: 21833
-
- May 09, 2005
-
-
Chris Lattner authored
llvm-svn: 21825
-
Chris Lattner authored
being stored/loaded through! llvm-svn: 21806
-
Chris Lattner authored
llvm-svn: 21804
-
- May 05, 2005
-
-
Chris Lattner authored
Lower debug info to noops. llvm-svn: 21698
-
- May 03, 2005
-
-
Andrew Lenharth authored
population (ctpop). Generic lowering is implemented, however only promotion is implemented for SelectionDAG at the moment. More coming soon. llvm-svn: 21676
-
- Apr 30, 2005
-
-
Chris Lattner authored
was contributed by Morten Ofstad, with some minor tweaks and bug fixes added by me. llvm-svn: 21636
-
- Apr 27, 2005
-
-
Andrew Lenharth authored
Implement Value* tracking for loads and stores in the selection DAG. This enables one to use alias analysis in the backends. (TRUNK)Stores and (EXT|ZEXT|SEXT)Loads have an extra SDOperand which is a SrcValueSDNode which contains the Value*. Note that if the operation is introduced by the backend, it will still have the operand, but the value* will be null. llvm-svn: 21599
-
- Apr 22, 2005
-
-
Misha Brukman authored
llvm-svn: 21439
-
Misha Brukman authored
llvm-svn: 21420
-
- Apr 13, 2005
-
-
Nate Begeman authored
Make llvm undef values generate ISD::UNDEF nodes llvm-svn: 21261
-
- Apr 09, 2005
-
-
Chris Lattner authored
llvm-svn: 21167
-
- Apr 02, 2005
-
-
Chris Lattner authored
llvm-svn: 21014
-
Chris Lattner authored
llvm-svn: 21011
-
- Mar 31, 2005
-
-
Andrew Lenharth authored
llvm-svn: 20965
-
- Mar 30, 2005
-
-
Chris Lattner authored
them up after the code has been emitted. This allows targets to select one mbb as multiple mbb's as needed. llvm-svn: 20937
-
- Mar 29, 2005
-
-
Chris Lattner authored
returned integer values all of the way to 64-bits (we only did it to 32-bits leaving the top bits undefined). This causes problems for targets like alpha whose ABI's define the top bits too. llvm-svn: 20926
-
- Mar 26, 2005
-
-
Nate Begeman authored
llvm-svn: 20842
-
- Mar 15, 2005
-
-
Chris Lattner authored
using Function::arg_{iterator|begin|end}. Likewise Module::g* -> Module::global_*. This patch is contributed by Gabor Greif, thanks! llvm-svn: 20597
-
- Feb 17, 2005
-
-
Misha Brukman authored
llvm-svn: 20231
-
Chris Lattner authored
Don't sink argument loads into loops or other bad places. This disables folding of argument loads with instructions that are not in the entry block. llvm-svn: 20228
-
- Jan 23, 2005
-
-
Chris Lattner authored
llvm-svn: 19779
-
Chris Lattner authored
llvm-svn: 19763
-
- Jan 19, 2005
-
-
Chris Lattner authored
llvm-svn: 19707
-
- Jan 18, 2005
-
-
Chris Lattner authored
do it. This results in better code on X86 for floats (because if strict precision is not required, we can elide some more expensive double -> float conversions like the old isel did), and allows other targets to emit CopyFromRegs that are not legal for arguments. llvm-svn: 19668
-
Chris Lattner authored
llvm-svn: 19656
-
- Jan 17, 2005
-
-
Chris Lattner authored
X86/reg-pressure.ll again, and allows us to do nice things in other cases. For example, we now codegen this sort of thing: int %loadload(int *%X, int* %Y) { %Z = load int* %Y %Y = load int* %X ;; load between %Z and store %Q = add int %Z, 1 store int %Q, int* %Y ret int %Y } Into this: loadload: mov %EAX, DWORD PTR [%ESP + 4] mov %EAX, DWORD PTR [%EAX] mov %ECX, DWORD PTR [%ESP + 8] inc DWORD PTR [%ECX] ret where we weren't able to form the 'inc [mem]' before. This also lets the instruction selector emit loads in any order it wants to, which can be good for register pressure as well. llvm-svn: 19644
-
Chris Lattner authored
llvm-svn: 19642
-
Chris Lattner authored
the basic block that uses them if possible. This is a big win on X86, as it lets us fold the argument loads into instructions and reduce register pressure (by not loading all of the arguments in the entry block). For this (contrived to show the optimization) testcase: int %argtest(int %A, int %B) { %X = sub int 12345, %A br label %L L: %Y = add int %X, %B ret int %Y } we used to produce: argtest: mov %ECX, DWORD PTR [%ESP + 4] mov %EAX, 12345 sub %EAX, %ECX mov %EDX, DWORD PTR [%ESP + 8] .LBBargtest_1: # L add %EAX, %EDX ret now we produce: argtest: mov %EAX, 12345 sub %EAX, DWORD PTR [%ESP + 4] .LBBargtest_1: # L add %EAX, DWORD PTR [%ESP + 8] ret This also fixes the FIXME in the code. BTW, this occurs in real code. 164.gzip shrinks from 8623 to 8608 lines of .s file. The stack frame in huft_build shrinks from 1644->1628 bytes, inflate_codes shrinks from 116->108 bytes, and inflate_block from 2620->2612, due to fewer spills. Take that alkis. :-) llvm-svn: 19639
-
Chris Lattner authored
llvm-svn: 19635
-
- Jan 16, 2005
-
-
Chris Lattner authored
llvm-svn: 19612
-