summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Analysis
Commit message (Collapse)AuthorAgeFilesLines
* Move the stuff that fixes the size, orientation & fonts of graphs toBrian Gaeke2004-05-052-12/+4
| | | | | | | | | | | the debugging functions that call "dot". These fixed settings have various problems: for example, the fixed size that is set in the graph traits classes is not appropriate for turning the dot file into a PNG, and if TrueType font rendering is being used, the 'Courier' TrueType font may not be installed. It seems easy enough to specify these things on the command line, anyhow. llvm-svn: 13366
* Add stub support for reading BBTraces.Brian Gaeke2004-05-041-0/+16
| | | | llvm-svn: 13352
* Share ProfilingType enum with the C profiling runtime libraries.Brian Gaeke2004-05-041-7/+1
| | | | llvm-svn: 13346
* Fix a problem with double freeing memory. For some reason, CallGraph is notChris Lattner2004-05-021-0/+1
| | | | | | acting like a normal pass. :( llvm-svn: 13318
* Plug a minor memory leakChris Lattner2004-05-021-0/+1
| | | | llvm-svn: 13317
* Wrapped code and comments at 80 cols; doxygenified some comments.Misha Brukman2004-04-292-18/+20
| | | | llvm-svn: 13264
* Reorder #includes as per style guide.Misha Brukman2004-04-291-3/+3
| | | | llvm-svn: 13263
* Send text and numbers directly to CachedWriter's contained ostream.Misha Brukman2004-04-281-1/+2
| | | | llvm-svn: 13243
* Changes to fix up the inst_iterator to pass to boost iterator checks. ThisChris Lattner2004-04-275-17/+17
| | | | | | patch was graciously contributed by Vladimir Prus. llvm-svn: 13185
* Add functions that return instances of these printer passesBrian Gaeke2004-04-261-0/+10
| | | | llvm-svn: 13175
* If an object is not in the scalar map then it must be a global from anotherChris Lattner2004-04-261-33/+33
| | | | | | graph. llvm-svn: 13173
* Eliminate all of the SCEV Expansion code which is really part of theChris Lattner2004-04-231-213/+9
| | | | | | IndVars pass, not part of SCEV *analysis*. llvm-svn: 13134
* Pass the callgraph not the moduleChris Lattner2004-04-201-2/+2
| | | | llvm-svn: 13087
* Add the ability for SCC passes to initialize and finalize themselvesChris Lattner2004-04-201-6/+3
| | | | llvm-svn: 13084
* It's not just a printer, it's actually an analysis tooChris Lattner2004-04-191-1/+1
| | | | llvm-svn: 13064
* Remove code to update loop depthsChris Lattner2004-04-191-10/+1
| | | | llvm-svn: 13058
* Add new methodChris Lattner2004-04-181-0/+8
| | | | llvm-svn: 13050
* Fix computation of exit blocksChris Lattner2004-04-181-2/+2
| | | | llvm-svn: 13047
* Change the ExitBlocks list from being explicitly contained in the LoopChris Lattner2004-04-182-46/+20
| | | | | | | structure to being dynamically computed on demand. This makes updating loop information MUCH easier. llvm-svn: 13045
* Implement methodChris Lattner2004-04-181-0/+12
| | | | llvm-svn: 13036
* Add a new method, add a check missing that caused a segfault if a loop didn'tChris Lattner2004-04-181-0/+14
| | | | | | have a canonical indvar llvm-svn: 13032
* Add the ability to compute exit values for complex loop using unanalyzableChris Lattner2004-04-171-52/+189
| | | | | | | | | | | | | | | | | | | | | | | | | | | operations. This allows us to compile this testcase: int main() { int h = 1; do h = 3 * h + 1; while (h <= 256); printf("%d\n", h); return 0; } into this: int %main() { entry: call void %__main( ) %tmp.6 = call int (sbyte*, ...)* %printf( sbyte* getelementptr ([4 x sbyte]* %.str_1, long 0, long 0), int 364 ) ; <int> [#uses=0] ret int 0 } This testcase was taken directly from 256.bzip2, believe it or not. This code is not as general as I would like. Next up is to refactor it a bit to handle more cases. llvm-svn: 13019
* Add the ability to compute trip counts that are only controlled by constantsChris Lattner2004-04-171-5/+174
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | even if the loop is using expressions that we can't compute as a closed-form. This allows us to calculate that this function always returns 55: int test() { double X; int Count = 0; for (X = 100; X > 1; X = sqrt(X), ++Count) /*empty*/; return Count; } And allows us to compute trip counts for loops like: int h = 1; do h = 3 * h + 1; while (h <= 256); (which occurs in bzip2), and for this function, which occurs after inlining and other optimizations: int popcount() { int x = 666; int result = 0; while (x != 0) { result = result + (x & 0x1); x = x >> 1; } return result; } We still cannot compute the exit values of result or h in the two loops above, which means we cannot delete the loop, but we are getting closer. Being able to compute a constant trip count for these two loops will allow us to unroll them completely though. llvm-svn: 13017
* Include <cmath> for compatibility with gcc 3.0.x (the system compiler onBrian Gaeke2004-04-161-0/+1
| | | | | | Debian.) llvm-svn: 12986
* add some helpful methods. Rearrange #includes to proper orderChris Lattner2004-04-151-6/+89
| | | | llvm-svn: 12960
* Factor a bunch of classes out into a public headerChris Lattner2004-04-151-553/+142
| | | | llvm-svn: 12958
* Unbreak the buildChris Lattner2004-04-151-0/+1
| | | | llvm-svn: 12956
* Implement a FIXME: if we're going to insert a cast, we might as well onlyChris Lattner2004-04-141-1/+15
| | | | | | insert it once! llvm-svn: 12955
* This is a trivial tweak to the addrec insertion code: insert the incrementChris Lattner2004-04-141-7/+12
| | | | | | | | | | | at the bottom of the loop instead of the top. This reduces the number of overlapping live ranges a lot, for example, eliminating a spill in an important loop in 183.equake with linear scan. I still need to make the exit comparison of the loop use the post-incremented version of this variable, but this is an easy first step. llvm-svn: 12952
* Add some methods that are useful for updating loop information.Chris Lattner2004-04-121-4/+86
| | | | llvm-svn: 12871
* Change the call graph class to have TWO external nodes, making call graphChris Lattner2004-04-121-181/+22
| | | | | | | SCC passes much more useful. In particular, this should fix the incredibly stupid missed inlining opportunities that the inliner suffered from. llvm-svn: 12860
* Hrm, operator new and new[] do not belong here. We should not CSE them! :)Chris Lattner2004-04-121-3/+0
| | | | llvm-svn: 12859
* operator new & operator new[] do not kill any legal memory locations.Chris Lattner2004-04-111-0/+3
| | | | llvm-svn: 12833
* Allow clients to be more efficient.Chris Lattner2004-04-111-0/+4
| | | | llvm-svn: 12831
* Add a couple of more functions that cannot access memory (the intrinsics) andChris Lattner2004-04-101-0/+7
| | | | | | don't write to memory llvm-svn: 12808
* Fix a bug Brian found.Chris Lattner2004-04-071-2/+3
| | | | llvm-svn: 12754
* Sparc don't got not "sqrtl", bum bum bumChris Lattner2004-04-051-1/+1
| | | | llvm-svn: 12670
* Kill warnings during an optimized compile where assert() disappears.Misha Brukman2004-04-051-0/+2
| | | | llvm-svn: 12669
* Fix PR312 and IndVarsSimplify/2004-04-05-InvokeCastCrash.llxChris Lattner2004-04-051-0/+2
| | | | llvm-svn: 12668
* Support getelementptr instructions which use uint's to index into structureChris Lattner2004-04-052-15/+37
| | | | | | | types and can have arbitrary 32- and 64-bit integer types indexing into sequential types. llvm-svn: 12653
* Implement test/Regression/Transforms/GCSE/undefined_load.llChris Lattner2004-04-031-0/+14
| | | | llvm-svn: 12641
* Add a break in the default caseChris Lattner2004-04-031-0/+1
| | | | llvm-svn: 12639
* Remove obsolete filesChris Lattner2004-04-021-324/+0
| | | | llvm-svn: 12633
* Comment out debugging printoutsChris Lattner2004-04-021-1/+5
| | | | llvm-svn: 12623
* Add a new analysisChris Lattner2004-04-021-0/+2482
| | | | llvm-svn: 12619
* Minor efficiency improvement, finegrainify namespacificationChris Lattner2004-03-251-5/+10
| | | | llvm-svn: 12517
* Fix a HORRIBLY NASTY bug that caused siod to stop working last night.Chris Lattner2004-03-171-1/+1
| | | | llvm-svn: 12479
* Add some missing functions. Make sure to handle calls together in case theChris Lattner2004-03-162-3/+21
| | | | | | client has another VN implementation that can VN calls. llvm-svn: 12427
* Ok, the assertion was bogus. Calls that do not read/write memory should notChris Lattner2004-03-151-0/+6
| | | | | | have an alias set, just like adds and subtracts don't. llvm-svn: 12422
* This assertion is bogus now that calls do not necessarily read/write memoryChris Lattner2004-03-151-2/+0
| | | | llvm-svn: 12421
OpenPOWER on IntegriCloud