- May 14, 2004
-
-
Brian Gaeke authored
llvm-svn: 13570
-
Brian Gaeke authored
llvm-svn: 13569
-
Brian Gaeke authored
MachineBasicBlocks instead. llvm-svn: 13568
-
Brian Gaeke authored
Get rid of separate numbering for LLVM BasicBlocks; use the automatically generated MachineBasicBlock numbering. llvm-svn: 13567
-
Brian Gaeke authored
LLVM BasicBlock operands. llvm-svn: 13566
-
- May 13, 2004
-
-
Chris Lattner authored
llvm-svn: 13565
-
Chris Lattner authored
in the size calculation. This is not something you want to see: Loop Unroll: F[main] Loop %no_exit Loop Size = 2 Trip Count = 2147483648 - UNROLLING! The problem was that 2*2147483648 == 0. Now we get: Loop Unroll: F[main] Loop %no_exit Loop Size = 2 Trip Count = 2147483648 - TOO LARGE: 4294967296>100 Thanks to some anonymous person playing with the demo page that repeatedly caused zion to go into swapping land. That's one way to ensure you'll get a quick bugfix. :) Testcase here: Transforms/LoopUnroll/2004-05-13-DontUnrollTooMuch.ll llvm-svn: 13564
-
Chris Lattner authored
llvm-svn: 13563
-
Misha Brukman authored
llvm-svn: 13560
-
Misha Brukman authored
llvm-svn: 13559
-
Chris Lattner authored
and passing a null pointer into a function. For this testcase: void %test(int** %X) { store int* null, int** %X call void %test(int** null) ret void } we now generate this: test: sub %ESP, 12 mov %EAX, DWORD PTR [%ESP + 16] mov DWORD PTR [%EAX], 0 mov DWORD PTR [%ESP], 0 call test add %ESP, 12 ret instead of this: test: sub %ESP, 12 mov %EAX, DWORD PTR [%ESP + 16] mov %ECX, 0 mov DWORD PTR [%EAX], %ECX mov %EAX, 0 mov DWORD PTR [%ESP], %EAX call test add %ESP, 12 ret llvm-svn: 13558
-
Chris Lattner authored
the alloca address into common operations like loads/stores. In a simple testcase like this (which is just designed to excersize the alloca A, nothing more): int %test(int %X, bool %C) { %A = alloca int store int %X, int* %A store int* %A, int** %G br bool %C, label %T, label %F T: call int %test(int 1, bool false) %V = load int* %A ret int %V F: call int %test(int 123, bool true) %V2 = load int* %A ret int %V2 } We now generate: test: sub %ESP, 12 mov %EAX, DWORD PTR [%ESP + 16] mov %CL, BYTE PTR [%ESP + 20] *** mov DWORD PTR [%ESP + 8], %EAX mov %EAX, OFFSET G lea %EDX, DWORD PTR [%ESP + 8] mov DWORD PTR [%EAX], %EDX test %CL, %CL je .LBB2 # PC rel: F .LBB1: # T mov DWORD PTR [%ESP], 1 mov DWORD PTR [%ESP + 4], 0 call test *** mov %EAX, DWORD PTR [%ESP + 8] add %ESP, 12 ret .LBB2: # F mov DWORD PTR [%ESP], 123 mov DWORD PTR [%ESP + 4], 1 call test *** mov %EAX, DWORD PTR [%ESP + 8] add %ESP, 12 ret Instead of: test: sub %ESP, 20 mov %EAX, DWORD PTR [%ESP + 24] mov %CL, BYTE PTR [%ESP + 28] *** lea %EDX, DWORD PTR [%ESP + 16] *** mov DWORD PTR [%EDX], %EAX mov %EAX, OFFSET G mov DWORD PTR [%EAX], %EDX test %CL, %CL *** mov DWORD PTR [%ESP + 12], %EDX je .LBB2 # PC rel: F .LBB1: # T mov DWORD PTR [%ESP], 1 mov %EAX, 0 mov DWORD PTR [%ESP + 4], %EAX call test *** mov %EAX, DWORD PTR [%ESP + 12] *** mov %EAX, DWORD PTR [%EAX] add %ESP, 20 ret .LBB2: # F mov DWORD PTR [%ESP], 123 mov %EAX, 1 mov DWORD PTR [%ESP + 4], %EAX call test *** mov %EAX, DWORD PTR [%ESP + 12] *** mov %EAX, DWORD PTR [%EAX] add %ESP, 20 ret llvm-svn: 13557
-
Chris Lattner authored
sized allocas in the entry block). Instead of generating code like this: entry: reg1024 = ESP+1234 ... (much later) *reg1024 = 17 Generate code that looks like this: entry: (no code generated) ... (much later) t = ESP+1234 *t = 17 The advantage being that we DRAMATICALLY reduce the register pressure for these silly temporaries (they were all being spilled to the stack, resulting in very silly code). This is actually a manual implementation of rematerialization :) I have a patch to fold the alloca address computation into loads & stores, which will make this much better still, but just getting this right took way too much time and I'm sleepy. llvm-svn: 13554
-
Reid Spencer authored
llvm-svn: 13538
-
Misha Brukman authored
llvm-svn: 13523
-
Misha Brukman authored
adjust it much easier. Also changed border to gray to fit into the current color scheme. * Convert < and > to < and >, respectively. * Wrap long lines at 80 cols llvm-svn: 13522
-
- May 12, 2004
-
-
Brian Gaeke authored
llvm-svn: 13518
-
Chris Lattner authored
broke obsequi and a lot of other things. It all boiled down to MBB being overloaded in an inner scope and me confusing it with the one in the outer scope. Ugh! llvm-svn: 13517
-
Misha Brukman authored
line by itself. llvm-svn: 13516
-
Brian Gaeke authored
llvm-svn: 13515
-
Brian Gaeke authored
MBBs start out as #-1. When a MBB is added to a MachineFunction, it gets the next available unique MBB number. If it is removed from a MachineFunction, it goes back to being #-1. llvm-svn: 13514
-
Brian Gaeke authored
function-level unique numbering of MBBs. llvm-svn: 13513
-
Brian Gaeke authored
of MBBs. Add non-const MachineBasicBlock::getParent() accessor method. llvm-svn: 13512
-
Chris Lattner authored
llvm-svn: 13511
-
Misha Brukman authored
llvm-svn: 13510
-
Misha Brukman authored
llvm-svn: 13509
-
Misha Brukman authored
and consistent with the LLVM website. llvm-svn: 13508
-
Misha Brukman authored
formatting. llvm-svn: 13507
-
Misha Brukman authored
llvm-svn: 13506
-
Misha Brukman authored
llvm-svn: 13505
-
Misha Brukman authored
llvm-svn: 13504
-
Misha Brukman authored
llvm-svn: 13503
-
Chris Lattner authored
llvm-svn: 13502
-
Misha Brukman authored
llvm-svn: 13501
-
Misha Brukman authored
llvm-svn: 13500
-
Misha Brukman authored
llvm-svn: 13499
-
Misha Brukman authored
llvm-svn: 13498
-
Misha Brukman authored
llvm-svn: 13497
-
Misha Brukman authored
llvm-svn: 13496
-
Misha Brukman authored
of the documentation) * Do not make the link text be the link itself, use some keywords * Make doc use stylesheets and HTML markup for lists instead of definitions * Shorten page by not making multiple lines per link with description + link of the same name as the target llvm-svn: 13495
-