aboutsummaryrefslogtreecommitdiffstats
path: root/include
Commit message (Collapse)AuthorAgeFilesLines
* - Check if a register is livein before removing it. It may have already been ↵Evan Cheng2008-04-241-0/+4
| | | | | | | | | removed. - Do not iterate over SmallPtrSet, the order of iteration is not deterministic. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50209 91177308-0d34-0410-b5e6-96231b3b80d8
* Add facility for pre-RA passesAnton Korobeynikov2008-04-231-1/+8
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50165 91177308-0d34-0410-b5e6-96231b3b80d8
* Make stack alignment options global for all targetsAnton Korobeynikov2008-04-231-0/+7
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50157 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix some whitespace.Dan Gohman2008-04-231-3/+3
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50151 91177308-0d34-0410-b5e6-96231b3b80d8
* Enforce that multiple return values have to have at least one result.Chris Lattner2008-04-231-0/+4
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50137 91177308-0d34-0410-b5e6-96231b3b80d8
* Whoops! Undo r50087, unbreak the build.Nick Lewycky2008-04-221-3/+13
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50088 91177308-0d34-0410-b5e6-96231b3b80d8
* Reverse r47989. Part of removing 'unwinds to' support.Nick Lewycky2008-04-221-13/+3
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50087 91177308-0d34-0410-b5e6-96231b3b80d8
* Move SplitBlockPredecessors out of loopsimplify into BasicBlockUtils.hChris Lattner2008-04-211-0/+13
| | | | | | | | | | as a global helper function. At the same type, switch it from taking a vector of predecessors to an arbitrary sequential input. This allows us to switch LoopSimplify to use a SmallVector for various temporary vectors that it passed into SplitBlockPredecessors. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50020 91177308-0d34-0410-b5e6-96231b3b80d8
* add a handy helper method to instruction, useful for determiningChris Lattner2008-04-201-0/+7
| | | | | | | | whether it is used outside of some block. This can be used to see if there are any non-local references, for example. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50004 91177308-0d34-0410-b5e6-96231b3b80d8
* Add a new Jump Threading pass, which will handle casesChris Lattner2008-04-202-0/+8
| | | | | | | | such as those in PR2235. Right now the pass is not very effective. :) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50000 91177308-0d34-0410-b5e6-96231b3b80d8
* Check we aren't trying to convert PPC long double.Dale Johannesen2008-04-201-1/+4
| | | | | | | | This fixes the testsuite failure on ppcf128-4.ll. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49994 91177308-0d34-0410-b5e6-96231b3b80d8
* Cosmetic changes, as suggested by Evan. No functionality changes.Nicolas Geoffray2008-04-201-2/+2
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49993 91177308-0d34-0410-b5e6-96231b3b80d8
* Allow argpromote to promote struct arguments with a specified numberChris Lattner2008-04-191-2/+3
| | | | | | | of elements. Patch by Matthijs Kooijman! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49962 91177308-0d34-0410-b5e6-96231b3b80d8
* Enable jitting with a known memory size.Nicolas Geoffray2008-04-181-1/+8
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49924 91177308-0d34-0410-b5e6-96231b3b80d8
* Remove the implicit conversion from SDOperandPtr to SDOperand*; thisDan Gohman2008-04-171-7/+3
| | | | | | | may fix a build error on Visual Studio. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49876 91177308-0d34-0410-b5e6-96231b3b80d8
* Bring in uint32_t, uint64_t, and int64_t types for MSVC.Argyrios Kyrtzidis2008-04-171-0/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49854 91177308-0d34-0410-b5e6-96231b3b80d8
* Minor clean-up based on Dan's comments.Roman Levenstein2008-04-171-22/+7
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49844 91177308-0d34-0410-b5e6-96231b3b80d8
* Workaround for PR2207, in which pred_iterator assert gets triggered due to aScott Michel2008-04-161-1/+4
| | | | | | | wee problem in Xcode 2.[45]/gcc 4.0.1. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49831 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix a copy+paste error in a comment.Dan Gohman2008-04-161-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49820 91177308-0d34-0410-b5e6-96231b3b80d8
* Correlate stubs with functions in JIT: when emitting a stub, the JIT tells ↵Nicolas Geoffray2008-04-163-6/+11
| | | | | | | | | | the memory manager which function the stub will resolve. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49814 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix comment.Eric Christopher2008-04-161-19/+19
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49813 91177308-0d34-0410-b5e6-96231b3b80d8
* Infrastructure for getting the machine code size of a function and an ↵Nicolas Geoffray2008-04-161-0/+13
| | | | | | instruction. X86, PowerPC and ARM are implemented git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49809 91177308-0d34-0410-b5e6-96231b3b80d8
* Add "empty()" method to sys::Path and remove unnecessary whitespace.Bill Wendling2008-04-161-39/+42
| | | | | | | Patch by Mikhail Glushenkov! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49803 91177308-0d34-0410-b5e6-96231b3b80d8
* Ongoing work on improving the instruction selection infrastructure:Roman Levenstein2008-04-163-107/+186
| | | | | | | | | | | Rename SDOperandImpl back to SDOperand. Introduce the SDUse class that represents a use of the SDNode referred by an SDOperand. Now it is more similar to Use/Value classes. Patch is approved by Dan Gohman. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49795 91177308-0d34-0410-b5e6-96231b3b80d8
* merge of r49785 (from branches/ggreif/use-diet): pass V to dyn_cast by const ↵Gabor Greif2008-04-161-2/+2
| | | | | | reference, this avoids copy-constructing and destructing all the time. especially important if these constructors are not accessible git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49787 91177308-0d34-0410-b5e6-96231b3b80d8
* Rewrite LiveVariable liveness computation. The new implementation is much ↵Evan Cheng2008-04-161-24/+13
| | | | | | | | | simplified. It eliminated the nasty recursive routines and removed the partial def / use bookkeeping. There is also potential for performance improvement by replacing the conservative handling of partial physical register definitions. The code is currently disabled until live interval analysis is taught of the name scheme. This patch also fixed a couple of nasty corner cases. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49784 91177308-0d34-0410-b5e6-96231b3b80d8
* Major repairs to the post-dominators implementation. Patch from Florian ↵Owen Anderson2008-04-162-40/+106
| | | | | | Brandner! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49768 91177308-0d34-0410-b5e6-96231b3b80d8
* fix off by one error.Chris Lattner2008-04-161-2/+2
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49766 91177308-0d34-0410-b5e6-96231b3b80d8
* give smallstring some methods to do 'itoa'.Chris Lattner2008-04-161-0/+41
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49765 91177308-0d34-0410-b5e6-96231b3b80d8
* Make 64-to-32 bit truncations explicit (prevent warnings).Dale Johannesen2008-04-151-3/+5
| | | | | | | | All values here fit in 32 bits. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49736 91177308-0d34-0410-b5e6-96231b3b80d8
* Change Divided flag to Split, as suggested by EvanNicolas Geoffray2008-04-151-4/+4
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49715 91177308-0d34-0410-b5e6-96231b3b80d8
* Sort sub-registers and super-registers lists according to super-sub register ↵Evan Cheng2008-04-151-4/+6
| | | | | | relations. e.g. X86::RAX sub-register list is EAX, AX, AL, AH (order of last two are not guaranteed). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49714 91177308-0d34-0410-b5e6-96231b3b80d8
* Treat EntryToken nodes as "passive" so that they aren't added to theDan Gohman2008-04-151-0/+1
| | | | | | | | | | | | | | | | | | ScheduleDAG; they don't correspond to any actual instructions so they don't need to be scheduled. This fixes a bug where the EntryToken was being scheduled multiple times in some cases, though it ended up not causing any trouble because EntryToken doesn't expand into anything. With this fixed the schedulers reliably schedule the expected number of units, so we can check this with an assertion. This requires a tweak to test/CodeGen/X86/loop-hoist.ll because it ends up getting scheduled differently in a trivial way, though it was enough to fool the prcontext+grep that the test does. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49701 91177308-0d34-0410-b5e6-96231b3b80d8
* In -view-sunit-dags, display "special" chain dependencies as cyanDan Gohman2008-04-141-0/+1
| | | | | | | instead of blue to distinguish them from regular dependencies. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49696 91177308-0d34-0410-b5e6-96231b3b80d8
* Teach AliasSetTracker about VAArgInst.Dan Gohman2008-04-141-0/+3
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49674 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix const-correctness issues with the SrcValue handling in theDan Gohman2008-04-142-10/+10
| | | | | | | memory intrinsic expansion code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49666 91177308-0d34-0410-b5e6-96231b3b80d8
* Reverse sense of unwind-tables option. This meansDale Johannesen2008-04-141-4/+3
| | | | | | | | | stack tracebacks on Darwin x86-64 won't work by default; nevertheless, everybody but me thinks this is a good idea. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49663 91177308-0d34-0410-b5e6-96231b3b80d8
* Clean up some comments.Dan Gohman2008-04-141-5/+5
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49661 91177308-0d34-0410-b5e6-96231b3b80d8
* add a new CallGraphNode::removeCallEdgeFor method, tidy some comments.Chris Lattner2008-04-131-5/+10
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49617 91177308-0d34-0410-b5e6-96231b3b80d8
* Add support for equality comparison of CallSite's.Chris Lattner2008-04-131-0/+3
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49616 91177308-0d34-0410-b5e6-96231b3b80d8
* Add a divided flag for the first piece of an argument divided into mulitple ↵Nicolas Geoffray2008-04-131-0/+5
| | | | | | parts. Fixes PR1643 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49611 91177308-0d34-0410-b5e6-96231b3b80d8
* Merge LLVMBuilder and FoldingBuilder, callingDuncan Sands2008-04-132-393/+140
| | | | | | | the result IRBuilder. Patch by Dominic Hamon. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49604 91177308-0d34-0410-b5e6-96231b3b80d8
* Drop ISD::MEMSET, ISD::MEMMOVE, and ISD::MEMCPY, which are not LegalDan Gohman2008-04-124-32/+67
| | | | | | | | | | | | | | | | | | | | | | | | | | | | on any current target and aren't optimized in DAGCombiner. Instead of using intermediate nodes, expand the operations, choosing between simple loads/stores, target-specific code, and library calls, immediately. Previously, the code to emit optimized code for these operations was only used at initial SelectionDAG construction time; now it is used at all times. This fixes some cases where rep;movs was being used for small copies where simple loads/stores would be better. This also cleans up code that checks for alignments less than 4; let the targets make that decision instead of doing it in target-independent code. This allows x86 to use rep;movs in low-alignment cases. Also, this fixes a bug that resulted in the use of rep;stos for memsets of 0 with non-constant memory size when the alignment was at least 4. It's better to use the library in this case, which can be significantly faster when the size is large. This also preserves more SourceValue information when memory intrinsics are lowered into simple loads/stores. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49572 91177308-0d34-0410-b5e6-96231b3b80d8
* Use of implicit_def is not part of live interval. Create empty intervals for ↵Evan Cheng2008-04-111-3/+5
| | | | | | the uses when the live interval is being spilled. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49542 91177308-0d34-0410-b5e6-96231b3b80d8
* improvements for IntrusiveRefCntPtr, patch by Mikhail GlushenkovChris Lattner2008-04-111-2/+7
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49538 91177308-0d34-0410-b5e6-96231b3b80d8
* Allow registers defined by implicit_def to be clobbered.Evan Cheng2008-04-101-3/+18
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49512 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix a typo in a comment.Dan Gohman2008-04-101-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49502 91177308-0d34-0410-b5e6-96231b3b80d8
* Make isVectorClearMaskLegal's operand list const.Dan Gohman2008-04-091-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49446 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix some minor errors in comments.Dan Gohman2008-04-091-3/+3
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49445 91177308-0d34-0410-b5e6-96231b3b80d8
* Add const qualifiers.Dan Gohman2008-04-091-2/+2
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49443 91177308-0d34-0410-b5e6-96231b3b80d8