Chris Lattner
f1c953d521
New test
...
llvm-svn: 5665
2003-02-28 02:55:26 +00:00
Chris Lattner
d64f135965
Fix bug: 2003-02-27-PreheaderExitNodeUpdate.ll by updating exit node info
...
llvm-svn: 5664
2003-02-27 22:48:57 +00:00
Chris Lattner
e6443c72fe
Add new Loop::hasExitBlock helper method
...
llvm-svn: 5663
2003-02-27 22:48:28 +00:00
Chris Lattner
030a114dba
Simplify a bit by using a new member function
...
llvm-svn: 5662
2003-02-27 22:48:08 +00:00
Chris Lattner
c37308604f
Change behavior of changeExitBlock function to replace all instances of exit block
...
llvm-svn: 5661
2003-02-27 22:37:44 +00:00
Chris Lattner
c0fc5571dc
New testcase
...
llvm-svn: 5660
2003-02-27 22:34:31 +00:00
Chris Lattner
74b9aaa89c
Add a new assertion to check that stuff is happening right
...
Ironically the exit block modification code wasn't updating the exit block
information itself. Fix this.
llvm-svn: 5659
2003-02-27 22:31:07 +00:00
Chris Lattner
d40fa5ca2f
Fix bug: 2003-02-27-StoreSinkPHIs.ll
...
llvm-svn: 5658
2003-02-27 21:59:36 +00:00
Chris Lattner
80ebacf9a5
New testcase
...
llvm-svn: 5657
2003-02-27 21:59:31 +00:00
Chris Lattner
e1d4fb3c2c
Fix bug: LICM/2003-02-27-PreheaderProblem.ll
...
There may be a single outside predecessor and
still need a new loop-preheader if the predecessor has multiple
successors.
llvm-svn: 5656
2003-02-27 21:51:38 +00:00
Chris Lattner
e8dda81b22
* Don't forget to update Loop information!
...
* Remove bogus assertion: there may be a single outside predecessor and
still need a new loop-preheader if the predecessor has multiple
successors. See bug: LICM/2003-02-27-PreheaderProblem.ll
llvm-svn: 5655
2003-02-27 21:50:19 +00:00
Chris Lattner
91dce9183d
Testcase for Preheaders problem
...
llvm-svn: 5654
2003-02-27 21:38:56 +00:00
Chris Lattner
3b3cce733d
Replace assertion with a handler.
...
llvm-svn: 5653
2003-02-27 20:55:48 +00:00
Chris Lattner
b078b28fa5
* Significant changes to the preheader insertion pass:
...
- Now we perform loop exit-block splitting to ensure exit blocks are
always dominated by the loop header.
- We now preserve dominance frontier information
- This fixes bug: LICM/2003-02-26-LoopExitNotDominated.ll
llvm-svn: 5652
2003-02-27 20:27:08 +00:00
Chris Lattner
db73d0ceab
Make the interface to update a little more efficient
...
llvm-svn: 5651
2003-02-27 20:24:17 +00:00
Chris Lattner
ac72aab6e7
- LoopInfo now calculates and tracks loop exit blocks
...
llvm-svn: 5650
2003-02-27 00:38:34 +00:00
Chris Lattner
4efef545d2
* LoopInfo now keeps track of exit blocks from the loop
...
* New LoopInfo::isLoopHeader method
* Remove some #if 0 code
llvm-svn: 5649
2003-02-27 00:37:22 +00:00
Chris Lattner
bfe33a49ef
New testcase crashing LICM
...
llvm-svn: 5648
2003-02-26 23:16:44 +00:00
Chris Lattner
5baf8bb966
Make the aliassettracker much more precise by actually tracking size
...
information for various accesses. What a concept.
llvm-svn: 5647
2003-02-26 22:11:00 +00:00
Chris Lattner
d4e2c5a9a0
Fix test
...
llvm-svn: 5646
2003-02-26 22:01:58 +00:00
Chris Lattner
933b11a154
Fix bug: BasicAA/2003-02-26-AccessSizeTest.ll
...
llvm-svn: 5645
2003-02-26 21:57:23 +00:00
Chris Lattner
183864424b
New testcase for size tracking brokenness
...
llvm-svn: 5644
2003-02-26 21:39:52 +00:00
Chris Lattner
e923b037b7
Fix several bugs in basic-aa
...
llvm-svn: 5643
2003-02-26 21:28:49 +00:00
Chris Lattner
ea424f3aff
Rename -no-* to -disable-*
...
llvm-svn: 5642
2003-02-26 20:00:41 +00:00
Chris Lattner
4e622afb23
Add new -no-aa implementation
...
llvm-svn: 5641
2003-02-26 19:57:10 +00:00
Chris Lattner
721f9fc770
Move BasicAA pass out to it's own header file
...
llvm-svn: 5640
2003-02-26 19:41:54 +00:00
Chris Lattner
374168a56e
BasicAA doesn't need a public header
...
llvm-svn: 5639
2003-02-26 19:41:46 +00:00
Chris Lattner
4162adcfee
Adjust to implement new AA interface
...
llvm-svn: 5638
2003-02-26 19:29:36 +00:00
Chris Lattner
4d57299049
Adjust to new AA interface
...
llvm-svn: 5637
2003-02-26 19:29:16 +00:00
Chris Lattner
92a8816086
Convert to work with new AliasAnalysis interface by conservatively assuming all pointers are arbitrarily large accesses
...
llvm-svn: 5636
2003-02-26 19:28:57 +00:00
Chris Lattner
5afbabc83b
Calculate and pass load sizes to the alias analysis infrastructure
...
llvm-svn: 5635
2003-02-26 19:27:35 +00:00
Chris Lattner
d67ff79f57
Adjust to new AA interface
...
Add tracking for Mod/Ref info
llvm-svn: 5634
2003-02-26 19:27:05 +00:00
Chris Lattner
a84b1da40f
- Checkin of the alias analysis work:
...
* Takes into account the size of the memory reference to determine aliasing.
* Expose mod/ref information in a more consistent way
* BasicAA can now disambiguate A[i][1] and A[j][2] for conservative request
sizes
llvm-svn: 5633
2003-02-26 19:26:51 +00:00
Chris Lattner
f3a3d13d24
Tweak to work with new AA implementation
...
llvm-svn: 5632
2003-02-26 19:25:04 +00:00
Chris Lattner
8a8dc5b686
Checkin of new alias analysis interface:
...
* Takes into account the size of the memory reference to determine aliasing.
* Expose mod/ref information in a more consistent way
llvm-svn: 5631
2003-02-26 19:24:47 +00:00
Chris Lattner
b7d52c4fa8
Allow ImmutablePass's to require other immutable passes and to be initialized
...
llvm-svn: 5630
2003-02-26 19:10:57 +00:00
Chris Lattner
7f0e8c4d31
* Un "protect" the getAnalysis<> functions
...
* Add a new initializePass() method to ImmutablePass
llvm-svn: 5629
2003-02-26 19:10:28 +00:00
Chris Lattner
f37c63bc4b
Remove implemented projects
...
llvm-svn: 5628
2003-02-26 16:38:22 +00:00
Chris Lattner
63b566e303
Update programmers manual for renamed method
...
llvm-svn: 5627
2003-02-26 16:38:15 +00:00
Chris Lattner
b46d9cdbd8
Hopefully final tweak to this testcase
...
llvm-svn: 5626
2003-02-26 16:18:00 +00:00
Chris Lattner
1c20fbe554
Add a new test for basicaa
...
llvm-svn: 5625
2003-02-25 21:43:37 +00:00
Chris Lattner
ce3e651af6
Fix typeo
...
llvm-svn: 5624
2003-02-25 21:14:59 +00:00
Chris Lattner
b1aeaf7efb
Remove wierd case that can never happen
...
llvm-svn: 5623
2003-02-25 20:27:09 +00:00
Chris Lattner
38e874dd6e
Add new helper template function
...
llvm-svn: 5622
2003-02-25 00:00:50 +00:00
Chris Lattner
953428667f
Fix testcase
...
llvm-svn: 5621
2003-02-24 23:14:07 +00:00
Chris Lattner
497c0d443c
Rename Instruction::hasSideEffects() -> mayWriteToMemory()
...
llvm-svn: 5620
2003-02-24 20:48:32 +00:00
Chris Lattner
f2009dbddb
This is a substantial rewrite of the AliasSetTracker class which now uses
...
a union-find based algorithm, is significantly faster, and is more general.
It will also scale to handle call instructions correctly, which is a nice
added bonus.
This includes a new pass -print-alias-sets which can be used to show how
alias sets are formed for a particular analysis.
llvm-svn: 5619
2003-02-24 20:37:56 +00:00
Chris Lattner
caba6cfcf5
Initial checkin of CallSite wrapper for Call/Invoke instructions
...
llvm-svn: 5618
2003-02-24 20:35:45 +00:00
Chris Lattner
6563942b6e
Fix test
...
llvm-svn: 5617
2003-02-24 20:30:14 +00:00
Chris Lattner
f170a0d80f
Make printing messages nicer
...
llvm-svn: 5616
2003-02-24 20:07:54 +00:00