summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Analysis
Commit message (Collapse)AuthorAgeFilesLines
* 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
* Add some assertionsChris Lattner2004-09-151-2/+3
| | | | llvm-svn: 16366
* Implement an AliasSetTracker::copyValue methodChris Lattner2004-09-141-3/+30
| | | | llvm-svn: 16344
* Fixes to make LLVM compile with vc7.1.Alkis Evlogimenos2004-09-035-2/+6
| | | | | | Patch contributed by Paolo Invernizzi! llvm-svn: 16152
* Changes For Bug 352Reid Spencer2004-09-0131-60/+60
| | | | | | | | Move include/Config and include/Support into include/llvm/Config, include/llvm/ADT and include/llvm/Support. From here on out, all LLVM public header files must be under include/llvm/. llvm-svn: 16137
* Fix a bug that caused the pass to go into infinite loops on trivial testcases.Chris Lattner2004-08-161-1/+2
| | | | | | This is fallout of the Bug 122 changes. llvm-svn: 15811
* Add standard print/dump methods to CallGraph classes.Chris Lattner2004-08-081-16/+22
| | | | llvm-svn: 15569
* Hide this optionChris Lattner2004-08-021-1/+1
| | | | llvm-svn: 15415
* Fix #includes of i*.h => Instructions.h as per PR403.Misha Brukman2004-07-298-13/+8
| | | | llvm-svn: 15334
* Fix #includes of i*.h => Instructions.h as per PR403.Misha Brukman2004-07-293-8/+4
| | | | llvm-svn: 15328
* Merge i*.h headers into Instructions.h as part of bug403.Alkis Evlogimenos2004-07-291-2/+1
| | | | llvm-svn: 15325
* Fix test/Regression/Analysis/BasicAA/2004-07-28-MustAliasbug.llxChris Lattner2004-07-291-5/+9
| | | | | | | This also fixes the miscompilation of MallocBench/gs with dead store elimination enabled. llvm-svn: 15324
* Make the create...() functions for some of these passes return a FunctionPass *.Brian Gaeke2004-07-271-1/+1
| | | | llvm-svn: 15276
* nuke pointless -debug outputChris Lattner2004-07-271-4/+0
| | | | llvm-svn: 15267
* Fix conservative assumption, which was quite broken. Also, notice thatChris Lattner2004-07-271-2/+22
| | | | | | functions known to not access memory (like sin/cos) don't access memory! :) llvm-svn: 15264
* Remove a bogus assertionChris Lattner2004-07-271-3/+0
| | | | llvm-svn: 15261
* Complete rewrite of this pass to be faster, use less memory, be easier toChris Lattner2004-07-271-97/+148
| | | | | | | understand, and more accurate to boot! This implements GlobalModRef/purecse.ll over the previous impl. llvm-svn: 15260
* Use context-sensitive alias analysis to avoid pessimization in clients ofChris Lattner2004-07-271-5/+23
| | | | | | | AliasSetTracker (dse and licm). This implements DeadStoreElimination/context-sensitive.llx llvm-svn: 15254
* Make basicaa a bit more aggressiveChris Lattner2004-07-271-0/+4
| | | | llvm-svn: 15252
* basic-aa can actually provide simple mod/ref infoChris Lattner2004-07-271-3/+3
| | | | llvm-svn: 15251
OpenPOWER on IntegriCloud