summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Analysis
Commit message (Collapse)AuthorAgeFilesLines
...
* 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
* Fix the folding of floating-point math library calls, like sin(infinity),Dan Gohman2010-09-171-2/+9
| | | | | | | so that it detects errors on platforms where libm doesn't set errno. It's still subject to host libm details though. llvm-svn: 114148
* Add an #include of raw_ostream.h. Previously, this only compiledDan Gohman2010-09-171-0/+1
| | | | | | because it was using Twine.h's declaration of operator<<(const Twine &). llvm-svn: 114141
* Update CMake build.Benjamin Kramer2010-09-161-0/+1
| | | | llvm-svn: 114128
* Rename a variable to avoid a declaration conflict.Dan Gohman2010-09-161-3/+3
| | | | llvm-svn: 114126
* Add a pass which prints out all the memdep dependencies.Dan Gohman2010-09-161-0/+153
| | | | llvm-svn: 114121
* Revert r114097, adding back in the assertion against replacing an ↵Owen Anderson2010-09-161-24/+11
| | | | | | | | | Instruction by itself. Now that CorrelatedValuePropagation is more careful not to call SimplifyInstructionsInBlock() on an unreachable block, the issue has been fixed at a higher level. Add a big warning to SimplifyInstructionsInBlock() to hopefully prevent this in the future. llvm-svn: 114117
* It is possible, under specific circumstances involving ptrtoint ↵Owen Anderson2010-09-161-3/+7
| | | | | | | | | | | | ConstantExpr's, for LVI to end up trying to merge a Constant into a ConstantRange. Handle this conservatively for now, rather than asserting. The testcase is more complex that I would like, but the manifestation of the problem is sensitive to iteration orders and the state of the LVI cache, and I have not been able to reproduce it with manually constructed or simplified cases. Fixes PR8162. llvm-svn: 114103
* Fix PR8161, in which an unreachable loop causes recursive instruction ↵Owen Anderson2010-09-161-11/+24
| | | | | | | | simplification to try to replace an instruction with itself. Add a predicate to the simplifier to prevent this case. llvm-svn: 114097
* PR7959: Handle negative scales in GEPs correctly in BasicAA for non-64-bitEli Friedman2010-09-151-3/+3
| | | | | | targets. llvm-svn: 114015
* Convert TBAA to use the new TBAATag field of AliasAnalysis::Location.Dan Gohman2010-09-141-20/+4
| | | | llvm-svn: 113892
* Remove the experimental AliasAnalysis::getDependency interface, whichDan Gohman2010-09-148-378/+135
| | | | | | | | | | | isn't a good level of abstraction for memdep. Instead, generalize AliasAnalysis::alias and related interfaces with a new Location class for describing a memory location. For now, this is the same Pointer and Size as before, plus an additional field for a TBAA tag. Also, introduce a fixed MD_tbaa metadata tag kind. llvm-svn: 113858
* Revert "CMake: Get rid of LLVMLibDeps.cmake and export the libraries normally."Michael J. Spencer2010-09-132-3/+1
| | | | | | | | | | This reverts commit r113632 Conflicts: cmake/modules/AddLLVM.cmake llvm-svn: 113819
* Teach InstructionSimplify to fold (A & B) & A -> A & B and (A | B) | A -> A | B.Benjamin Kramer2010-09-101-0/+20
| | | | | | Reassociate does this but it doesn't catch all cases (e.g. if the operands are i1). llvm-svn: 113651
* CMake: Get rid of LLVMLibDeps.cmake and export the libraries normally.Michael J. Spencer2010-09-102-1/+3
| | | | llvm-svn: 113632
* What the loop unroller cares about, rather than just not unrolling loops ↵Owen Anderson2010-09-091-0/+6
| | | | | | | | | | | with calls, is not unrolling loops that contain calls that would be better off getting inlined. This mostly comes up when an interleaved devirtualization pass has devirtualized a call which the inliner will inline on a future pass. Thus, rather than blocking all loops containing calls, add a metric for "inline candidate calls" and block loops containing those instead. llvm-svn: 113535
* Extend the getDependence query with support for PHI translation.Dan Gohman2010-09-092-13/+57
| | | | llvm-svn: 113521
* Refactor code-size reduction estimation methods out of InlineCostAnalyzer ↵Owen Anderson2010-09-091-92/+90
| | | | | | | | | | | and into CodeMetrics. They don't use any InlineCostAnalyzer state, and are useful for other clients who don't necessarily want to use all of InlineCostAnalyzer's logic, some of which is fairly inlining-specific. No intended functionality change. llvm-svn: 113499
* Add a new experimental generalized dependence query interface toDan Gohman2010-09-082-0/+212
| | | | | | | | AliasAnalysis, and some code for implementing the new query on top of existing implementations by making standard alias and getModRefInfo queries. llvm-svn: 113329
* Clean up some of the PassRegistry implementation, and pImpl-ize it to reduce ↵Owen Anderson2010-09-071-0/+2
| | | | | | | | #include clutter and exposing internal details. llvm-svn: 113252
* Add completely hokey binary-and and binary-or operations to ConstantRange andNick Lewycky2010-09-071-0/+6
| | | | | | teach LazyValueInfo to use them. llvm-svn: 113196
* cleanup some of the lifetime/invariant marker stuff, add a big fixme.Chris Lattner2010-09-061-6/+11
| | | | llvm-svn: 113144
* speed up -gvn 3.4% on the testcase in PR7023Chris Lattner2010-09-061-1/+1
| | | | llvm-svn: 113135
* pull a simple method out of LICM into a new Chris Lattner2010-09-061-6/+10
| | | | | | | | | | Loop::hasLoopInvariantOperands method. Remove a useless and confusing Loop::isLoopInvariant(Instruction) method, which didn't do what you thought it did. No functionality change. llvm-svn: 113133
* fix PR8063, a crash in globalopt in the malloc analysis code.Chris Lattner2010-09-051-20/+29
| | | | llvm-svn: 113109
* dead method.Chris Lattner2010-09-041-1/+0
| | | | llvm-svn: 113077
* zap dead code.Chris Lattner2010-09-044-29/+0
| | | | llvm-svn: 113073
* Disable the asserts that check that normalization is perfectlyDan Gohman2010-09-031-2/+7
| | | | | | | | | invertible. ScalarEvolution's folding routines don't always succeed in canonicalizing equal expressions to a single canonical form, and this can cause these asserts to fail, even though there's no actual correctness problem. This fixes PR8066. llvm-svn: 113021
OpenPOWER on IntegriCloud