summaryrefslogtreecommitdiffstats
path: root/llvm/include
Commit message (Collapse)AuthorAgeFilesLines
* Fix another bug in r71252. This code supports GetElementPtrDan Gohman2009-05-081-1/+1
| | | | | | constant exprs as well as instructions. llvm-svn: 71262
* Add memoization for getSCEVAtScope results for instructionsDan Gohman2009-05-081-0/+5
| | | | | | | | | which are not analyzed with SCEV techniques, which can require brute-forcing through a large number of instructions. This fixes a massive compile-time issue on 400.perlbench (in particular, the loop in MD5Transform). llvm-svn: 71259
* Make the SCEV* form of getSCEVAtScope public, to allow ScalarEvolutionDan Gohman2009-05-081-5/+4
| | | | | | clients to use it. llvm-svn: 71258
* Factor out the code for creating SCEVs for GEPs into aDan Gohman2009-05-081-0/+4
| | | | | | separate function. llvm-svn: 71252
* Add a getExitBlock utility function to LoopInfo which returns theDan Gohman2009-05-081-0/+10
| | | | | | | exit block of a loop, if there is exactly one, similar to getExitingBlock. llvm-svn: 71245
* Factor out cycle-finder code and make it generic.Anton Korobeynikov2009-05-081-4/+2
| | | | llvm-svn: 71241
* Add some examples to show the difference betweenDuncan Sands2009-05-081-0/+17
| | | | | | the various notions of type size used in LLVM. llvm-svn: 71230
* Revert 71165. It did more than just revert 71158 and it introducedDan Gohman2009-05-072-15/+1
| | | | | | several regressions. The problem due to 71158 is now fixed. llvm-svn: 71176
* Temporarily revert r71158. It was causing a failure during a full bootstrap:Bill Wendling2009-05-072-1/+15
| | | | | | | | | | | | | | | | | | | | | checking for bcopy... no checking for getc_unlocked... Assertion failed: (0 && "Unknown SCEV kind!"), function operator(), file /Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvmCore.roots/llvmCore~obj/src/lib/Analysis/ScalarEvolution.cpp, line 511. /Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvmgcc42.roots/llvmgcc42~obj/src/libdecnumber/decUtility.c:360: internal compiler error: Abort trap Please submit a full bug report, with preprocessed source if appropriate. See <URL:http://developer.apple.com/bugreporter> for instructions. make[4]: *** [decUtility.o] Error 1 make[4]: *** Waiting for unfinished jobs.... Assertion failed: (0 && "Unknown SCEV kind!"), function operator(), file /Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvmCore.roots/llvmCore~obj/src/lib/Analysis/ScalarEvolution.cpp, line 511. /Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvmgcc42.roots/llvmgcc42~obj/src/libdecnumber/decNumber.c:5591: internal compiler error: Abort trap Please submit a full bug report, with preprocessed source if appropriate. See <URL:http://developer.apple.com/bugreporter> for instructions. make[4]: *** [decNumber.o] Error 1 make[3]: *** [all-stage2-libdecnumber] Error 2 make[3]: *** Waiting for unfinished jobs.... llvm-svn: 71165
* Factor out a common base class between SCEVCommutativeExpr andDan Gohman2009-05-071-30/+34
| | | | | | | SCEVAddRecExpr. This eliminates redundant code for visiting all the operands of an expression. llvm-svn: 71157
* Move the tablegen-produced DebugLoc handling into a ↵Argyrios Kyrtzidis2009-05-071-1/+4
| | | | | | | | AsmWriter::processDebugLoc function. No functionality change. llvm-svn: 71156
* Rename "loop aligner" pass to "code placement optimization" pass.Evan Cheng2009-05-071-3/+3
| | | | llvm-svn: 71150
* Add const modifiers.Jakob Stoklund Olesen2009-05-071-1/+1
| | | | llvm-svn: 71147
* Just turn aggressive stack coloring off at -O3.Bill Wendling2009-05-071-1/+1
| | | | llvm-svn: 71140
* Temporarily revert r71010. It was causing massive failures during self-hosting.Bill Wendling2009-05-071-1/+1
| | | | llvm-svn: 71138
* Make DwarfWriter::RecordInlinedFnStart more like the other DwarfWriter's ↵Argyrios Kyrtzidis2009-05-071-3/+3
| | | | | | | | | | | methods: -Have it return a label ID -Remove the unused Instruction parameter No functionality change. llvm-svn: 71132
* Add simplify_type specializations to allow WeakVH, AssertingVH, andDan Gohman2009-05-061-2/+37
| | | | | | | CallbackVH to participate in dyn_cast, isa, etc. without needing an explicit conversion. llvm-svn: 71087
* CMake: Detects libpthread and sets HAVE_LIBPTHREAD.Oscar Fuentes2009-05-061-1/+1
| | | | llvm-svn: 71084
* CMake: Added cmakedefine for HAVE_PTHREAD_H.Oscar Fuentes2009-05-061-0/+3
| | | | | | Patch by Robert Schuster! llvm-svn: 71083
* OCaml parameter attribute bindings from PR2752.Duncan Sands2009-05-061-0/+2
| | | | | | Incomplete, but better than nothing. llvm-svn: 71081
* Allow readonly functions to unwind exceptions. TeachDuncan Sands2009-05-061-8/+18
| | | | | | | | the optimizers about this. For example, a readonly function with no uses cannot be removed unless it is also marked nounwind. llvm-svn: 71071
* Quotes should be printed before private prefix; some code clean up.Evan Cheng2009-05-051-1/+5
| | | | llvm-svn: 71032
* Add dump method to DIDescriptor.Bill Wendling2009-05-051-0/+2
| | | | llvm-svn: 71028
* Add an explicit keyword.Dan Gohman2009-05-051-1/+2
| | | | llvm-svn: 71022
* Forgot this in the last commit.Evan Cheng2009-05-051-1/+1
| | | | llvm-svn: 71014
* Move getInstrOperandRegClass from the scheduler to TargetInstrInfo.Evan Cheng2009-05-051-0/+7
| | | | llvm-svn: 70950
* Re-apply 70645, converting ScalarEvolution to useDan Gohman2009-05-043-50/+33
| | | | | | | | | | | | CallbackVH, with fixes. allUsesReplacedWith need to walk the def-use chains and invalidate all users of a value that is replaced. SCEVs of users need to be recalcualted even if the new value is equivalent. Also, make forgetLoopPHIs walk def-use chains, since any SCEV that depends on a PHI should be recalculated when more information about that PHI becomes available. llvm-svn: 70927
* Make DBG_STOPPOINT nodes, and therefore DBG_LABEL labels, get a DebugLoc, so ↵Chris Lattner2009-05-041-2/+2
| | | | | | | | | that it shows up in -print-machineinstrs. This doesn't appear to affect anything, but it was weird for some DBG_LABELs to have DebugLocs but not all of them. llvm-svn: 70921
* Factor loop backedge finding out of CodeGenPrepare into a new Chris Lattner2009-05-041-1/+8
| | | | | | FindFunctionBackedges function. llvm-svn: 70819
* add a range insertion method to SmallSet.Chris Lattner2009-05-041-0/+6
| | | | llvm-svn: 70817
* Remove an, apparently, leftover MachineModuleInfo::RecordSourceLine declaration.Argyrios Kyrtzidis2009-05-031-5/+0
| | | | llvm-svn: 70804
* In some rare cases, the register allocator can spill registers but end up ↵Evan Cheng2009-05-034-31/+52
| | | | | | | | | | not utilizing registers at all. The fundamental problem is linearscan's backtracking can end up freeing more than one allocated registers. However, reloads and restores might be folded into uses / defs and freed registers might not be used at all. VirtRegMap keeps track of allocations so it knows what's not used. As a horrible hack, the stack coloring can color spill slots with *free* registers. That is, it replace reload and spills with copies from and to the free register. It unfold instructions that load and store the spill slot and replace them with register using variants. Not yet enabled. This is part 1. More coming. llvm-svn: 70787
* Properly handle sdiv / udiv / srem / urem libcallsAnton Korobeynikov2009-05-031-0/+4
| | | | llvm-svn: 70764
* -Move the DwarfWriter::ValidDebugInfo check to a static ↵Argyrios Kyrtzidis2009-05-032-3/+4
| | | | | | | | DIDescriptor::ValidDebugInfo -Create DebugLocs without the need to have a DwarfWriter around llvm-svn: 70682
* Revert r70645 for now; it's causing a variety of regressions.Dan Gohman2009-05-033-18/+35
| | | | llvm-svn: 70661
* Convert ScalarEvolution to use CallbackVH for its internal map. ThisDan Gohman2009-05-023-35/+18
| | | | | | | | | makes ScalarEvolution::deleteValueFromRecords, and it's code that subtly needed to be called before ReplaceAllUsesWith, unnecessary. It also makes ValueDeletionListener unnecessary. llvm-svn: 70645
* Apply Jeffrey Yasskin's CallbackVH patch, with minor tweaks from meDan Gohman2009-05-021-1/+45
| | | | | | | to make the copy constructor and destructor protected, and corresponding adjustments to the unittests. llvm-svn: 70644
* Include <limits.h> to get the definition of CHAR_BIT.Dan Gohman2009-05-021-0/+1
| | | | llvm-svn: 70643
* Previously, RecursivelyDeleteDeadInstructions provided an optionDan Gohman2009-05-022-7/+39
| | | | | | | | | | | | | | | | | | of returning a list of pointers to Values that are deleted. This was unsafe, because the pointers in the list are, by nature of what RecursivelyDeleteDeadInstructions does, always dangling. Replace this with a simple callback mechanism. This may eventually be removed if all clients can reasonably be expected to use CallbackVH. Use this to factor out the dead-phi-cycle-elimination code from LSR utility function, and generalize it to use the RecursivelyDeleteTriviallyDeadInstructions utility function. This makes LSR more aggressive about eliminating dead PHI cycles; adjust tests to either be less trivial or to simply expect fewer instructions. llvm-svn: 70636
* When ScalarEvolution is told to forget the trip count for a loop, haveDan Gohman2009-05-021-0/+5
| | | | | | | it also forget any SCEVs associated with loop-header PHIs in the loop, as they may be dependent on trip count information. llvm-svn: 70633
* Drop the default assumption about alignment down to 2 bits from 3. This ↵Chris Lattner2009-05-011-2/+2
| | | | | | | | apparently helps some problems on win32 platforms (PR4119) llvm-svn: 70603
* Prevent looping when DenseSet is abused.Stuart Hastings2009-05-011-1/+1
| | | | llvm-svn: 70572
* Actually insert inserted instructions into the InsertedValues map.Dan Gohman2009-05-011-2/+2
| | | | llvm-svn: 70557
* Add an accessor method to allow clients to test if a given expressionDan Gohman2009-05-011-0/+6
| | | | | | is associated with a SCEV expansion. llvm-svn: 70556
* Make SCEVExpander::addInsertedValue able to accept Values, not justDan Gohman2009-05-011-5/+5
| | | | | | Instructions. llvm-svn: 70552
* Fix compilation for some targets other than x86.Argyrios Kyrtzidis2009-04-301-0/+1
| | | | llvm-svn: 70522
* Add a comment to refer to the section of the programmer's manual that ↵Stefanus Du Toit2009-04-301-0/+9
| | | | | | explains what the pointer tagging in Use is for. llvm-svn: 70521
* Make DebugLoc independent of DwarfWriter.Argyrios Kyrtzidis2009-04-303-20/+18
| | | | | | | | -Replace DebugLocTuple's Source ID with CompileUnit's GlobalVariable* -Remove DwarfWriter::getOrCreateSourceID -Make necessary changes for the above (fix callsites, etc.) llvm-svn: 70520
* Add a mention of TypeBuilder to the programmer's manual, and clean up the classJeffrey Yasskin2009-04-301-6/+6
| | | | | | comment a bit. llvm-svn: 70515
* getCommonSubClass() - Calculate the largest common sub-class of two registerJakob Stoklund Olesen2009-04-301-0/+4
| | | | | | | | | classes. This is implemented as a function rather than a method on TargetRegisterClass because it is symmetric in its arguments. llvm-svn: 70512
OpenPOWER on IntegriCloud