summaryrefslogtreecommitdiffstats
path: root/llvm/lib/CodeGen
Commit message (Collapse)AuthorAgeFilesLines
* Don't produce ADDC/ADDE when expanding SHL unless they are legalRichard Osborne2008-11-171-1/+2
| | | | | | for the target. This fixes PR3080. llvm-svn: 59450
* Don't use the isPending flag to mean what the isAvailable flag means.Dan Gohman2008-11-172-2/+2
| | | | llvm-svn: 59445
* Fixed legalization of CONVERT_RNDSAT for integers.Mon P Wang2008-11-172-24/+16
| | | | llvm-svn: 59432
* Big PBQP allocator update. Adds coalescing support, stack slot coloring, ↵Lang Hames2008-11-161-139/+478
| | | | | | several bug-fixes. llvm-svn: 59414
* Improved shuffle normalization to avoid using extract/build when weMon P Wang2008-11-161-96/+122
| | | | | | | can extract using different indexes for two vectors. Added a few tests for vector shuffles. llvm-svn: 59399
* When splitting a SHUFFLE_VECTOR, try to have the resultDuncan Sands2008-11-151-38/+109
| | | | | | | | use SHUFFLE_VECTOR instead. If not practical, fall back to the old scheme of building the split result by hand using a BUILD_VECTOR. llvm-svn: 59361
* Add missing widen operations, fixed widening for extracting a subvector,Mon P Wang2008-11-151-16/+44
| | | | | | | and when loading/storing a widen vector, make sure that they are loaded and stored in consecutive order. llvm-svn: 59357
* Correct a comment.Dan Gohman2008-11-151-1/+1
| | | | llvm-svn: 59341
* Move ScheduleDAGList's LatencyPriorityQueue class out to a separate file.Dan Gohman2008-11-154-259/+291
| | | | llvm-svn: 59340
* Add support for building a ScheduleDAG from MachineInstrs. This is currentlyDan Gohman2008-11-141-0/+84
| | | | | | | fairly conservative; it doesn't do alias-analysis queries and it doesn't attempt to break anti-dependencies. llvm-svn: 59324
* Test commit.Lang Hames2008-11-141-0/+1
| | | | llvm-svn: 59293
* For post-regalloc scheduling, remove the instructions from the blockDan Gohman2008-11-141-0/+6
| | | | | | before re-inserting them. llvm-svn: 59281
* Check in the correct version of the patch in r59279.Dan Gohman2008-11-141-1/+1
| | | | llvm-svn: 59280
* Debug printing for SUnits that carry MachineInstrs.Dan Gohman2008-11-141-10/+17
| | | | llvm-svn: 59279
* Initial support for carrying MachineInstrs in SUnits.Dan Gohman2008-11-142-4/+27
| | | | llvm-svn: 59278
* Change DOTGraphTraits<ScheduleDAG*>::getGraphName how to find the name ofDan Gohman2008-11-131-1/+1
| | | | | | the current function on its own, rather than relying on the SelectionDAG. llvm-svn: 59277
* Remove the FlaggedNodes member from SUnit. Instead of requiring each SUnitDan Gohman2008-11-136-59/+49
| | | | | | | | | | to carry a SmallVector of flagged nodes, just calculate the flagged nodes dynamically when they are needed. The local-liveness change is due to a trivial scheduling change where the scheduler arbitrary decision differently. llvm-svn: 59273
* Don't allow the restore point to be placed after terminators. With this change,Owen Anderson2008-11-131-2/+2
| | | | | | | MultiSource/Applications is clean with the prealloc splitter. Some failures remain in SPEC. llvm-svn: 59267
* Make the Node member of SUnit private, and add accessors.Dan Gohman2008-11-136-47/+47
| | | | llvm-svn: 59264
* Change ScheduleDAG's DAG member from a reference to a pointer, to prepareDan Gohman2008-11-136-48/+48
| | | | | | for the possibility of scheduling without a SelectionDAG being present. llvm-svn: 59263
* Use find_first/find_next to iterate through all the set bits in aDan Gohman2008-11-132-12/+11
| | | | | | BitVector, instead of manually testing each bit. llvm-svn: 59246
* Implement stack protectors as function attributes: "ssp" and "sspreq".Bill Wendling2008-11-132-29/+13
| | | | llvm-svn: 59202
* Move the code that inserts X87 FP_REG_KILL instructions from aDan Gohman2008-11-121-3/+0
| | | | | | | | special-purpose hook to a new pass. Also, add check to see if any x87 virtual registers are used, to avoid doing any work in the common case that no x87 code is needed. llvm-svn: 59190
* Fix unsigned char->ppcf128 conversion.Dale Johannesen2008-11-121-3/+8
| | | | llvm-svn: 59150
* Do the LiveVariables update before printing the instruction inDan Gohman2008-11-121-1/+2
| | | | | | | the debug output, so that the updated liveness flags are reflected in the debug output. llvm-svn: 59147
* Remove some debugging code made redundant by the change to doDan Gohman2008-11-121-8/+0
| | | | | | | coalescing as a separate pass rather than inside of LiveIntervalAnalysis. llvm-svn: 59146
* Simplify SplitVecRes_EXTRACT_SUBVECTOR. This meansDuncan Sands2008-11-121-20/+12
| | | | | | | | | | | | that it no longer handles non-power-of-two vectors. However it previously only handled them sometimes, depending on obscure numerical relationships between the index and vector type. For example, for a vector of length 6, it would succeed if and only if the index was an even multiple of 6. I consider this more confusing than useful. llvm-svn: 59122
* Correct some thinkos in the expansion of ADD/SUBDuncan Sands2008-11-121-6/+7
| | | | | | | when the target does not support ADDC/SUBC. This fixes PR3044. llvm-svn: 59120
* Fix the testb optimization so x86 also bootstraps.Dale Johannesen2008-11-121-3/+1
| | | | | | Reenable test. llvm-svn: 59101
* Don't walk into predecessors in which the vreg is not live when doing ↵Owen Anderson2008-11-111-0/+2
| | | | | | | | shrinkwrapping. This lets several failing tests get farther along, but doesn't completely fix any of them. llvm-svn: 59086
* In ScheduleDAGRRList::CopyAndMoveSuccessors, create the SUnit for the loadDan Gohman2008-11-111-17/+17
| | | | | | | | | before creating the SUnit for the operation that it was unfolded from. This allows each SUnit to have all of its predecessor SUnits available at the time it is created. I don't know yet if this will be absolutely required, but it is a little tidier to do it this way. llvm-svn: 59083
* Avoid relying on the SelectionDAG for initializing the MachineFunction andDan Gohman2008-11-111-3/+3
| | | | | | TargetLoweringInfo variables for the scheduler. llvm-svn: 59082
* Change the scheduler accessor methods to accept an explicit TargetMachineDan Gohman2008-11-114-10/+16
| | | | | | | argument instead of taking the SelectionDAG's TargetMachine. This is needed for some upcoming scheduler changes. llvm-svn: 59055
* Fix for PR3040:Bill Wendling2008-11-111-18/+35
| | | | | | | | | The CC was changed, but wasn't checked to see if it was legal if the DAG combiner was being run after legalization. Threw in a couple of checks just to make sure that it's okay. As far as the PR is concerned, no back-end target actually exhibited this problem, so there isn't an associated testcase. llvm-svn: 59035
* Cleaned up and fix bugs in convert_rndsat nodeMon P Wang2008-11-112-18/+39
| | | | llvm-svn: 59025
* Small simplification. Use the iterator already present as the insertion point.Bill Wendling2008-11-101-4/+3
| | | | llvm-svn: 59008
* Temporarily revert r58979 and related patch. It's causing a failure in X86 ↵Bill Wendling2008-11-101-1/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | bootstrap: Comparing stages 2 and 3 warning: ./cc1-checksum.o differs warning: ./cc1obj-checksum.o differs warning: ./cc1objplus-checksum.o differs warning: ./cc1plus-checksum.o differs Bootstrap comparison failure! ./alias.o differs ./alloc-pool.o differs ./attribs.o differs ./bb-reorder.o differs ./bitmap.o differs ./build/errors.o differs ./build/genattrtab.o differs ./build/genautomata.o differs ./build/genemit.o differs ./build/genextract.o differs ... -bw llvm-svn: 59003
* - Make sure that we don't over-increment the iterator when going through theBill Wendling2008-11-101-7/+8
| | | | | | | basic blocks. - Minor code clean-up. llvm-svn: 59002
* Added CONVERT_RNDSAT (conversion with rounding and saturation) SDNode toMon P Wang2008-11-106-2/+236
| | | | | | | support targets that support these conversions. Users should avoid using this node as the current targets don't generating code for it. llvm-svn: 59001
* Fix PR2667: add soft float support for sint_to_fp/uint_to_fpDuncan Sands2008-11-102-15/+25
| | | | | | | where the argument is an apint, or smaller than the minimum size for which there is a libcall (i32). llvm-svn: 58994
* Tweak some comments.Duncan Sands2008-11-102-5/+4
| | | | llvm-svn: 58993
* Small cleanups. No functionality change intended!Duncan Sands2008-11-102-16/+8
| | | | llvm-svn: 58992
* When promoting the result of fp_to_uint/fp_to_sint,Duncan Sands2008-11-101-10/+15
| | | | | | | | | | | | | | | | | | inform the optimizers that the result must be zero/ sign extended from the smaller type. For example, if a fp to unsigned i16 is promoted to fp to i32, then we are allowed to assume that the extra 16 bits are zero (because the result of fp to i16 is undefined if the result does not fit in an i16). This is quite aggressive, but should help the optimizers produce better code. This requires correcting a test which thought that fp_to_uint is some kind of truncation, which it is not: in the testcase (which does fp to i1), either the fp value converts to 0 or 1 or the result is undefined, which is quite different to truncation. llvm-svn: 58991
* Really fix testb optimization on big-endian.Dale Johannesen2008-11-101-5/+8
| | | | | | Fixes ppc32 bootstrap. llvm-svn: 58979
* Added support for the following definition of shufflevector Mon P Wang2008-11-106-22/+244
| | | | | | <result> = shufflevector <n x <ty>> <v1>, <n x <ty>> <v2>, <m x i32> <mask> llvm-svn: 58964
* eliminate a couple more uses of utohexstr.Chris Lattner2008-11-101-6/+10
| | | | llvm-svn: 58963
* Use utohex_buffer instead of utohexstr to avoid creating a temporaryChris Lattner2008-11-101-1/+3
| | | | | | string in the .ll and .s printers. llvm-svn: 58962
* Fix an over aggressive assumption that struct decls will have a pointer toChris Lattner2008-11-101-1/+1
| | | | | | | an array that is empty. Instead of requiring this array, allow a null pointer. This shrinks all forward references of structs. llvm-svn: 58959
* Temporarily revert 58825, which breaks PPC bootstrap.Dale Johannesen2008-11-091-1/+3
| | | | | | xs llvm-svn: 58930
* Temporary revert my last commit: it seems it's triggering some subtle bug in ↵Anton Korobeynikov2008-11-081-7/+0
| | | | | | | | backend and breaks llvm-gcc llvm-svn: 58926
OpenPOWER on IntegriCloud