Misha Brukman
d55cfa6b94
Added helper functions in LoopInfo: isLoopExit and numBackEdges.
...
llvm-svn: 4112
2002-10-11 05:31:10 +00:00
Chris Lattner
8cd34b84b2
Stop using DataStructureGraph.h
...
llvm-svn: 4106
2002-10-10 20:33:46 +00:00
Chris Lattner
42547124d0
- Dramatically simplify the ConstantMerge code now that
...
Value::replaceAllUsesWith works with constants correctly.
llvm-svn: 4104
2002-10-09 23:16:04 +00:00
Chris Lattner
266bacb650
- Make Value::replaceAllUsesWith work with constants correctly. This fixes
...
bug FuncResolve/2002-08-19-ResolveGlobalVars.ll and gzip looks better.
llvm-svn: 4103
2002-10-09 23:12:59 +00:00
Chris Lattner
0acdba0025
- Add new Constant::replaceUsesOfWithOnConstant which has an end result
...
similar to User::replaceUsesOfWith but actually does the right thing for
constants.
llvm-svn: 4102
2002-10-09 23:12:25 +00:00
Chris Lattner
83d105d986
Almost a complete rewrite of FunctionResolution to now resolve functions
...
and global variables.
This fixes bug: FuncResolve/2002-08-19-ResolveGlobalVarsEasier.ll
And bug: SingleSource/UnitTests/2002-10-09-ArrayResolution.c
Note that this does not fix bug:
FunctionResolve/2002-08-19-ResolveGlobalVars.ll because replaceAllUsesWith
breaks when a constantexpr is pointing to the thing being replaced. This
is more of an infrastructure problem than anything.
llvm-svn: 4099
2002-10-09 21:10:06 +00:00
Chris Lattner
0e7fbf7025
Minor, non-functionality changing, formatting fix
...
llvm-svn: 4091
2002-10-09 00:25:32 +00:00
Chris Lattner
a8dd29787b
- Remove Value::use_remove
...
llvm-svn: 4090
2002-10-09 00:25:05 +00:00
Chris Lattner
51d98b38f2
- Rename MTy to FTy (no methods exist anymore)
...
- Fix bug: LevelRaise/2002-10-08-VarArgCallInfLoop.ll
llvm-svn: 4088
2002-10-09 00:16:00 +00:00
Chris Lattner
88de60dd26
Fix NASTY N^2 behavior that was causing the gzip benchmark to take forever to
...
assemble. Now we scan the use-list from the back when removing users instead
of from the front.
llvm-svn: 4086
2002-10-08 23:46:55 +00:00
Chris Lattner
4a72e094f9
Fix bug: Assembler/2002-10-08-LargeArrayPerformance.ll by using
...
std::vector::reserve when possible
llvm-svn: 4085
2002-10-08 23:33:52 +00:00
Chris Lattner
e8160b4dd1
- Fix bug: LevelRaise/2002-10-08-VarArgCall.ll
...
llvm-svn: 4083
2002-10-08 22:19:25 +00:00
Chris Lattner
d68e6d1718
- Fix bug: cee/2002-10-07-NoImmediateDominator.ll
...
llvm-svn: 4081
2002-10-08 21:53:51 +00:00
Chris Lattner
c35f54df86
Changes to support PHINode::removeIncoming changes
...
llvm-svn: 4080
2002-10-08 21:36:34 +00:00
Chris Lattner
9c236351fd
Changes to support PHINode::removeIncoming changes
...
llvm-svn: 4079
2002-10-08 21:36:33 +00:00
Chris Lattner
f868df40b9
- Change PHINode::removeIncomingValue to delete the phi node if the last
...
incoming value is removed!
llvm-svn: 4078
2002-10-08 21:34:58 +00:00
Chris Lattner
40df2d9d4c
- Checkin LARGE number of Changes to CEE pass that will make it much more
...
powerful, but that are largely disabled. The basic idea here is that it
is trying to forward branches across basic blocks that have PHI nodes in
it, which are crucial to be able to handle cases like whet.ll.
Unfortunately we are not updating SSA correctly, causing sim.c to die, and I
don't have time to fix the regression now, so I must disable the
functionality.
llvm-svn: 4077
2002-10-08 21:34:15 +00:00
Chris Lattner
3cf20c3f14
Expose isCriticalEdge & SplitCriticalEdge methods from crit-edges pass
...
llvm-svn: 4075
2002-10-08 21:06:27 +00:00
Chris Lattner
b9f59f1533
Expose new "recalculate" method from dominatorset
...
llvm-svn: 4074
2002-10-08 19:12:08 +00:00
Chris Lattner
b32252aa71
It is illegal for PHI nodes to have zero values, delete the code to handle them
...
llvm-svn: 4071
2002-10-08 17:07:39 +00:00
Chris Lattner
55c7ae3cdc
Fold ashr -1, X into -1
...
llvm-svn: 4070
2002-10-08 16:16:40 +00:00
Chris Lattner
c532e35cce
Non-functionality change just to make it more clear what is going on
...
llvm-svn: 4060
2002-10-07 18:34:32 +00:00
Chris Lattner
4e19009255
Global variables are now external if they don't have initializers, not
...
"uninitialized"
llvm-svn: 4052
2002-10-06 22:48:09 +00:00
Chris Lattner
d8244f43d4
Check that we don't have external varaibles with internal linkage
...
llvm-svn: 4051
2002-10-06 22:47:32 +00:00
Chris Lattner
6408586b7b
The parser now accepts "external" global variables, in addition to the backwards
...
compatible "uninitialized" global variables
llvm-svn: 4050
2002-10-06 22:45:09 +00:00
Chris Lattner
53a414c3c4
PHI nodes are not allowed to exist with zero incoming values, check that
...
there aren't any like this.
llvm-svn: 4044
2002-10-06 21:00:31 +00:00
Vikram S. Adve
6932399f9b
Bug fix: In preventing static global variables from being printed twice,
...
I also prevented external globals from being printed twice, but they
should (extern declaration and definition).
llvm-svn: 4043
2002-10-05 23:43:10 +00:00
Anand Shukla
d49d35f562
Added #include<unistd.h> to compile with solaris gcc3.2
...
llvm-svn: 4042
2002-10-04 23:57:01 +00:00
Anand Shukla
02acbe2c93
added cast to unsigned to compile with gcc3.2 (sparc)
...
llvm-svn: 4041
2002-10-04 23:56:18 +00:00
Chris Lattner
a923b0f49f
Handle post dominance correctly in the case where blocks do not have a path to
...
the exit node.
llvm-svn: 4038
2002-10-04 14:50:20 +00:00
Chris Lattner
85ba0832e5
Fix a nasty problem with dominance calculation for unreachable blocks.
...
If we had a CFG that look like Entry -> B, Unreachable -> B, then we would
not correctly determine that Entry dominated B, because Entry did not
apparently dominate "unreachable". This patch fixes this by making the entry
node dominate all blocks, including unreachable ones.
llvm-svn: 4037
2002-10-04 14:45:48 +00:00
Chris Lattner
eeecc3e1b3
Prune function nodes that are no longer referenced due to inlining
...
llvm-svn: 4036
2002-10-03 21:55:28 +00:00
Chris Lattner
8f603615d8
sgefa uses truely huge data structures nodes. Only print part of them if they
...
are so big
llvm-svn: 4035
2002-10-03 21:55:13 +00:00
Chris Lattner
31d4a68166
Handle bug exposed by power benchmark
...
llvm-svn: 4033
2002-10-03 21:06:38 +00:00
Nick Hildenbrandt
1ccdc12400
Add parens around constant calls to getelemptr to properly associate the reference
...
llvm-svn: 4032
2002-10-03 20:47:24 +00:00
Chris Lattner
fcdb95cd42
Reimplement/port the Bottom Up Closure pass
...
llvm-svn: 4031
2002-10-03 20:38:41 +00:00
Chris Lattner
e52f808665
DataStructure.h doesn't include DSGraph.h
...
llvm-svn: 4029
2002-10-02 22:14:38 +00:00
Nick Hildenbrandt
1477c5282f
I was wrong on the removing of those references on the last commit.
...
llvm-svn: 4023
2002-10-02 21:14:33 +00:00
Chris Lattner
bdbc272229
* Implement the getc() function
...
* Support usage of stdin, stdout & stderr correctly in LLI!
llvm-svn: 4022
2002-10-02 21:12:13 +00:00
Chris Lattner
f6b465732c
Cleanup #includes, expose module
...
llvm-svn: 4021
2002-10-02 21:11:16 +00:00
Chris Lattner
68960ff1c7
Expose TD to ExternalFunctions.cpp
...
llvm-svn: 4020
2002-10-02 21:10:48 +00:00
Chris Lattner
94a5211b6a
- Print the predecessors of a basic block instead of the number of uses of
...
the block in the AsmWriter
llvm-svn: 4019
2002-10-02 19:38:55 +00:00
Chris Lattner
88c8ffce8b
Fix bug: 2002-10-02-SignExtensionProblem.ll
...
llvm-svn: 4017
2002-10-02 18:53:14 +00:00
Nick Hildenbrandt
d090d15736
Removed unneeded reference and dereferences.
...
llvm-svn: 4016
2002-10-02 18:34:51 +00:00
Nick Hildenbrandt
5d1a2cf4b1
Cleaned up my last check-in.
...
llvm-svn: 4014
2002-10-02 18:32:35 +00:00
Nick Hildenbrandt
f9aa2b4886
No longer include malloc.h. If protoypes are needed for memory functions they will be present in the byte code and the generated c as well.
...
llvm-svn: 4013
2002-10-02 18:20:18 +00:00
Chris Lattner
62ca2aa593
* Implement fully general merging of array subscripts on demand! This
...
does not handle the initial pointer index case yet though.
llvm-svn: 4012
2002-10-02 06:24:36 +00:00
Chris Lattner
5f38d9c112
When printing DS nodes, print the mergemap index as well to allow easier
...
debugging of merging process.
llvm-svn: 4010
2002-10-02 05:17:55 +00:00
Chris Lattner
8c25c1a641
* Significant rework of DSNode to support arbitrary aliasing due to merging
...
* Now all and any bytes of a DSNode can be merged together individually. This
is neccesary to support the full generality of C and support aliasing
correctly.
llvm-svn: 4008
2002-10-02 04:57:39 +00:00
Chris Lattner
3fec0954e8
Changes to work with Statistics rework
...
* Renamed StatisticReporter.h/cpp to Statistic.h/cpp
* Broke constructor to take two const char * arguments instead of one, so
that indendation can be taken care of automatically.
* Sort the list by pass name when printing
* Make sure to print all statistics as a group, instead of randomly when
the statistics dtors are called.
* Updated ProgrammersManual with new semantics.
llvm-svn: 4004
2002-10-01 22:40:31 +00:00