summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Analysis
Commit message (Collapse)AuthorAgeFilesLines
* Make the code that updates ScalarEvolution's internal state in responseDan Gohman2009-07-081-30/+70
| | | | | | | | | | | | to a loop deletion more thorough. Don't prune the def-use tree search at instructions that don't have SCEVs computed, because an instruction with a user that has a computed SCEV may itself lack a computed SCEV. Also, remove loop-related values from the ValuesAtScopes and ConstantEvolutionLoopExitValues maps as well. This fixes a regression in 483.xalancbmk. llvm-svn: 75030
* Switch GlobalVariable ctors to a sane API, where *either* a context or a ↵Owen Anderson2009-07-081-24/+24
| | | | | | module is required. llvm-svn: 75025
* Remove the vicmp and vfcmp instructions. Because we never had a release withNick Lewycky2009-07-081-2/+0
| | | | | | | these instructions, no autoupgrade or backwards compatibility support is provided. llvm-svn: 74991
* Push LLVMContext through GlobalVariables and IRBuilder.Owen Anderson2009-07-081-12/+12
| | | | llvm-svn: 74985
* Re-LLVMContext-ize DebugInfo, now with less breakage.Owen Anderson2009-07-071-58/+72
| | | | llvm-svn: 74920
* Change all SCEV* to SCEV *.Dan Gohman2009-07-074-256/+256
| | | | llvm-svn: 74918
* Revert part of r74873 that broke Clang's debug info generation.Owen Anderson2009-07-071-81/+57
| | | | llvm-svn: 74910
* "LLVMContext* " --> "LLVMContext *"Owen Anderson2009-07-064-15/+15
| | | | llvm-svn: 74878
* Finish LLVMContext-ing lib/Analysis. This required pushing LLVMContext's ↵Owen Anderson2009-07-066-97/+139
| | | | | | through the ValueTracking API. llvm-svn: 74873
* Thread LLVMContext through the constant folding APIs, which touches a lot of ↵Owen Anderson2009-07-063-121/+147
| | | | | | files. llvm-svn: 74844
* When comparing constants, consider a less wide constant to be "less complex"Nick Lewycky2009-07-041-0/+2
| | | | | | | than a wider one, before trying to compare their contents which will crash if their sizes are different. llvm-svn: 74792
* Minor improvement to the LDA debug output.Andreas Bolka2009-07-031-2/+7
| | | | llvm-svn: 74754
* Simplify debug info intrisinc lowering.Devang Patel2009-07-021-6/+0
| | | | llvm-svn: 74733
* Fix typo.Devang Patel2009-07-021-5/+5
| | | | | | Thanks Duncan! llvm-svn: 74706
* do not try to analyze bitcasts from i64 to <2 x i32> in ComputedMaskedBits. ↵Chris Lattner2009-07-021-1/+4
| | | | | | | | | While we could do this, doing so requires adjusting the demanded mask and the code isn't doing that yet. This fixes PR4495 llvm-svn: 74699
* Add debug info utility routines.Devang Patel2009-07-021-0/+111
| | | | llvm-svn: 74680
* Keep DIDescriptor methods together. Devang Patel2009-07-011-123/+127
| | | | | | No functionality change. llvm-svn: 74652
* Use AA to check objects before LDA.Andreas Bolka2009-07-011-15/+14
| | | | llvm-svn: 74647
* improve the APIs for creating struct and function types with no ↵Chris Lattner2009-07-011-1/+1
| | | | | | | | arguments/elements to not have to create a temporary vector (in the API at least). Patch by Jay Foad! llvm-svn: 74584
* Minor code cleanups.Dan Gohman2009-06-301-2/+6
| | | | llvm-svn: 74551
* Fix the build on Cygwin. Patch by Aaron Gray.Owen Anderson2009-06-301-2/+2
| | | | llvm-svn: 74510
* Array accesses are independent if the underlying arrays differ.Andreas Bolka2009-06-301-0/+47
| | | | llvm-svn: 74499
* Minor formatting, whitespace, and 80-column fixes.Dan Gohman2009-06-301-7/+7
| | | | llvm-svn: 74492
* Use getSCEV instead of getUnknown to create a SCEV for aDan Gohman2009-06-291-3/+3
| | | | | | | | | | Constant. This lets ConstantInts be handled as SCEVConstant instead of SCEVUnknown, as getUnknown no longer has special-case code for ConstantInt and friends. This usually doesn't affect the final output, since the constants end up getting folded later, but it does make intermediate expressions more obvious in many cases. llvm-svn: 74459
* Don't cache PHI exit values from exhaustive evaluations, becauseDan Gohman2009-06-291-1/+0
| | | | | | | | an individual exhaustive evaluation reflects only the exit value implied by an individual exit, which may differ from the actual exit value of the loop if there are other exits. This fixes PR4477. llvm-svn: 74447
* Relax LDA memory instruction checks.Andreas Bolka2009-06-291-4/+7
| | | | llvm-svn: 74439
* Call doInitialization(), releaseMemory(), and doFinalization() for ↵Torok Edwin2009-06-291-0/+3
| | | | | | | | | | on-the-fly passes as well. Also don't call finalizers for LoopPass if initialization was not called. Add a unittest that tests that these methods are called, in the proper order, and the correct number of times. llvm-svn: 74438
* Simplify this code, and avoid using APInt(). This fixesDan Gohman2009-06-291-4/+2
| | | | | | | (otherwise harmless) uninitialized value warnings that Duncan found with gcc-4.4. llvm-svn: 74437
* Missed one.Andreas Bolka2009-06-291-1/+1
| | | | llvm-svn: 74416
* Fix case in LDA util function names.Andreas Bolka2009-06-291-4/+4
| | | | llvm-svn: 74415
* Print pairwise dependence results, add testcases.Andreas Bolka2009-06-281-2/+26
| | | | llvm-svn: 74402
* Minimal LDA interface, maximally conservative tester.Andreas Bolka2009-06-281-0/+24
| | | | llvm-svn: 74401
* LDA analysis output scaffolding.Andreas Bolka2009-06-281-1/+19
| | | | llvm-svn: 74400
* Eliminate a layer of indirection in LoopInfo and MachineLoopInfo.Dan Gohman2009-06-271-1/+1
| | | | llvm-svn: 74394
* Convert ScalarEvolution to use BumpPtrAllocator and FoldingSet, insteadDan Gohman2009-06-271-141/+222
| | | | | | of a team of individual allocations and a team of std::maps. llvm-svn: 74393
* Change SCEVExpander to use an IRBuilder to emit instructions.Dan Gohman2009-06-271-72/+70
| | | | llvm-svn: 74391
* Incorporate the insertion point into the key of SCEVExpander's CSE map.Dan Gohman2009-06-261-14/+19
| | | | | | | | | | | | | | This helps it avoid reusing an instruction that doesn't dominate all of the users, in cases where the original instruction was inserted before all of the users were known. This may result in redundant expansions of sub-expressions that depend on loop-unpredictable values in some cases, however this isn't very common, and it primarily impacts IndVarSimplify, so GVN can be expected to clean these up. This eliminates the need for IndVarSimplify's FixUsesBeforeDefs, which fixes several bugs. llvm-svn: 74352
* Fix ScalarEvolution::getAddRecExpr's code which canonicalized theDan Gohman2009-06-261-2/+23
| | | | | | | | nesting order of nested AddRec expressions to skip the transformation if it would introduce an AddRec with operands not loop-invariant with respect to its loop. llvm-svn: 74343
* Fix SCEVAddRecExpr::isLoopInvariant to test if all of its operandsDan Gohman2009-06-261-5/+15
| | | | | | are loop invariant, not just the start operand. llvm-svn: 74338
* Fix linking of llvm-ld and lli with CMake, from Xerxes RånbyDouglas Gregor2009-06-261-0/+2
| | | | llvm-svn: 74285
* Remove debug info anchors - llvm.dbg.compile_units, llvm.dbg.subprogramsDevang Patel2009-06-261-67/+37
| | | | | | and llvm.dbg.global_variables. llvm-svn: 74251
* Use a more correct atomic increment style. This isn't really necessary inOwen Anderson2009-06-251-2/+2
| | | | | | this case, but it should help avoid issues in the future. llvm-svn: 74178
* Make this thread-safe.Owen Anderson2009-06-241-1/+3
| | | | llvm-svn: 74129
* Get rid of a static boolean.Owen Anderson2009-06-241-2/+2
| | | | llvm-svn: 74125
* Scaffolding for LDA pass.Andreas Bolka2009-06-242-0/+48
| | | | llvm-svn: 74120
* Get rid of the global CFGOnly flag by threading a ShortNames parameters ↵Owen Anderson2009-06-241-20/+17
| | | | | | | | through the GraphViz rendering code. Update other uses in the codebase for this change. llvm-svn: 74084
* Minor whitespace cleanups.Dan Gohman2009-06-241-16/+16
| | | | llvm-svn: 74074
* Simplify [su]max(MAX, n) to MAX. This comes up in loop tripcountDan Gohman2009-06-241-2/+10
| | | | | | | | | computations in loops with multiple exits. Adjust the testcase for PR4436 so that the relevant portion isn't optimized away. llvm-svn: 74073
* Delete some orphaned comments, fix some 80-column violations,Dan Gohman2009-06-241-95/+80
| | | | | | and tidy up a few other formatting issues. llvm-svn: 74060
* Extend ScalarEvolution's multiple-exit support to compute exactDan Gohman2009-06-242-143/+163
| | | | | | | | | | | | | | | trip counts in more cases. Generalize ScalarEvolution's isLoopGuardedByCond code to recognize And and Or conditions, splitting the code out into an isNecessaryCond helper function so that it can evaluate Ands and Ors recursively, and make SCEVExpander be much more aggressive about hoisting instructions out of loops. test/CodeGen/X86/pr3495.ll has an additional instruction now, but it appears to be due to an arbitrary register allocation difference. llvm-svn: 74048
OpenPOWER on IntegriCloud