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
Chris Lattner
a54b810eeb
Fix #endif
...
llvm-svn: 5615
2003-02-24 04:40:35 +00:00
Chris Lattner
e037ba8cde
Add support for the slist extension
...
llvm-svn: 5614
2003-02-24 04:31:49 +00:00
Chris Lattner
1c1f11bd3f
Initial implementation of Loop invariant memory->scalar promotion
...
llvm-svn: 5613
2003-02-24 03:52:32 +00:00
Chris Lattner
722477c317
Tweak testcase
...
llvm-svn: 5612
2003-02-24 03:52:13 +00:00
Chris Lattner
a124de5ec6
New testcase for scalar promotion
...
llvm-svn: 5611
2003-02-24 03:52:04 +00:00
Chris Lattner
2e4c1c8640
Split mem2reg promotion into two parts: a function which does the work, and
...
a pass which wraps the function. This allows other passes to use the functionality
llvm-svn: 5610
2003-02-22 23:57:48 +00:00
Chris Lattner
74aa1f8c03
Add a new interface file for the PromoteMemToReg interface in the Utils library
...
llvm-svn: 5609
2003-02-22 23:04:52 +00:00
Chris Lattner
283d117dad
Clean up std namespace references
...
llvm-svn: 5608
2003-02-22 22:25:17 +00:00
Chris Lattner
ab3dd0580e
New testcase to check to see if LICM is performing scalar promotion
...
llvm-svn: 5607
2003-02-22 22:20:19 +00:00
Chris Lattner
4c2012352d
Dramatically simplify building of natural loops and fix a bug where the BBMap
...
was not correctly computed.
llvm-svn: 5606
2003-02-22 21:33:11 +00:00
Chris Lattner
1fc8307d2a
Fix the requisite bug that I introduced
...
llvm-svn: 5605
2003-02-20 00:28:00 +00:00
Chris Lattner
92bf8c2754
Fix 80 character formatting
...
llvm-svn: 5604
2003-02-20 00:18:07 +00:00
Chris Lattner
97d323caea
Fix bug: 2003-02-19-LoopInfoNestingBug.ll
...
llvm-svn: 5603
2003-02-20 00:17:17 +00:00
Chris Lattner
4b5d31d431
Add a testcase for broken loopinfo
...
llvm-svn: 5602
2003-02-20 00:09:26 +00:00
Chris Lattner
eb50d964a6
Make tests rerun if analyze is rebuilt
...
llvm-svn: 5601
2003-02-20 00:09:19 +00:00
Chris Lattner
f646ce5421
Fix warnings compiling C files
...
llvm-svn: 5600
2003-02-19 22:12:20 +00:00
Chris Lattner
876f0342b4
Remove support for memset
...
llvm-svn: 5599
2003-02-18 20:42:15 +00:00
Chris Lattner
adb111cdfe
Add lots of functions
...
llvm-svn: 5598
2003-02-18 20:42:07 +00:00
Chris Lattner
c24ffa9297
4 new transformations:
...
* X*C + X --> X * (C+1)
* X + X*C --> X * (C+1)
* X - X*C --> X * (1-C)
* X*C - X --> X * (C-1)
llvm-svn: 5592
2003-02-18 19:57:07 +00:00
Chris Lattner
1954ecb19d
Add new testcases
...
llvm-svn: 5591
2003-02-18 19:55:31 +00:00
Chris Lattner
6adec31e9a
Modernize testcase
...
llvm-svn: 5590
2003-02-18 19:43:53 +00:00
Chris Lattner
d94a9168ae
Modernize testcases
...
llvm-svn: 5589
2003-02-18 19:43:21 +00:00
Chris Lattner
1759ccff2b
test for a variety of new transformations:
...
* A & ~A == 0
* A / (2^c) == A >> c if unsigned
* 0 / A == 0
* 1.0 * A == A
* A * (2^c) == A << c
* A ^ ~A == -1
* A | ~A == -1
* 0 % X = 0
* A % (2^c) == A & (c-1) if unsigned
* A - (A & B) == A & ~B
* -1 - A == ~A
llvm-svn: 5588
2003-02-18 19:28:47 +00:00
Chris Lattner
8306cc5c5c
Add a variety of new transformations:
...
* A & ~A == 0
* A / (2^c) == A >> c if unsigned
* 0 / A == 0
* 1.0 * A == A
* A * (2^c) == A << c
* A ^ ~A == -1
* A | ~A == -1
* 0 % X = 0
* A % (2^c) == A & (c-1) if unsigned
* A - (A & B) == A & ~B
* -1 - A == ~A
llvm-svn: 5587
2003-02-18 19:28:33 +00:00
Chris Lattner
55af0903ff
modernize testcase
...
llvm-svn: 5586
2003-02-18 19:16:45 +00:00
Chris Lattner
ecbab08e9d
Modernize testcase
...
llvm-svn: 5585
2003-02-18 18:06:44 +00:00
Chris Lattner
148d67f088
Fix resolution of indirect function calls... whoops
...
llvm-svn: 5576
2003-02-14 23:27:18 +00:00
Anand Shukla
7aae29d426
Changes to runtime framework
...
llvm-svn: 5572
2003-02-14 20:41:53 +00:00
Chris Lattner
37735c4677
Mark function edges
...
llvm-svn: 5571
2003-02-14 20:25:47 +00:00
Chris Lattner
174a241cd5
Fix a bug that cause a crash resolving questionable function calls
...
llvm-svn: 5567
2003-02-14 19:12:29 +00:00
Chris Lattner
00fe161e49
- Eliminate provably non-pointer nodes from graphs.
...
This helps a lot of testcases, for example:
New Time New #Nodes Old Time Old #Nodes
254.gap: 91.1024 21605 91.1397 22657
povray31: 2.7807 8613 3.0152 10338
255.vortex: 1.2034 8153 1.2172 8822
moria: .6756 3150 .7054 3877
300.twolf: .1652 2010 .1851 3270
Typically, testcases which use long and ulong integers a lot get better, f.e. povray above.
llvm-svn: 5566
2003-02-14 06:28:00 +00:00
Chris Lattner
8de17c9baf
Fix a misunderstanding of the standard associative containers
...
llvm-svn: 5565
2003-02-14 05:34:36 +00:00
Chris Lattner
e5dbced215
Don't put integer pointers (longs) into the scalar map.
...
This speeds stuff up by 10% on some tests, woot!
llvm-svn: 5564
2003-02-14 04:55:58 +00:00
Chris Lattner
100668a3df
Clarify the Makefile.config settings
...
llvm-svn: 5563
2003-02-14 04:22:13 +00:00
Chris Lattner
e70bdb4355
Fix bug: LevelRaise/2003-02-13-CallRaise.ll
...
llvm-svn: 5562
2003-02-14 03:07:17 +00:00
Chris Lattner
095695b145
New testcase distilled from LARN
...
llvm-svn: 5561
2003-02-14 03:02:16 +00:00
Chris Lattner
b178c26c20
Hax0r around a deficiency in the Pass infrastructure
...
llvm-svn: 5555
2003-02-13 21:44:18 +00:00
Chris Lattner
32a8143e30
Use the new tailclip property new added to graphviz CVS to make call nodes
...
actually intelligable
llvm-svn: 5554
2003-02-13 20:14:40 +00:00
Chris Lattner
c4affd76ec
This speeds up processing LLVM a _lot_, 17% in the case of loading and destroying "vortex"
...
llvm-svn: 5553
2003-02-13 19:46:22 +00:00
Chris Lattner
120d135f05
Move node forwarding code from being inlined to being out-of-line.
...
This brings a 11.6% speedup to steens, and a 3.6 overall speedup to ds-aa
llvm-svn: 5552
2003-02-13 19:09:00 +00:00
Chris Lattner
a082aba9d1
Fix profile builds
...
llvm-svn: 5551
2003-02-13 16:56:30 +00:00
Chris Lattner
9efc110b12
Make more compatible with GCC 2.96
...
llvm-svn: 5550
2003-02-13 16:25:28 +00:00
Chris Lattner
34094ff7e3
Remove gunk that was supposed to make space evaluation more precise, but never worked.
...
llvm-svn: 5549
2003-02-13 05:07:53 +00:00
Chris Lattner
21324ae8e4
New testcase, for something we may never really want to support :)
...
llvm-svn: 5548
2003-02-12 21:45:39 +00:00
Chris Lattner
b702add8dc
Add -fomit-frame-pointer when optimizing
...
llvm-svn: 5547
2003-02-12 20:45:45 +00:00