Chris Lattner
82ac87cc21
New file
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2618 91177308-0d34-0410-b5e6-96231b3b80d8
2002-05-13 22:19:50 +00:00
Chris Lattner
2172db04e7
Trivial cleanups
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2617 91177308-0d34-0410-b5e6-96231b3b80d8
2002-05-13 22:04:46 +00:00
Chris Lattner
ef704a23b4
Add method to check to see if two _Instructions_ dominate each other
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2616 91177308-0d34-0410-b5e6-96231b3b80d8
2002-05-13 22:03:16 +00:00
Chris Lattner
e0e734eea0
Initial checkin of LICM pass
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2615 91177308-0d34-0410-b5e6-96231b3b80d8
2002-05-10 22:44:58 +00:00
Chris Lattner
6cb9743eb8
expose LICM pass
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2614 91177308-0d34-0410-b5e6-96231b3b80d8
2002-05-10 22:44:37 +00:00
Chris Lattner
88fcc513aa
Add LICM pass to compiler
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2613 91177308-0d34-0410-b5e6-96231b3b80d8
2002-05-10 22:44:31 +00:00
Chris Lattner
0fe2153507
Add prototype for LICM pass
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2612 91177308-0d34-0410-b5e6-96231b3b80d8
2002-05-10 22:44:16 +00:00
Chris Lattner
fe8f5b5ad7
Add testcase for when there is no loop header
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2611 91177308-0d34-0410-b5e6-96231b3b80d8
2002-05-10 22:43:26 +00:00
Chris Lattner
8672a4eb8c
A basic test that LICM is working
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2610 91177308-0d34-0410-b5e6-96231b3b80d8
2002-05-10 22:27:49 +00:00
Chris Lattner
ee583d621b
Run LICM tests
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2609 91177308-0d34-0410-b5e6-96231b3b80d8
2002-05-10 22:21:38 +00:00
Chris Lattner
511cbbeba2
run LICM tests
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2608 91177308-0d34-0410-b5e6-96231b3b80d8
2002-05-10 22:21:25 +00:00
Chris Lattner
dd63a37c87
Make sure to call the derived visit versions from the ranged iterator.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2607 91177308-0d34-0410-b5e6-96231b3b80d8
2002-05-10 22:21:05 +00:00
Chris Lattner
d6b60805e8
We actually need this code for the release build to prevent link errors,
...
un#ifdef it.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2606 91177308-0d34-0410-b5e6-96231b3b80d8
2002-05-10 18:54:35 +00:00
Chris Lattner
b498cce6b2
Add explicit abort so optimized build knows that the function does not return
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2605 91177308-0d34-0410-b5e6-96231b3b80d8
2002-05-10 18:53:55 +00:00
Chris Lattner
cba7a1545a
Add an explicit abort so that the optimized build knows the function does
...
not return.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2604 91177308-0d34-0410-b5e6-96231b3b80d8
2002-05-10 18:53:21 +00:00
Chris Lattner
18f4701b2b
* Allow a profile'd code build to be done with a simple 'make ENABLE_PROFILING=1'
...
* Only build tags for include, lib, and tools, not tests
* Turn on verbose output from bison to get information about shift/reduce
conficts (why isn't this the default??)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2603 91177308-0d34-0410-b5e6-96231b3b80d8
2002-05-10 18:51:54 +00:00
Chris Lattner
e04f4b60c6
Expose the lowerallocs pass
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2602 91177308-0d34-0410-b5e6-96231b3b80d8
2002-05-10 15:43:07 +00:00
Chris Lattner
3dec1f2722
Add support for printing out statistics information when -stats is added to
...
the command line
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2601 91177308-0d34-0410-b5e6-96231b3b80d8
2002-05-10 15:38:35 +00:00
Chris Lattner
55547274bc
Fix some bugs, straighten stuff out, more work needs to be done.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2600 91177308-0d34-0410-b5e6-96231b3b80d8
2002-05-10 15:37:35 +00:00
Chris Lattner
fa10fdf5eb
Initial checkin of Statistic class
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2599 91177308-0d34-0410-b5e6-96231b3b80d8
2002-05-10 15:36:56 +00:00
Chris Lattner
f3f4fd50f2
Initial checkin of Statistic class.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2598 91177308-0d34-0410-b5e6-96231b3b80d8
2002-05-10 15:36:46 +00:00
Chris Lattner
3c0193742a
* Add support for the -stats command line option to report how much is changed
...
* Make cast-of-self-ty DCE the dead cast instruction immediately instead of
waiting for it to be DCE'd by another sweep over the function. This speeds
this up noticably.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2597 91177308-0d34-0410-b5e6-96231b3b80d8
2002-05-10 15:29:25 +00:00
Chris Lattner
c79260af6e
New testcase
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2596 91177308-0d34-0410-b5e6-96231b3b80d8
2002-05-10 15:14:54 +00:00
Chris Lattner
9f7fab5feb
remove deprecated getInstType() method
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2595 91177308-0d34-0410-b5e6-96231b3b80d8
2002-05-10 13:28:47 +00:00
Chris Lattner
2c0f3d23ae
Expose the pi node insertion pass.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2594 91177308-0d34-0410-b5e6-96231b3b80d8
2002-05-10 05:41:49 +00:00
Chris Lattner
87fea85934
Initial checkin of the PiNodeInsertion pass
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2593 91177308-0d34-0410-b5e6-96231b3b80d8
2002-05-10 05:41:34 +00:00
Chris Lattner
531823f125
Add prototype for the PiNodeInserter pass
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2592 91177308-0d34-0410-b5e6-96231b3b80d8
2002-05-10 05:40:37 +00:00
Chris Lattner
38fc13149c
Test the Pi node inserter
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2591 91177308-0d34-0410-b5e6-96231b3b80d8
2002-05-10 05:38:39 +00:00
Chris Lattner
8832c1e853
Initial checkin of testcases for Pi node inserter
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2590 91177308-0d34-0410-b5e6-96231b3b80d8
2002-05-10 05:38:18 +00:00
Chris Lattner
3af3ba8b38
Last minor cleanups, this code still does not work for all cases, but it
...
works much better than it used to.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2588 91177308-0d34-0410-b5e6-96231b3b80d8
2002-05-09 21:31:18 +00:00
Chris Lattner
d0c668c380
Two Cleanups to generated C code:
...
1. Avoid printing *(&globalvariable), instead print globalvariable alone
as a special case.
2. Inline subexpressions into expressions as much as legal that preserves
execution characteristics of expressions. Now we get nice (but
over-parenthesized, oh well) things like:
ltmp_428_7 = spec__putc(((unsigned char )((bsBuff) >> 24)), (bsStream));
instead of five seperate instructions (bsBuff & bsStream are globals).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2587 91177308-0d34-0410-b5e6-96231b3b80d8
2002-05-09 21:18:38 +00:00
Chris Lattner
4fbf26d2fc
* Remove CInstPrintVisitor class, incorporating it into the CWriter class
...
* Reorder code in the file to make it more logically laid out.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2586 91177308-0d34-0410-b5e6-96231b3b80d8
2002-05-09 20:53:56 +00:00
Chris Lattner
497e19aee0
Remove CLocalVars data structure entirely, instead of building stuff and
...
then printing it out, just print as we go.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2585 91177308-0d34-0410-b5e6-96231b3b80d8
2002-05-09 20:39:03 +00:00
Chris Lattner
7683a12e20
Simplify code by removing InstLocalVarsVisitor, replacing it with a simple
...
inst_iterator.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2584 91177308-0d34-0410-b5e6-96231b3b80d8
2002-05-09 20:33:35 +00:00
Chris Lattner
1f02c8910a
* Clean up how PHI nodes are handled
...
* Correct global variable references
* Fix loads & stores with zero indices
* Do not emit an else part of a branch if there is no code (no phi node
and a fallthrough branch), makes code more readable to get:
if (l2_cond240) {
goto l13_bb10;
}
with no else{} branch
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2583 91177308-0d34-0410-b5e6-96231b3b80d8
2002-05-09 20:14:10 +00:00
Chris Lattner
53a5b57737
Handle setcc <global*>, 0 instructions, Global pointers are never null!
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2582 91177308-0d34-0410-b5e6-96231b3b80d8
2002-05-09 20:11:54 +00:00
Chris Lattner
0aa7cd605d
Give the longer name to the instruction that will probably be eliminated later
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2581 91177308-0d34-0410-b5e6-96231b3b80d8
2002-05-09 20:11:23 +00:00
Chris Lattner
0097e41993
New testcase for wierd combine opportunity found in bzip2 benchmark
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2580 91177308-0d34-0410-b5e6-96231b3b80d8
2002-05-09 19:52:36 +00:00
Chris Lattner
8c8a37061a
Emit:
...
l3_reg109 = l81_this->field0;
Instead of:
l3_reg109 = l81_this[0u].field0;
where possible
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2579 91177308-0d34-0410-b5e6-96231b3b80d8
2002-05-09 15:59:50 +00:00
Chris Lattner
8c3c4bfcfe
* Print structures types correctly
...
* Clean up generated code to not emit basic block labels and goto
instructions if they are unneccesary (for example, fall throughs)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2578 91177308-0d34-0410-b5e6-96231b3b80d8
2002-05-09 15:49:41 +00:00
Chris Lattner
deed7a5ae3
* Continue cleanup of type printing code
...
* Print a newline after a malloc instruction
* Convert unprintable characters to x_ instead of _x so that we don't
generate identifiers that start with underscores
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2577 91177308-0d34-0410-b5e6-96231b3b80d8
2002-05-09 15:18:52 +00:00
Chris Lattner
3ef6dc7bdd
Gut the type printing code so there is only one copy of it instead of 3
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2576 91177308-0d34-0410-b5e6-96231b3b80d8
2002-05-09 14:40:11 +00:00
Chris Lattner
2d05a1acb0
* Remove dead "constant printing" code
...
* Mangle names with only a prefix so that they are easier on the eyes.
* Put spaces around binary operators with low precedence to make them easier to read
* Don't prefix function names with &, although it's correct, it's unnecesary and
easier to read without it.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2575 91177308-0d34-0410-b5e6-96231b3b80d8
2002-05-09 05:16:40 +00:00
Chris Lattner
2a7ab2e46d
Remove gross "Operand" instance variable
...
Remove lots of unneccesary arguments to methods
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2574 91177308-0d34-0410-b5e6-96231b3b80d8
2002-05-09 04:39:00 +00:00
Chris Lattner
2f49902374
Simplify and clean up function calls.
...
Now indirect function calls work, except that function pointer types are not correct.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2573 91177308-0d34-0410-b5e6-96231b3b80d8
2002-05-09 04:21:21 +00:00
Chris Lattner
2f5eb4e9a5
* Remove dead function
...
* Print C strings correctly
* Expand C escape sequences nicely (ie \n \t, etc get generated instead of hex escapes)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2572 91177308-0d34-0410-b5e6-96231b3b80d8
2002-05-09 03:56:52 +00:00
Chris Lattner
4440826cae
Make Getelementptr, load & store all work the right way.
...
Handle global variables correctly.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2571 91177308-0d34-0410-b5e6-96231b3b80d8
2002-05-09 03:50:42 +00:00
Chris Lattner
2f5f51a852
Many random fixes:
...
* Use binary operator logic for shifts instead of cloning code
* Unary not is '~' not '!'
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2570 91177308-0d34-0410-b5e6-96231b3b80d8
2002-05-09 03:28:37 +00:00
Chris Lattner
f34ee81c5e
Incorporate and purge function before and after printing them so unnamed values
...
have some hope of working right.
Function calls do not try to emit an lvalue if they return void.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2569 91177308-0d34-0410-b5e6-96231b3b80d8
2002-05-09 03:12:34 +00:00
Chris Lattner
b5af06a0ec
Factor out the code to print a value to ONE place.
...
It turns out that unnamed values DO NOT work at all, that's next on the list.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2568 91177308-0d34-0410-b5e6-96231b3b80d8
2002-05-09 03:06:06 +00:00