- Jan 18, 2005
-
-
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
-
Chris Lattner authored
llvm-svn: 19595
-
Chris Lattner authored
llvm-svn: 19582
-
Chris Lattner authored
llvm-svn: 19579
-
- Jan 15, 2005
-
-
Chris Lattner authored
llvm-svn: 19568
-
- Jan 14, 2005
-
-
Chris Lattner authored
stores/loads. llvm-svn: 19562
-
- Jan 13, 2005
-
-
Chris Lattner authored
llvm-svn: 19535
-
Chris Lattner authored
llvm-svn: 19531
-
Chris Lattner authored
llvm-svn: 19528
-
- Jan 12, 2005
-
-
Chris Lattner authored
llvm-svn: 19498
-
- Jan 11, 2005
-
-
Chris Lattner authored
same for PHI nodes. llvm-svn: 19484
-
Chris Lattner authored
llvm-svn: 19463
-
- Jan 09, 2005
-
-
Chris Lattner authored
llvm-svn: 19409
-
Chris Lattner authored
llvm-svn: 19407
-
- Jan 08, 2005
-
-
Chris Lattner authored
llvm-svn: 19404
-
Chris Lattner authored
llvm-svn: 19384
-
Chris Lattner authored
llvm-svn: 19374
-
Chris Lattner authored
llvm-svn: 19369
-
- Jan 07, 2005
-
-
Chris Lattner authored
int GEP indices on 64-bit archs. llvm-svn: 19354
-
Chris Lattner authored
llvm-svn: 19349
-
Chris Lattner authored
of the code for lowering from LLVM code to a SelectionDAG. llvm-svn: 19331
-