summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Analysis
Commit message (Collapse)AuthorAgeFilesLines
* 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
* Hide analysis group registration behind a macro, just like pass registration.Owen Anderson2010-10-063-3/+3
| | | | llvm-svn: 115835
* Add support for DW_TAG_unspecified_parameters.Devang Patel2010-10-061-1/+14
| | | | llvm-svn: 115833
* Don't add the operand count to SCEV uniquing data; FoldingSetNodeIDDan Gohman2010-10-041-5/+0
| | | | | | already knows its own length, so this is redundant. llvm-svn: 115521
* Let FE mark a variable as artificial variable.Devang Patel2010-09-291-3/+7
| | | | llvm-svn: 115102
* Generalize DISubprogram element to encode various flags instead of just one ↵Devang Patel2010-09-291-3/+3
| | | | | | | | boolean for isArtificial. This is a backword compatible change. llvm-svn: 115084
* Remove PointerTracking from cmakelists …Benjamin Kramer2010-09-291-1/+0
| | | | llvm-svn: 115076
* remove PointerTracking from mainline, Edwin is going to move it out to ClamAVChris Lattner2010-09-291-316/+0
| | | | | | for LLVM 2.9 llvm-svn: 115062
* Removed a bunch of unnecessary target_link_libraries.Oscar Fuentes2010-09-281-2/+0
| | | | llvm-svn: 114999
* Provide an interface to let FEs anchor debug info for types.Devang Patel2010-09-281-0/+8
| | | | llvm-svn: 114969
* Don't try to constant fold libm functions with non-finite arguments.Jakob Stoklund Olesen2010-09-271-0/+7
| | | | | | | | Usually we wouldn't do this anyway because llvm_fenv_testexcept would return an exception, but we have seen some cases where neither errno nor fenv detect an exception on arm-linux. llvm-svn: 114893
* Teach memdep about TBAA tags.Dan Gohman2010-09-221-71/+95
| | | | llvm-svn: 114588
* Simplify code.Benjamin Kramer2010-09-211-8/+6
| | | | llvm-svn: 114444
* Make CreateComplexVariable independent of SmallVector.Benjamin Kramer2010-09-211-7/+6
| | | | llvm-svn: 114439
* Don't include <fenv.h> now that we have llvm/System/FEnv.h.Jakob Stoklund Olesen2010-09-171-1/+0
| | | | llvm-svn: 114219
* Attempt to support platforms which don't have fenv.h.Dan Gohman2010-09-171-12/+7
| | | | llvm-svn: 114196
OpenPOWER on IntegriCloud