summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Analysis
Commit message (Collapse)AuthorAgeFilesLines
* Work correctly with ICC, Patch contributed by Bjørn WennbergChris Lattner2004-12-081-8/+16
| | | | llvm-svn: 18630
* For PR387:\Reid Spencer2004-12-074-0/+12
| | | | | | Add getModRefInfo method to avoid overloaded virtuals llvm-svn: 18601
* For PR387:\Reid Spencer2004-12-0713-15/+15
| | | | | | | Make only one print method to avoid overloaded virtual warnings when \ compiled with -Woverloaded-virtual llvm-svn: 18589
* This patch prevents an infinite recursion while compiling 103.su2cor.Chris Lattner2004-12-041-3/+3
| | | | | | | All SPEC CFP 95 programs now work, though the JIT isn't loading -lf2c right so they aren't testing correctly. llvm-svn: 18499
* Fix DeadStoreElimination/2004-11-28-LiveStoreDeleted.llChris Lattner2004-11-281-3/+3
| | | | llvm-svn: 18308
* When merging to alias sets, if they are both must alias, the result is notChris Lattner2004-11-271-8/+22
| | | | | | | a must alias set unless all of the pointers in the resultant set are must aliased together. llvm-svn: 18275
* Add a new interfaceChris Lattner2004-11-261-0/+12
| | | | llvm-svn: 18266
* When evaluating an AA, pass in size infoChris Lattner2004-11-261-28/+38
| | | | llvm-svn: 18264
* The trick with globals actually works with allocas and malloc tooChris Lattner2004-11-261-12/+12
| | | | llvm-svn: 18262
* A store or load cannot alias a global if the accessed amount is larger thenChris Lattner2004-11-261-20/+49
| | | | | | | | the global. This implements Regression/Analysis/BasicAA/global-size.ll llvm-svn: 18261
* Mission accomplished!Chris Lattner2004-11-191-1/+0
| | | | llvm-svn: 17990
* Simplify conditional and fix LICM/2004-11-17-UndefIndexCrash.llChris Lattner2004-11-171-2/+1
| | | | | | by saying what we mean llvm-svn: 17913
* Standardize on 'class' instead of 'struct'. Gets rid of warnings in VC++Reid Spencer2004-11-161-1/+1
| | | | | | Patch contributed by Jeff Cohen. llvm-svn: 17889
* Fix a bug that was preventing povray and namd from pool allocating correctly.Chris Lattner2004-11-081-1/+1
| | | | llvm-svn: 17632
* Handle assert_fail specialChris Lattner2004-11-081-0/+7
| | | | llvm-svn: 17631
* Remove dead varChris Lattner2004-11-051-1/+0
| | | | llvm-svn: 17485
* Don't call Constant::getNullValue when the argument could be VoidTyChris Lattner2004-11-031-2/+3
| | | | llvm-svn: 17457
* Fix commentChris Lattner2004-10-311-1/+1
| | | | llvm-svn: 17377
* Improve commentChris Lattner2004-10-311-2/+4
| | | | llvm-svn: 17375
* Add more paranoid assertions :)Chris Lattner2004-10-311-0/+12
| | | | llvm-svn: 17367
* Fix some more problems where we called getOffset before getNode()Chris Lattner2004-10-301-2/+4
| | | | llvm-svn: 17358
* Fix three bugs:Chris Lattner2004-10-301-9/+12
| | | | | | | | | | | | | | | | 1. Calls to external global VARIABLES should not be treated as a call to an external function 2. Efficiently deleting an element from a vector by using std::swap with the back, then pop_back is NOT a good way to keep the vector sorted. 3. Our hope of having stuff get deleted by making them redundant just won't work. In particular, if we have three calls in sequence that should be merged: A, B, C first we unify B into A. To be sure that they appeared identical (so B would be erased) we set B = A. On the next step, we unified C into A and set C = A. Unfortunately, this is no guarantee that C = B, so we would fail to delete the dead call. Switch to a more explicit scheme. llvm-svn: 17357
* Fix more undefined behaviorChris Lattner2004-10-301-10/+13
| | | | llvm-svn: 17356
* * Add a methodChris Lattner2004-10-301-16/+28
| | | | | | | | | * change some uses of NH.getNode() in a bool context to use !NH.isNull() * Fix a bunch of places where we depended on the (undefined) order of evaluation of arguments to function calls to ensure that getNode() was called before getOffset(). In practice, this was NOT happening. llvm-svn: 17354
* Fix library name.Alkis Evlogimenos2004-10-282-2/+2
| | | | llvm-svn: 17306
* Change Library Names Not To Conflict With Others When InstalledReid Spencer2004-10-271-1/+1
| | | | llvm-svn: 17286
* Convert 'struct' to 'class' in various places to adhere to the coding standardsChris Lattner2004-10-271-1/+1
| | | | | | and work better with VC++. Patch contributed by Morten Ofstad! llvm-svn: 17281
* add support for UndefValueChris Lattner2004-10-261-1/+1
| | | | llvm-svn: 17260
* Patch to support MSVC, contributed by Morten OfstadChris Lattner2004-10-251-1/+1
| | | | llvm-svn: 17214
* We won't use automakeReid Spencer2004-10-226-2275/+0
| | | | llvm-svn: 17155
* Initial automake generated Makefile templateReid Spencer2004-10-183-0/+2179
| | | | llvm-svn: 17136
* Add support for unreachableChris Lattner2004-10-161-2/+1
| | | | llvm-svn: 17056
* Add support for undefChris Lattner2004-10-161-0/+3
| | | | llvm-svn: 17055
* Add supportChris Lattner2004-10-161-0/+1
| | | | llvm-svn: 17052
* Be more careful about looking for constants when we really want constantint's.Chris Lattner2004-10-161-10/+8
| | | | llvm-svn: 17029
* Do not use the same variable name for two different variables in theChris Lattner2004-10-141-3/+2
| | | | | | | same scope. This confused VC++ (and probably people too!). Patch by Morten Ofstad! llvm-svn: 16985
* Update to reflect changes in Makefile rules.Reid Spencer2004-10-133-13/+9
| | | | llvm-svn: 16950
* This nutty patch has been in my tree since before 1.3 went out, and it needsChris Lattner2004-10-121-20/+147
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | to go in. This patch allows us to compute the trip count of loops controlled by values loaded from constant arrays. The cannonnical example of this is strlen when passed a constant argument: for (int i = 0; "constantstring"[i]; ++i) ; return i; In this case, it will compute that the loop executes 14 times, which means that the exit value of i is 14. Because of this, the loop gets DCE'd and we are happy. This also applies to anything that does similar things, e.g. loops like this: const float Array[] = { 0.1, 2.1, 3.2, 23.21 }; for (int i = 0; Array[i] < 20; ++i) and is actually fairly general. The problem with this is that it almost never triggers. The reason is that we run indvars and the loop optimizer only at compile time, which is before things like strlen and strcpy have been inlined into the program from libc. Because of this, it almost never is used (it triggers twice in specint2k). I'm committing it because it DOES work, may be useful in the future, and doesn't slow us down at all. If/when we start running the loop optimizer at link-time (-O4?) this will be very nice indeed :) llvm-svn: 16926
* Fix SingleSource/Benchmarks/McGill/chompChris Lattner2004-10-111-0/+1
| | | | llvm-svn: 16912
* Build both archive and relinked objectsReid Spencer2004-10-103-3/+17
| | | | llvm-svn: 16892
* Initial version of automake Makefile.am file.Reid Spencer2004-10-103-0/+86
| | | | llvm-svn: 16885
* Fix a nasty dangling pointer problem, due to a free'd pointer being left inChris Lattner2004-10-071-0/+3
| | | | | | | a map. This caused problems if a later object happened to be allocated at the free'd object's address. llvm-svn: 16813
* Dont' let null nodes sneak past cast instructionsChris Lattner2004-10-061-1/+4
| | | | llvm-svn: 16779
* 'Pass' should now not be derived from by clients. Instead, they should deriveChris Lattner2004-09-2021-35/+35
| | | | | | | from ModulePass. Instead of implementing Pass::run, then should implement ModulePass::runOnModule. llvm-svn: 16436
* Finegrainify namespacificationChris Lattner2004-09-201-7/+4
| | | | | | | | 'Pass' should now not be derived from by clients. Instead, they should derive from ModulePass. Instead of implementing Pass::run, then should implement ModulePass::runOnModule. llvm-svn: 16434
* Fix a nasty iterator invalidation problem I introduced yesterday. ThisChris Lattner2004-09-191-5/+5
| | | | | | | unfortunately is the cause of a bunch of failures from tonight, and the reason the tester is running so slow :( llvm-svn: 16407
* Add CallGraphNode::removeAnyCallEdgeTo methodChris Lattner2004-09-181-0/+12
| | | | llvm-svn: 16398
* When changing a function, make sure to update the CallGraphNode for theChris Lattner2004-09-181-0/+1
| | | | | | function, not just the CallGraph. llvm-svn: 16388
* Implement new changeFunction method, nuke a never implemented one.Chris Lattner2004-09-181-8/+14
| | | | llvm-svn: 16386
* Convert code to compile with vc7.1.Reid Spencer2004-09-151-3/+3
| | | | | | Patch contributed by Paolo Invernizzi. Thanks Paolo! llvm-svn: 16368
OpenPOWER on IntegriCloud