aboutsummaryrefslogtreecommitdiff
path: root/lib/CodeGen
AgeCommit message (Collapse)Author
2008-11-18Remove integer promotion support for FP_EXTENDDuncan Sands
and FP_ROUND. Not sure what these were doing here - probably they were sometimes (wrongly) created with integer operands somewhere that has since been fixed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59548 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-18Simplify code using helper routines. There is notDuncan Sands
supposed to be any functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59545 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-18Fix a bug introduced by my previous patch. With this change, SPEC is now ↵Owen Anderson
clean with prealloc splitting enabled. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59544 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-18Add more const qualifiers. This fixes build breakage from r59540.Dan Gohman
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59542 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-18Make some methods const.Dan Gohman
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59540 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-18Whitespace cleanups.Dan Gohman
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59532 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-18LegalizeTypes support for splitting and scalarizingDuncan Sands
SCALAR_TO_VECTOR. I didn't add the testcase, because once llc gets past scalar-to-vector it hits a SPU target lowering bug and explodes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59530 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-18Rename stackprotector_create intrinsic to stackprotector.Bill Wendling
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59519 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-18Reapply r59464, this time using the correct typeDuncan Sands
when softening FNEG. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59513 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-18Remove the stackprotector_check intrinsic. Use a volatile load instead.Bill Wendling
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59504 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-18- Use "moveAfter" instead of "remove/insert" of a basic block.Bill Wendling
- Use less indentation in coding. - Shorten description. - Update comments. - Move code around git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59496 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-18Fix a typo in a comment.Dan Gohman
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59489 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-18Change SUnit's dump method to take a ScheduleDAG* instead ofDan Gohman
a SelectionDAG*. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59488 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-18Revert r59464. It was causing this failure:Bill Wendling
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 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59487 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-18Avoid using a loop in ReleasePred and ReleaseSucc methods to compute theDan Gohman
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. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59475 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-17Eliminate some trivial differences between the ScheduleNodeTopDownDan Gohman
functions in these two schedulers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59465 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-17Add soft float support for a bunch more operations. OriginalDuncan Sands
patch by Richard Osborne, tweaked and extended by your humble servant. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59464 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-17Don't bother doing latency calculations in the "fast" scheduler.Dan Gohman
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59461 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-17Use SUnit's CycleBound field instead of duplicating it inDan Gohman
a side-car datastructure git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59458 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-17Don't produce ADDC/ADDE when expanding SHL unless they are legalRichard Osborne
for the target. This fixes PR3080. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59450 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-17Don't use the isPending flag to mean what the isAvailable flag means.Dan Gohman
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59445 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-17Fixed legalization of CONVERT_RNDSAT for integers.Mon P Wang
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59432 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-16Big PBQP allocator update. Adds coalescing support, stack slot coloring, ↵Lang Hames
several bug-fixes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59414 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-16Improved shuffle normalization to avoid using extract/build when weMon P Wang
can extract using different indexes for two vectors. Added a few tests for vector shuffles. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59399 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-15When splitting a SHUFFLE_VECTOR, try to have the resultDuncan Sands
use SHUFFLE_VECTOR instead. If not practical, fall back to the old scheme of building the split result by hand using a BUILD_VECTOR. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59361 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-15Add missing widen operations, fixed widening for extracting a subvector,Mon P Wang
and when loading/storing a widen vector, make sure that they are loaded and stored in consecutive order. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59357 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-15Correct a comment.Dan Gohman
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59341 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-15Move ScheduleDAGList's LatencyPriorityQueue class out to a separate file.Dan Gohman
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59340 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-14Add support for building a ScheduleDAG from MachineInstrs. This is currentlyDan Gohman
fairly conservative; it doesn't do alias-analysis queries and it doesn't attempt to break anti-dependencies. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59324 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-14Test commit.Lang Hames
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59293 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-14For post-regalloc scheduling, remove the instructions from the blockDan Gohman
before re-inserting them. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59281 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-14Check in the correct version of the patch in r59279.Dan Gohman
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59280 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-14Debug printing for SUnits that carry MachineInstrs.Dan Gohman
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59279 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-14Initial support for carrying MachineInstrs in SUnits.Dan Gohman
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59278 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-13Change DOTGraphTraits<ScheduleDAG*>::getGraphName how to find the name ofDan Gohman
the current function on its own, rather than relying on the SelectionDAG. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59277 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-13Remove the FlaggedNodes member from SUnit. Instead of requiring each SUnitDan Gohman
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. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59273 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-13Don't allow the restore point to be placed after terminators. With this change,Owen Anderson
MultiSource/Applications is clean with the prealloc splitter. Some failures remain in SPEC. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59267 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-13Make the Node member of SUnit private, and add accessors.Dan Gohman
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59264 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-13Change ScheduleDAG's DAG member from a reference to a pointer, to prepareDan Gohman
for the possibility of scheduling without a SelectionDAG being present. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59263 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-13Use find_first/find_next to iterate through all the set bits in aDan Gohman
BitVector, instead of manually testing each bit. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59246 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-13Implement stack protectors as function attributes: "ssp" and "sspreq".Bill Wendling
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59202 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-12Move the code that inserts X87 FP_REG_KILL instructions from aDan Gohman
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. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59190 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-12Fix unsigned char->ppcf128 conversion.Dale Johannesen
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59150 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-12Do the LiveVariables update before printing the instruction inDan Gohman
the debug output, so that the updated liveness flags are reflected in the debug output. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59147 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-12Remove some debugging code made redundant by the change to doDan Gohman
coalescing as a separate pass rather than inside of LiveIntervalAnalysis. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59146 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-12Simplify SplitVecRes_EXTRACT_SUBVECTOR. This meansDuncan Sands
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. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59122 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-12Correct some thinkos in the expansion of ADD/SUBDuncan Sands
when the target does not support ADDC/SUBC. This fixes PR3044. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59120 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-12Fix the testb optimization so x86 also bootstraps.Dale Johannesen
Reenable test. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59101 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-11Don't walk into predecessors in which the vreg is not live when doing ↵Owen Anderson
shrinkwrapping. This lets several failing tests get farther along, but doesn't completely fix any of them. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59086 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-11In ScheduleDAGRRList::CopyAndMoveSuccessors, create the SUnit for the loadDan Gohman
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. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59083 91177308-0d34-0410-b5e6-96231b3b80d8