summaryrefslogtreecommitdiffstats
path: root/llvm/lib/CodeGen
Commit message (Collapse)AuthorAgeFilesLines
...
* Remove the stackprotector_check intrinsic. Use a volatile load instead.Bill Wendling2008-11-182-19/+4
| | | | llvm-svn: 59504
* - Use "moveAfter" instead of "remove/insert" of a basic block.Bill Wendling2008-11-181-103/+104
| | | | | | | | | - Use less indentation in coding. - Shorten description. - Update comments. - Move code around llvm-svn: 59496
* Fix a typo in a comment.Dan Gohman2008-11-181-1/+1
| | | | llvm-svn: 59489
* Change SUnit's dump method to take a ScheduleDAG* instead ofDan Gohman2008-11-184-23/+23
| | | | | | a SelectionDAG*. llvm-svn: 59488
* Revert r59464. It was causing this failure:Bill Wendling2008-11-182-188/+4
| | | | | | | | | | | | | | | | | | Running /Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm.src/test/CodeGen/XCore/dg.exp ... FAIL: /Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm.src/test/CodeGen/XCore/fneg.ll Failed with signal(SIGABRT) at line 1 while running: llvm-as < /Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm.src/test/CodeGen/XCore/fneg.ll | llc -march=xcore > fneg.ll.tmp1.s Assertion failed: (VT.isFloatingPoint() && "Cannot create integer FP constant!"), function getConstantFP, file /Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm.src/lib/CodeGen/SelectionDAG/SelectionDAG.cpp, line 913. 0 llc 0x0092115c _ZN4llvm3sys18RemoveFileOnSignalERKNS0_4PathEPSs + 844 1 libSystem.B.dylib 0x9217809b _sigtramp + 43 2 ??? 0xffffffff 0x0 + 4294967295 3 libSystem.B.dylib 0x921f0ec2 raise + 26 4 libSystem.B.dylib 0x9220047f abort + 73 5 libSystem.B.dylib 0x921f2063 __assert_rtn + 101 6 llc 0x005a5b0a _ZN4llvm12SelectionDAG13getConmake[1]: *** [check-local] Error 1 make: *** [check] Error 2 llvm-svn: 59487
* Avoid using a loop in ReleasePred and ReleaseSucc methods to compute theDan Gohman2008-11-183-55/+64
| | | | | | | | | | | | | new CycleBound value. Instead, just update CycleBound on each call. Also, make ReleasePred and ReleaseSucc methods more consistent accross the various schedulers. This also happens to make ScheduleDAGRRList's CycleBound computation somewhat more interesting, though it still doesn't have any noticeable effect, because no current targets that use the register-pressure reduction scheduler provide pipeline models. llvm-svn: 59475
* Eliminate some trivial differences between the ScheduleNodeTopDownDan Gohman2008-11-172-6/+8
| | | | | | functions in these two schedulers. llvm-svn: 59465
* Add soft float support for a bunch more operations. OriginalDuncan Sands2008-11-172-4/+188
| | | | | | | patch by Richard Osborne, tweaked and extended by your humble servant. llvm-svn: 59464
* Don't bother doing latency calculations in the "fast" scheduler.Dan Gohman2008-11-171-15/+5
| | | | llvm-svn: 59461
* Use SUnit's CycleBound field instead of duplicating it inDan Gohman2008-11-171-8/+9
| | | | | | a side-car datastructure llvm-svn: 59458
* 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
OpenPOWER on IntegriCloud