summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Analysis
Commit message (Collapse)AuthorAgeFilesLines
* Reapply LoopStrengthReduce and IVUsers cleanups, excluding the partDan Gohman2009-12-181-1/+2
| | | | | | | | of 91296 that caused trouble -- the Processed list needs to be preserved for the livetime of the pass, as AddUsersIfInteresting is called from other passes. llvm-svn: 91641
* Revert 91280-91283, 91286-91289, 91291, 91293, 91295-91296. It apparently ↵Evan Cheng2009-12-171-3/+2
| | | | | | introduced a non-deterministic behavior in the optimizer somewhere. llvm-svn: 91598
* Fix GetConstantStringInfo to not look into MDString (it works on Chris Lattner2009-12-152-15/+7
| | | | | | | real data, not metadata) and fix DbgInfoPrinter to not abuse GetConstantStringInfo. llvm-svn: 91444
* Add support to emit debug info for C++ namespaces.Devang Patel2009-12-151-0/+28
| | | | llvm-svn: 91440
* Remove isPod() from DenseMapInfo, splitting it out to its ownChris Lattner2009-12-151-2/+0
| | | | | | | | isPodLike type trait. This is a generally useful type trait for more than just DenseMap, and we really care about whether something acts like a pod, not whether it really is a pod. llvm-svn: 91421
* You can't use typedefs to declare template member specializations, andJohn McCall2009-12-151-35/+49
| | | | | | clang enforces it. llvm-svn: 91397
* Clear the Processed set when it is no longer used, and clear theDan Gohman2009-12-141-1/+2
| | | | | | IVUses list in releaseMemory(). llvm-svn: 91296
* Fix a thinko; isNotAlreadyContainedIn had a built-in negative, so theDan Gohman2009-12-141-1/+1
| | | | | | condition was inverted when the code was converted to contains(). llvm-svn: 91295
* Drop Loop::isNotAlreadyContainedIn in favor of Loop::contains. TheDan Gohman2009-12-141-1/+1
| | | | | | former was just exposing a LoopInfoBase implementation detail. llvm-svn: 91286
* Make getUniqueExitBlocks's precondition assert more precise, toDan Gohman2009-12-111-3/+3
| | | | | | avoid spurious failures. This fixes PR5758. llvm-svn: 91147
* Reuse the Threshold value to size these containers because it'sDan Gohman2009-12-091-2/+2
| | | | | | currently somewhat convenient for them to have the same value. llvm-svn: 90980
* Add a minor optimization: if we haven't changed the operands of anChris Lattner2009-12-091-0/+4
| | | | | | | | | | add, there is no need to scan the world to find the same add again. This invalidates the previous testcase, which wasn't wonderful anyway, because it needed a run of instcombine to permute the use-lists in just the right way to before GVN was run (so it was really fragile). Not a big loss. llvm-svn: 90973
* fix PR5733, a case where we'd replace an add with a lexically identical Chris Lattner2009-12-091-1/+2
| | | | | | binary operator that wasn't an add. In this case, a xor. Whoops. llvm-svn: 90971
* enhance NonLocalDepEntry to keep the per-block phi translated addressChris Lattner2009-12-091-15/+17
| | | | | | of the query. llvm-svn: 90958
* change NonLocalDepEntry from being a typedef for an std::pair to be itsChris Lattner2009-12-091-53/+53
| | | | | | own small class. No functionality change. llvm-svn: 90956
* Switch GVN and memdep to use PHITransAddr, which correctly handlesChris Lattner2009-12-091-303/+34
| | | | | | | | | | | | | | | | | | | | | | | phi translation of complex expressions like &A[i+1]. This has the following benefits: 1. The phi translation logic is all contained in its own class with a strong interface and verification that it is self consistent. 2. The logic is more correct than before. Previously, if intermediate expressions got PHI translated, we'd miss the update and scan for the wrong pointers in predecessor blocks. @phi_trans2 is a testcase for this. 3. We have a lot less code in memdep. We can handle phi translation across blocks of things like @phi_trans3, which is pretty insane :). This patch should fix the miscompiles of 255.vortex, and I tested it with a bootstrap of llvm-gcc, llvm-test and dejagnu of course. llvm-svn: 90926
* fix a nasty variable that was shadowing the real CurBB but with the wrong value.Chris Lattner2009-12-091-1/+0
| | | | llvm-svn: 90920
* fix many input tracking bugs.Chris Lattner2009-12-091-33/+30
| | | | llvm-svn: 90915
* Fix a typo in a comment, and adjust SmallSet and SmallVector sizes,Dan Gohman2009-12-091-7/+7
| | | | | | that Chris noticed. llvm-svn: 90910
* fix PHI translation to take the PHI out of the instinputs set and addChris Lattner2009-12-091-9/+7
| | | | | | the translated value back to it if an instruction. llvm-svn: 90909
* instructions defined in CurBB may be intermediate nodes of the computation.Chris Lattner2009-12-091-14/+14
| | | | llvm-svn: 90908
* add dumping and sanity checking support.Chris Lattner2009-12-091-0/+69
| | | | llvm-svn: 90906
* Put a threshold on the number of users PointerMayBeCapturedDan Gohman2009-12-081-0/+16
| | | | | | | | | | | | examines; fall back to a conservative answer if there are more. This works around some several compile time problems resulting from BasicAliasAnalysis calling PointerMayBeCaptured. The value has been chosen arbitrarily. This fixes rdar://7438917 and may partially address PR5708. llvm-svn: 90905
* make sure that PHITransAddr keeps its 'InstInputs' list up toChris Lattner2009-12-081-3/+42
| | | | | | date when instsimplify kicks in. llvm-svn: 90901
* Revert 90858 90875 and 90805 for now.Devang Patel2009-12-081-28/+0
| | | | llvm-svn: 90898
* fix a typo (and -> add) and fix GetAvailablePHITranslatedSubExpr to not Chris Lattner2009-12-081-3/+6
| | | | | | side-effect the current object. llvm-svn: 90837
* Rename DIFactory::InsertValue() as DIFactory::InsertDbgValueIntrinsic()Victor Hernandez2009-12-071-6/+8
| | | | llvm-svn: 90807
* Add support to emit debug info for c++ style namespaces.Devang Patel2009-12-071-0/+28
| | | | llvm-svn: 90805
* fix typoChris Lattner2009-12-071-1/+1
| | | | llvm-svn: 90793
* add accessor, improve comment.Chris Lattner2009-12-071-1/+1
| | | | llvm-svn: 90792
* Introduce the "@llvm.dbg.value" debug intrinsic.Victor Hernandez2009-12-071-0/+29
| | | | | | | | | | | The semantics of llvm.dbg.value are that starting from where it is executed, an offset into the specified user source variable is specified to get a new value. An example: call void @llvm.dbg.value(metadata !{ i32 7 }, i64 0, metadata !2) Here the user source variable associated with metadata #2 gets the value "i32 7" at offset 0. llvm-svn: 90788
* add support for phi translation and incorpation of new expression.Chris Lattner2009-12-071-121/+144
| | | | llvm-svn: 90782
* checkpoint of the new PHITransAddr code, still not done and not used byChris Lattner2009-12-071-29/+257
| | | | | | anything. llvm-svn: 90779
* Fix indentation in switch statement.Nick Lewycky2009-12-051-15/+16
| | | | llvm-svn: 90650
* Fix PR5551 by not ignoring the top level constantexpr whenChris Lattner2009-12-041-1/+1
| | | | | | folding a load from constant. llvm-svn: 90545
* add to cmakeChris Lattner2009-12-041-0/+1
| | | | llvm-svn: 90539
* add the start of a class used to handle phi translation in memdep andChris Lattner2009-12-041-0/+71
| | | | | | | gvn (this is just a skeleton so far). This will ultimately be used to fix a nasty miscompilation with GVN. llvm-svn: 90518
* Fix a comment typo.Bob Wilson2009-12-041-1/+1
| | | | llvm-svn: 90511
* Add support to emit debug info for virtual functions and virtual base classes.Devang Patel2009-12-031-5/+13
| | | | llvm-svn: 90474
* Fix MSVC build.Benjamin Kramer2009-12-031-1/+1
| | | | llvm-svn: 90454
* Convert ProfileVerifier to template so it can be used for different types of ↵Andreas Neustifter2009-12-031-243/+276
| | | | | | ProfileInfo. llvm-svn: 90451
* Do not create negative edge weights in ProfileEstimator.Andreas Neustifter2009-12-031-21/+125
| | | | | | | Use integer values for weights to prevent rounding errors. Make ProfileEstimator more robust in general CFGs. llvm-svn: 90449
* Use ProfileInfo-API in ProfileInfo Loader and do more assertions.Andreas Neustifter2009-12-031-46/+10
| | | | llvm-svn: 90446
* Converted ProfileInfo to template, added more API for ProfileInfo-preserving.Andreas Neustifter2009-12-031-40/+925
| | | | llvm-svn: 90445
* fix PR5673 by being more careful about pointers to functions.Chris Lattner2009-12-031-3/+10
| | | | llvm-svn: 90369
* improve portability to avoid conflicting with std::next in c++'0x.Chris Lattner2009-12-031-2/+2
| | | | | | Patch by Howard Hinnant! llvm-svn: 90365
* Silence compiler warnings.Benjamin Kramer2009-12-021-2/+2
| | | | llvm-svn: 90319
* Cleanup/remove some parts of the lifetime region handling code in memdep and ↵Owen Anderson2009-12-021-16/+13
| | | | | | | | GVN, per Chris' comments. Adjust testcases to match. llvm-svn: 90304
* Fixed an assertion failure for tracking sext of a vector of integersMon P Wang2009-12-021-1/+1
| | | | llvm-svn: 90290
* Add utility routine to create subprogram definition entry from subprogram ↵Devang Patel2009-12-011-0/+23
| | | | | | declaration entry. llvm-svn: 90282
OpenPOWER on IntegriCloud