summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Analysis
Commit message (Collapse)AuthorAgeFilesLines
* Support TBAA attachments on calls. This is somewhat experimental.Dan Gohman2010-10-251-0/+36
| | | | llvm-svn: 117317
* Fix chaining in TBAA's pointsToConstantMemory.Dan Gohman2010-10-251-1/+1
| | | | llvm-svn: 117314
* Only read one bit for testing for a readonly type, leaving the otherDan Gohman2010-10-251-2/+1
| | | | | | bits open for future uses. llvm-svn: 117301
* Add a comment.Dan Gohman2010-10-251-1/+3
| | | | llvm-svn: 117288
* Update comments; BasicAA is no longer necessarily the end of the chain.Dan Gohman2010-10-251-3/+3
| | | | llvm-svn: 117268
* Reintroduce these asserts, now that BasicAA is a normal AliasAnalysis pass.Dan Gohman2010-10-251-6/+3
| | | | llvm-svn: 117266
* Make some symbols static, move classes into anonymous namespaces.Benjamin Kramer2010-10-221-1/+1
| | | | llvm-svn: 117111
* Add some more documentation.Dan Gohman2010-10-211-15/+21
| | | | llvm-svn: 117070
* Explain what "constant" means here.Dan Gohman2010-10-211-1/+3
| | | | llvm-svn: 117053
* Update comments.Dan Gohman2010-10-211-3/+23
| | | | llvm-svn: 117048
* Memdep says that an instruction clobbers itselfDan Gohman2010-10-201-1/+4
| | | | | | when it means there is no specific clobber instruction. llvm-svn: 116960
* Factor out the main aliasing check into a separate function.Dan Gohman2010-10-201-24/+39
| | | | llvm-svn: 116958
* Fix comments; the type graph is currently a tree, not a DAG.Dan Gohman2010-10-201-3/+3
| | | | llvm-svn: 116954
* Add RegionPass support.Tobias Grosser2010-10-202-0/+277
| | | | | | | A RegionPass is executed like a LoopPass but on the regions detected by the RegionInfo pass instead of the loops detected by the LoopInfo pass. llvm-svn: 116905
* Fix CMake buildDouglas Gregor2010-10-201-0/+1
| | | | llvm-svn: 116903
* Move NoAA out of BasicAliasAnalysis.cpp into its own file, now thatDan Gohman2010-10-193-87/+92
| | | | | | | it doesn't have a special relationship with BasicAliasAnalysis anymore. llvm-svn: 116876
* Reapply r116831 and r116839, converting AliasAnalysis to useDan Gohman2010-10-196-41/+43
| | | | | | uint64_t, plus fixes for places I missed before. llvm-svn: 116875
* Revert r116831 and r116839, which are breaking selfhost builds.Dan Gohman2010-10-195-42/+40
| | | | llvm-svn: 116858
* Change AliasAnalysis and its clients to use uint64_t instead of unsignedDan Gohman2010-10-195-40/+42
| | | | | | for representing object sizes, for consistency with other parts of LLVM. llvm-svn: 116831
* Get rid of static constructors for pass registration. Instead, every pass ↵Owen Anderson2010-10-1927-36/+111
| | | | | | | | | | | | | | | | | exposes an initializeMyPassFunction(), which must be called in the pass's constructor. This function uses static dependency declarations to recursively initialize the pass's dependencies. Clients that only create passes through the createFooPass() APIs will require no changes. Clients that want to use the CommandLine options for passes will need to manually call the appropriate initialization functions in PassInitialization.h before parsing commandline arguments. I have tested this with all standard configurations of clang and llvm-gcc on Darwin. It is possible that there are problems with the static dependencies that will only be visible with non-standard options. If you encounter any crash in pass registration/creation, please send the testcase to me directly. llvm-svn: 116820
* Consistently use AliasAnalysis::UnknownSize instead of hardcoding ~0u.Dan Gohman2010-10-193-20/+29
| | | | llvm-svn: 116815
* Make the representation of AliasSets explicitly differentiateDan Gohman2010-10-181-2/+2
| | | | | | | between "not known yet" and "known no tbaa info" so that it can merge them properly. llvm-svn: 116767
* Don't pass the raw invalid pointer used to represent conflictingDan Gohman2010-10-181-3/+5
| | | | | | TBAA information to AliasAnalysis. llvm-svn: 116751
* Make AliasSetTracker TBAA-aware, enabling TBAA-enabled LICM.Dan Gohman2010-10-181-24/+49
| | | | llvm-svn: 116743
* Fix BasicAA to pass TBAAInfo through to the chained analysis.Dan Gohman2010-10-181-26/+47
| | | | llvm-svn: 116730
* Make TypeBasedAliasAnalysis default to doing nothing, with a command-lineDan Gohman2010-10-181-0/+10
| | | | | | option to enable it. llvm-svn: 116722
* Use chaining in TypeBasedAliasAnalysis::pointsToConstantMemory.Dan Gohman2010-10-181-1/+4
| | | | llvm-svn: 116721
* Make BasicAliasAnalysis a normal AliasAnalysis implementation whichDan Gohman2010-10-181-11/+25
| | | | | | | | | | | | does normal initialization and normal chaining. Change the default AliasAnalysis implementation to NoAlias. Update StandardCompileOpts.h and friends to explicitly request BasicAliasAnalysis. Update tests to explicitly request -basicaa. llvm-svn: 116720
* Eliminate some calls to Value::getNameStr.Benjamin Kramer2010-10-161-1/+1
| | | | llvm-svn: 116670
* Tolerate a null parent pointer.Dan Gohman2010-10-141-1/+1
| | | | llvm-svn: 116533
* add uadd_ov/usub_ov to apint, consolidate constant foldingChris Lattner2010-10-141-32/+28
| | | | | | | | | logic to use the new APInt methods. Among other things this implements rdar://8501501 - llvm.smul.with.overflow.i32 should constant fold which comes from "clang -ftrapv", originally brought to my attention from PR8221. llvm-svn: 116457
* Analysis groups need to initialize their default implementations.Owen Anderson2010-10-133-3/+3
| | | | llvm-svn: 116441
* Add Region::isTopLevelRegion().Tobias Grosser2010-10-131-3/+3
| | | | llvm-svn: 116402
* RegionInfo: Fix trivial error that slipped in last minute.Tobias Grosser2010-10-131-1/+1
| | | | llvm-svn: 116400
* RegionInfo: Update RegionInfo after a BB was split.Tobias Grosser2010-10-131-0/+13
| | | | llvm-svn: 116398
* RegioInfo: Add getExpandedRegion().Tobias Grosser2010-10-131-0/+32
| | | | | | | getExpandedRegion() enables us to create non canonical regions. Those regions can be used to define the largerst region, that fullfills a certain property. llvm-svn: 116397
* RegionInfo: Allow to update exit and entry of a region.Tobias Grosser2010-10-131-0/+9
| | | | llvm-svn: 116396
* RegionInfo: Enhance addSubregion.Tobias Grosser2010-10-131-4/+29
| | | | llvm-svn: 116395
* RegionInfo: Allow to set the parent region of a basic block.Tobias Grosser2010-10-131-1/+4
| | | | llvm-svn: 116394
* RegionInfo: Free the RegionNodes in cache.Tobias Grosser2010-10-131-0/+5
| | | | | | Contributed by: ether llvm-svn: 116380
* Begin adding static dependence information to passes, which will allow us toOwen Anderson2010-10-1216-17/+75
| | | | | | | | | perform initialization without static constructors AND without explicit initialization by the client. For the moment, passes are required to initialize both their (potential) dependencies and any passes they preserve. I hope to be able to relax the latter requirement in the future. llvm-svn: 116334
* Support AA chaining.Dan Gohman2010-10-111-6/+9
| | | | llvm-svn: 116264
* Now using a variant of the existing inlining heuristics to decide whether to ↵Kenneth Uildriks2010-10-091-0/+70
| | | | | | create a given specialization of a function in PartialSpecialization. If the total performance bonus across all callsites passing the same constant exceeds the specialization cost, we create the specialization. llvm-svn: 116158
* Start separating out code metrics into code size metrics and code ↵Kenneth Uildriks2010-10-081-10/+53
| | | | | | performance metrics. Partial Specialization will apply the former to function specializations, and the latter to all callsites that can use a specialization, in order to decide whether to create a specialization llvm-svn: 116057
* Now with fewer extraneous semicolons!Owen Anderson2010-10-0734-51/+52
| | | | llvm-svn: 115996
* Add an implementation of the initialization routine for IPA.Owen Anderson2010-10-071-0/+29
| | | | llvm-svn: 115947
* Add initialization routines for Analysis and IPA.Owen Anderson2010-10-072-0/+57
| | | | llvm-svn: 115946
* Fix a warning when building with clang++.Owen Anderson2010-10-071-2/+3
| | | | llvm-svn: 115924
* Move the pass initialization helper functions into the llvm namespace, and addOwen Anderson2010-10-072-10/+11
| | | | | | | a header declaring them all. This is also where we will declare per-library pass-set initializer functions down the road. llvm-svn: 115900
* Appease the clang self-host buildbot by providing a correct instantiation.Owen Anderson2010-10-061-3/+3
| | | | llvm-svn: 115857
OpenPOWER on IntegriCloud