summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Analysis
Commit message (Collapse)AuthorAgeFilesLines
* More code clean up based on patch feedback.Evan Cheng2009-10-141-12/+16
| | | | llvm-svn: 84074
* Change VisitedPHIs into an instance variable that's freed by each alias() call.Evan Cheng2009-10-141-22/+22
| | | | llvm-svn: 84072
* Teach basic AA about PHI nodes. If all operands of a phi NoAlias another ↵Evan Cheng2009-10-131-12/+69
| | | | | | value than it's safe to declare the PHI NoAlias the value. Ditto for MustAlias. llvm-svn: 84038
* Compute a full cost value even when a setjmp call is found.Dan Gohman2009-10-131-3/+1
| | | | llvm-svn: 84015
* Split code not specific to Function inlining out into a separate class,Dan Gohman2009-10-131-25/+28
| | | | | | | named CodeMetrics. Move it to be a non-nested class. Rename RegionInfo back to FunctionInfo. llvm-svn: 84013
* Update the other CMake file.Benjamin Kramer2009-10-131-0/+1
| | | | llvm-svn: 84003
* Refactor some code. No functionality changes.Evan Cheng2009-10-131-105/+119
| | | | llvm-svn: 84000
* Move the InlineCost code from Transforms/Utils to Analysis.Dan Gohman2009-10-131-0/+337
| | | | llvm-svn: 83998
* "there is not any instruction with attached debug info in this module" does ↵Devang Patel2009-10-131-11/+11
| | | | | | not mean "there is no debug info in this module". :) llvm-svn: 83984
* Teach BasicAA a little something about the atomic intrinsics: they can onlyNick Lewycky2009-10-131-0/+21
| | | | | | modify through the pointer they're given. llvm-svn: 83959
* Memory dependence analysis was incorrectly stopping to scan for stores to a ↵Victor Hernandez2009-10-131-10/+5
| | | | | | | | pointer at bitcast uses of a malloc call. It should continue scanning until the malloc call, and this patch fixes that. llvm-svn: 83931
* Revert r83606 and add comments explaining why it isn't safe.Dan Gohman2009-10-091-12/+10
| | | | llvm-svn: 83649
* Preserve HasNSW and HasNUW when constructing SCEVs for Add and MulDan Gohman2009-10-091-4/+12
| | | | | | instructions. llvm-svn: 83606
* Add the ability to track HasNSW and HasNUW on more kinds of SCEV expressions.Dan Gohman2009-10-091-12/+22
| | | | llvm-svn: 83601
* Update CMake build yet again after a source file was removedDouglas Gregor2009-10-081-1/+0
| | | | llvm-svn: 83575
* It's possible for a global variable to be optimized out of a metadata object. SoBill Wendling2009-10-081-1/+1
| | | | | | we should allow a "null" with this dyn_cast. llvm-svn: 83573
* remove LoopVR pass. According to Nick:Chris Lattner2009-10-081-297/+0
| | | | | | | "LoopVR's logic was copied into ScalarEvolution::getUnsignedRange and ::getSignedRange. Please delete LoopVR." llvm-svn: 83531
* Extract subprogram and compile unit information from the debug info attached ↵Devang Patel2009-10-071-0/+29
| | | | | | to an instruction. llvm-svn: 83491
* Add PR to this FIXME, looks like I didn't commit this change after all.Torok Edwin2009-10-071-1/+2
| | | | llvm-svn: 83457
* Introduce and use convenience methods for getting pointer typesDuncan Sands2009-10-062-2/+2
| | | | | | | where the element is of a basic builtin type. For example, to get an i8* use getInt8PtrTy. llvm-svn: 83379
* Extend ConstantFolding to understand signed overflow variantsEvan Phoenix2009-10-051-0/+24
| | | | llvm-svn: 83338
* Don't treat malloc calls with non-matching prototype as malloc.Torok Edwin2009-10-051-2/+13
| | | | | | | Fixes second part of PR5130, miscompilation in FreeBSD kernel, where malloc takes 3 params, and *does* initialize memory. llvm-svn: 83324
* Remove an unnnecessary LLVMContext argument inDan Gohman2009-10-051-2/+1
| | | | | | ConstantFoldLoadThroughGEPConstantExpr. llvm-svn: 83311
* teach the optimizer how to constant fold uadd/usub intrinsics.Chris Lattner2009-10-051-1/+29
| | | | llvm-svn: 83295
* simplify this code a bunch.Chris Lattner2009-10-051-14/+14
| | | | llvm-svn: 83294
* code simplifications.Chris Lattner2009-10-051-16/+25
| | | | llvm-svn: 83292
* Expand api out in the usual inserter way, though, I do have aMike Stump2009-10-011-3/+17
| | | | | | | question, can we get rid of the BasicBlock versions of all inserters and use Head == 0 to indicate the old case when GetInsertBlock == 0? llvm-svn: 83216
* Add another MDNode into DebugLocTuple. This will be used to keep track of ↵Devang Patel2009-10-011-5/+6
| | | | | | inlined functions. llvm-svn: 83190
* Add isFOO() helpers. Fix getDirectory() and getFilename() for DIScope.Devang Patel2009-09-301-0/+50
| | | | llvm-svn: 83180
* Add a way for a frontend to generate more complex dwarf locationMike Stump2009-09-301-0/+22
| | | | | | | | | | | | | | | | | | information. This allows arbitrary code involving DW_OP_plus_uconst and DW_OP_deref. The scheme allows for easy extention to include, any, or all of the DW_OP_ opcodes. I thought about just exposing all of them, but, wasn't sure if people wanted the dwarf opcodes exposed in the api. Is that a layering violation? With this scheme, the entire existing block scheme used by llvm-gcc can be switched over to the new scheme. I think that would be cleaner, as then the compiler specific bits are not present in llvm proper. Before the old code can be yanked however, similar code in clang would have to be removed. Next up, more testing. llvm-svn: 83120
* Remove std::string uses from DebugInfo interface.Devang Patel2009-09-292-50/+45
| | | | llvm-svn: 83083
* When extending the operands of an addrec, iterate through allDan Gohman2009-09-281-5/+5
| | | | | | | the operands, rather than trying to partition them into a start and a step. This handles non-affine add recurrences correctly. llvm-svn: 83011
* Create a README.txt for lib/Analysis, and add an entry.Dan Gohman2009-09-281-0/+18
| | | | llvm-svn: 83001
* Fix this debug output to handle the case where the loop has been deleted.Dan Gohman2009-09-281-1/+2
| | | | llvm-svn: 82994
* Include the name of the loop header in debug messages.Dan Gohman2009-09-281-4/+9
| | | | llvm-svn: 82993
* Move the dominator verification code out of special code embedded withinDan Gohman2009-09-282-4/+33
| | | | | | | | | | | | the PassManager code into a regular verifyAnalysis method. Also, reorganize loop verification. Make the LoopPass infrastructure call verifyLoop as needed instead of having LoopInfo::verifyAnalysis check every loop in the function after each looop pass. Add a new command-line argument, -verify-loop-info, to enable the expensive full checking. llvm-svn: 82952
* Move this assert to check the condition as soon as it is known.Dan Gohman2009-09-281-1/+1
| | | | llvm-svn: 82951
* Extend the StartPassTimer and StopPassTimer functions so that theDan Gohman2009-09-282-6/+6
| | | | | | | | code that stops the timer doesn't have to search to find the timer object before it stops the timer. This avoids a lock acquisition and a few other things done with the timer running. llvm-svn: 82949
* Fix an old copy+pasto.Dan Gohman2009-09-271-1/+1
| | | | llvm-svn: 82947
* Extract the code for inserting a loop into the loop queue intoDan Gohman2009-09-271-3/+7
| | | | | | a separate function. llvm-svn: 82946
* When a loop is deleted, immediately release all of the activeDan Gohman2009-09-271-0/+9
| | | | | | | | LoopPasses for that loop. This avoids trouble with the PassManager trying to call verifyAnalysis on them, and frees up some memory sooner rather than later. llvm-svn: 82945
* Delete a bogus comment.Dan Gohman2009-09-271-1/+0
| | | | llvm-svn: 82908
* Fix SCEVExpander's canonical addrec expansion code to work on loops thatDan Gohman2009-09-271-19/+12
| | | | | | | | aren't in canonical loop-simplify form, since it doesn't itself depend on LoopSimplify. This means handling loops without preheaders and loops with multiple backedges. llvm-svn: 82905
* Instead of testing whether an instruction dominates the loop preheader,Dan Gohman2009-09-271-3/+3
| | | | | | | | | test whether it properly dominates the loop header. This is equivalent when the loop has a preheader, and has the advantage of working when the loop doesn't have a preheader. Since IVUsers doesn't Require LoopSimplify, the loop isn't guaranteed to have a preheader. llvm-svn: 82899
* Add a properlyDominates member function to ScalarEvolution.Dan Gohman2009-09-271-0/+22
| | | | llvm-svn: 82898
* Remove a redundant #include.Dan Gohman2009-09-271-1/+0
| | | | llvm-svn: 82897
* Fix a case where ScalarEvolution was expanding pointer arithmeticDan Gohman2009-09-261-3/+20
| | | | | | to inttoptr/ptrtoint unnecessarily. llvm-svn: 82864
* Handle sqrt in CannotBeNegativeZero. absf and abslDale Johannesen2009-09-251-3/+7
| | | | | | appear to be misspellings, removed in favor of fabs*. llvm-svn: 82796
* No need to verify that malloc's return type is i8*.Victor Hernandez2009-09-221-1/+1
| | | | llvm-svn: 82561
* Switch DIDescriptor to use a TrackingVH. - This makes it much safer to work ↵Daniel Dunbar2009-09-221-3/+12
| | | | | | with debug info, since it was extraordinarily easy to have dangling pointers thanks to MDNode uniquing. llvm-svn: 82507
OpenPOWER on IntegriCloud