Brian Gaeke
16bd3c5d34
Add CloneTraceInto(), which is based on (and has mostly the same
...
effects as) CloneFunctionInto().
llvm-svn: 13601
2004-05-19 09:08:14 +00:00
Brian Gaeke
9adf9d8bfc
Move RemapInstruction() to ValueMapper, so that it can be shared with
...
CloneTrace, and because it is primarily an operation on ValueMaps. It
is now a global (non-static) function which can be pulled in using
ValueMapper.h.
llvm-svn: 13600
2004-05-19 09:08:12 +00:00
Misha Brukman
eb2d4f5589
Minor aesthetic alignments; no functional changes.
...
llvm-svn: 13593
2004-05-17 22:28:21 +00:00
Misha Brukman
d32edbdc09
* Minor aesthetic alignment of iterator declarations
...
* Removed redundant function comments
llvm-svn: 13592
2004-05-17 22:25:12 +00:00
Brian Gaeke
6e9dd8d3cc
Define erase forwarding method on traces
...
llvm-svn: 13591
2004-05-17 21:17:21 +00:00
Brian Gaeke
5d639ac9f3
Fold two assertions with backwards error messages into one with a
...
correct error message.
llvm-svn: 13590
2004-05-17 21:15:18 +00:00
Brian Gaeke
b41b628afd
Clean up this pass somewhat:
...
Add better comments, including a better head-of-file comment.
Prune #includes.
Fix a FIXME that Chris put here by using doInitialization().
Use DEBUG() to print out debug msgs.
Give names to basic blocks inserted by this pass.
Expand tabs.
Use InsertProfilingInitCall() from ProfilingUtils to insert the initialize call.
llvm-svn: 13581
2004-05-14 21:21:52 +00:00
Misha Brukman
2a8630c027
Rename "User's Guide" to "Command Guide" to be consistent with current scheme.
...
llvm-svn: 13580
2004-05-14 20:29:11 +00:00
Misha Brukman
f84661bf90
Ignore generated ps files.
...
llvm-svn: 13579
2004-05-14 20:26:45 +00:00
Misha Brukman
90b48407e3
Ignore generated man files.
...
llvm-svn: 13578
2004-05-14 20:26:39 +00:00
Misha Brukman
cfe07441c2
Ignore generated HTML files.
...
llvm-svn: 13577
2004-05-14 20:26:34 +00:00
Misha Brukman
5f7f2c07c4
This is the stylesheet used by perldoc.com; we shall modify it as we see fit.
...
llvm-svn: 13576
2004-05-14 20:25:35 +00:00
Misha Brukman
d99d133ae6
Put outputs of each type into a separate subdirectory.
...
llvm-svn: 13575
2004-05-14 20:24:59 +00:00
Brian Gaeke
745bedfadb
More pods... work in progress
...
llvm-svn: 13574
2004-05-14 19:50:33 +00:00
Misha Brukman
ed5e109196
Use <pre> instead of <p><tt> combo to decrease space used for code blocks.
...
llvm-svn: 13573
2004-05-14 19:04:07 +00:00
Misha Brukman
9986dccc3e
Mention the --tool-args option that Brian and Chris added.
...
llvm-svn: 13572
2004-05-14 18:57:24 +00:00
Misha Brukman
78e2d38956
Make link to HowToSubmitABug.html local instead of to LLVM website.
...
llvm-svn: 13571
2004-05-14 18:54:04 +00:00
Brian Gaeke
06eb26a9b7
NAME section is supposed to have a brief description, for apropos(1) & whatis(1)
...
llvm-svn: 13570
2004-05-14 18:31:13 +00:00
Brian Gaeke
877d0c79cb
This seems like as good a place as any to keep POD files.
...
llvm-svn: 13569
2004-05-14 18:03:22 +00:00
Brian Gaeke
e5736bf986
Don't keep track of references to LLVM BasicBlocks while emitting; use
...
MachineBasicBlocks instead.
llvm-svn: 13568
2004-05-14 06:54:58 +00:00
Brian Gaeke
a25a10e73b
Support MachineBasicBlock operands on RawFrm instructions.
...
Get rid of separate numbering for LLVM BasicBlocks; use the automatically
generated MachineBasicBlock numbering.
llvm-svn: 13567
2004-05-14 06:54:57 +00:00
Brian Gaeke
a17301ca8b
Generate branch machine instructions with MachineBasicBlock operands instead of
...
LLVM BasicBlock operands.
llvm-svn: 13566
2004-05-14 06:54:56 +00:00
Chris Lattner
729d1ba904
This was not meant to be committed
...
llvm-svn: 13565
2004-05-13 20:56:34 +00:00
Chris Lattner
b296747100
Fix a nasty bug that caused us to unroll EXTREMELY large loops due to overflow
...
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
2004-05-13 20:43:31 +00:00
Chris Lattner
0f1a6d4633
New testcase that used to cause the unroller to try to unroll the loop 2G times. :(
...
llvm-svn: 13563
2004-05-13 20:43:15 +00:00
Misha Brukman
abfb84f001
Specify units in padding length.
...
llvm-svn: 13560
2004-05-13 16:37:52 +00:00
Misha Brukman
48f69c3d47
Make page HTML-4.01 compliant (& => & in URL).
...
llvm-svn: 13559
2004-05-13 16:37:23 +00:00
Chris Lattner
269da7901a
Two more improvements for null pointer handling: storing a null pointer
...
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
2004-05-13 15:26:48 +00:00
Chris Lattner
dc8e8484e5
Second half of my fixed-sized-alloca patch. This folds the LEA to compute
...
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
2004-05-13 15:12:43 +00:00
Chris Lattner
94de563118
Substantially improve code generation for address exposed locals (aka fixed
...
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
2004-05-13 07:40:27 +00:00
Reid Spencer
68bb3c059a
Reduce line length to about 80 chars.
...
llvm-svn: 13538
2004-05-13 03:40:27 +00:00
Misha Brukman
9f211058ec
Insert spacing between the table and the next section.
...
llvm-svn: 13523
2004-05-13 00:37:23 +00:00
Misha Brukman
b9855e9b95
* Use stylesheets for table borders so we factor out the formatting and can
...
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
2004-05-13 00:24:43 +00:00
Brian Gaeke
b964085c4c
Fix a comment.
...
llvm-svn: 13518
2004-05-12 21:57:23 +00:00
Chris Lattner
f29acd5214
Fix a really nasty bug from my changes on Monday to PHIElim. These changes
...
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
2004-05-12 21:47:57 +00:00
Misha Brukman
6963b20891
Break lines at 80 cols; eliminate extra space caused by a single <p> tag on a
...
line by itself.
llvm-svn: 13516
2004-05-12 21:46:05 +00:00
Brian Gaeke
79c7de0723
Start NextMBBNumber out at zero.
...
llvm-svn: 13515
2004-05-12 21:35:23 +00:00
Brian Gaeke
6009468edd
Add non-const MachineBasicBlock::getParent() accessor method.
...
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
2004-05-12 21:35:22 +00:00
Brian Gaeke
0315644cd7
Add a NextMBBNumber field w/ incrementing accessor method, for
...
function-level unique numbering of MBBs.
llvm-svn: 13513
2004-05-12 21:35:21 +00:00
Brian Gaeke
a0d9f814da
Add a Number field w/ accessor method, for function-level unique numbering
...
of MBBs.
Add non-const MachineBasicBlock::getParent() accessor method.
llvm-svn: 13512
2004-05-12 21:35:20 +00:00
Chris Lattner
5755273585
Make the subsubsections stand out a bit more
...
llvm-svn: 13511
2004-05-12 21:28:08 +00:00
Misha Brukman
faa635606e
These images have been moved to img/
...
llvm-svn: 13510
2004-05-12 21:26:39 +00:00
Misha Brukman
5a373bf271
Use the images in the img/ directory.
...
llvm-svn: 13509
2004-05-12 21:26:16 +00:00
Misha Brukman
d307ec7d29
Finally, switch to a stylesheet that makes the documentation easier on the eyes
...
and consistent with the LLVM website.
llvm-svn: 13508
2004-05-12 21:20:56 +00:00
Misha Brukman
a5705e3696
Centralize images in this dir; add lines.gif from website for consistent
...
formatting.
llvm-svn: 13507
2004-05-12 21:20:13 +00:00
Misha Brukman
4f9a98e4ea
Make file use stylesheets and be HTML-4.01 (Strict)-compliant.
...
llvm-svn: 13506
2004-05-12 20:57:43 +00:00
Misha Brukman
4ef01d6a0e
Made document HTML-4.01 (Strict)-compliant.
...
llvm-svn: 13505
2004-05-12 19:52:00 +00:00
Misha Brukman
20c0417abb
Make file standard-compliant once again.
...
llvm-svn: 13504
2004-05-12 19:25:59 +00:00
Misha Brukman
8608c79487
Made file comply with HTML-4.01 (Strict)
...
llvm-svn: 13503
2004-05-12 19:21:57 +00:00
Chris Lattner
387b7a11ce
Turn the block extractor on by default now that it basically works, eliminating the option.
...
llvm-svn: 13502
2004-05-12 19:02:44 +00:00