summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Analysis
Commit message (Collapse)AuthorAgeFilesLines
...
* 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
* rename some variables.Chris Lattner2009-12-011-13/+13
| | | | llvm-svn: 90258
* tidyChris Lattner2009-12-011-1/+3
| | | | llvm-svn: 90257
* fix 255.vortex again, third time's the charm.Chris Lattner2009-12-011-2/+35
| | | | llvm-svn: 90217
* Remove ShortNames from getNodeLabel in DOTGraphTraitsTobias Grosser2009-11-301-16/+15
| | | | llvm-svn: 90134
* Instantiate DefaultDOTGraphTraitsTobias Grosser2009-11-301-0/+10
| | | | llvm-svn: 90133
* Small PostDominatorTree improvementsTobias Grosser2009-11-301-3/+9
| | | | | | | * Do not SEGFAULT if tree entryNode() is NULL * Print function names in dotty printer llvm-svn: 90130
* Revert r90107, fixing test/Transforms/GVN/2009-11-29-ReverseMap.ll and theNick Lewycky2009-11-301-15/+2
| | | | | | llvm-gcc build. llvm-svn: 90113
* reapply r90093 with an addition of keeping the forwardChris Lattner2009-11-301-2/+15
| | | | | | | and reverse nonlocal memdep maps in synch, this should fix 255.vortex. llvm-svn: 90107
* Teach ConstantFolding to do a better job when folding gep(bitcast).Nick Lewycky2009-11-291-0/+1
| | | | | | This permits the devirtualization of llvm.org/PR3100#c9 when compiled by clang. llvm-svn: 90099
* revert this patch for now, it causes failures of:Chris Lattner2009-11-291-12/+2
| | | | | | | LLVM::Transforms/GVN/2009-02-17-LoadPRECrash.ll LLVM::Transforms/GVN/2009-06-17-InvalidPRE.ll llvm-svn: 90096
* Fix a really nasty caching bug I introduced in memdep. An entryChris Lattner2009-11-291-2/+12
| | | | | | | | | | | | was being added to the Result vector, but not being put in the cache. This means that if the cache was reused wholesale for a later query that it would be missing this entry and we'd do an incorrect load elimination. Unfortunately, it's not really possible to write a useful testcase for this, but this unbreaks 255.vortex. llvm-svn: 90093
* Detabify.Nick Lewycky2009-11-291-1/+1
| | | | llvm-svn: 90085
OpenPOWER on IntegriCloud