aboutsummaryrefslogtreecommitdiff
path: root/lib/CodeGen
AgeCommit message (Collapse)Author
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
2008-11-11Avoid relying on the SelectionDAG for initializing the MachineFunction andDan Gohman
TargetLoweringInfo variables for the scheduler. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59082 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-11Change the scheduler accessor methods to accept an explicit TargetMachineDan Gohman
argument instead of taking the SelectionDAG's TargetMachine. This is needed for some upcoming scheduler changes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59055 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-11Fix for PR3040:Bill Wendling
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. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59035 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-11Cleaned up and fix bugs in convert_rndsat nodeMon P Wang
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59025 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-10Small simplification. Use the iterator already present as the insertion point.Bill Wendling
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59008 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-10Temporarily revert r58979 and related patch. It's causing a failure in X86 ↵Bill Wendling
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 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59003 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-10- Make sure that we don't over-increment the iterator when going through theBill Wendling
basic blocks. - Minor code clean-up. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59002 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-10Added CONVERT_RNDSAT (conversion with rounding and saturation) SDNode toMon P Wang
support targets that support these conversions. Users should avoid using this node as the current targets don't generating code for it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59001 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-10Fix PR2667: add soft float support for sint_to_fp/uint_to_fpDuncan Sands
where the argument is an apint, or smaller than the minimum size for which there is a libcall (i32). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58994 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-10Tweak some comments.Duncan Sands
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58993 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-10Small cleanups. No functionality change intended!Duncan Sands
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58992 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-10When promoting the result of fp_to_uint/fp_to_sint,Duncan Sands
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. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58991 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-10Really fix testb optimization on big-endian.Dale Johannesen
Fixes ppc32 bootstrap. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58979 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-10Added support for the following definition of shufflevector Mon P Wang
<result> = shufflevector <n x <ty>> <v1>, <n x <ty>> <v2>, <m x i32> <mask> git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58964 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-10eliminate a couple more uses of utohexstr.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58963 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-10Use utohex_buffer instead of utohexstr to avoid creating a temporaryChris Lattner
string in the .ll and .s printers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58962 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-10Fix an over aggressive assumption that struct decls will have a pointer toChris Lattner
an array that is empty. Instead of requiring this array, allow a null pointer. This shrinks all forward references of structs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58959 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-09Temporarily revert 58825, which breaks PPC bootstrap.Dale Johannesen
xs git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58930 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-08Temporary revert my last commit: it seems it's triggering some subtle bug in ↵Anton Korobeynikov
backend and breaks llvm-gcc git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58926 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-08Try to produce better code when scalarizing VSETCC.Duncan Sands
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58920 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-08Factor out offset printing code into generic AsmPrinter.Anton Korobeynikov
FIXME: it seems, that most of targets don't support offsets wrt CPI/GlobalAddress', was it intentional? git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58917 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-08Rename startFunctionStub to startGVStub since it's also used for GV non-lazy ↵Evan Cheng
ptr. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58897 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-08Make testb optimization work on big-endian targets.Dale Johannesen
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58874 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-07Make FP tests requiring two compares work on PPC (PR 642).Dale Johannesen
This is Chris' patch from the PR, modified to realize that SETUGT/SETULT occur legitimately with integers, plus two fixes in LegalizeDAG to pass a valid result type into LegalizeSetCC. The argument of TLI.getSetCCResultType is ignored on PPC, but I think I'm following usage elsewhere. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58871 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-07Sign-extend rather than zero-extend when promotingDuncan Sands
the condition for a BRCOND, according to what is returned by getSetCCResultContents. Since all targets return the same thing (ZeroOrOneSetCCResult), this should be harmless! The point is that all over the place the result of SETCC is fed directly into BRCOND. On machines for which getSetCCResultContents returns ZeroOrNegativeOneSetCCResult, this is a sign-extended boolean. So it seems dangerous to also feed BRCOND zero-extended booleans in some circumstances - for example, when promoting the condition. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58861 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-07Fix unsigned->ppcf128 conversion.Dale Johannesen
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58856 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-07Refactor code that adjusts the offsets of stack objects.Bill Wendling
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58829 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-07When we're doing a compare of load-AND-constant to 0Dale Johannesen
(e.g. a bitfield test) narrow the load as much as possible. The has the potential to avoid unnecessary partial-word load-after-store conflicts, which cause stalls on several targets. Also a size win on x86 (testb vs testl). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58825 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-07- Modify the stack protector algorithm so that the stack slot is allocated inBill Wendling
LLVM IR code and not in the selection DAG ISel. This is a cleaner solution. - Fix the heuristic for determining if protectors are necessary. The previous one wasn't checking the proper type size. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58824 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-06Remove unneeded header file.Bill Wendling
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58823 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-06Don't build a vector of returns. Just modify the Function in the loop.Bill Wendling
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58822 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-06Fixed scalarizing an extract subvector and prevent an infinite loopMon P Wang
when simplify a vector. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58820 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-06The size limit is for individual arrays. So if any array has more than 8 bytesBill Wendling
in it, then emit stack protectors. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58819 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-06Don't recalculate the stack position of the stack protector.Bill Wendling
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58815 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-06Emit label for llvm.dbg.func.start of the inlined function.Devang Patel
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58814 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-06Formating/comment changes - no functionality change.Duncan Sands
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58801 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-06- Rename stackprotector_{prologue,epilogue} to stackprotector_{create,check}.Bill Wendling
- Get rid of "HasStackProtector" in MachineFrameInfo. - Modify intrinsics to tell which are doing what with memory. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58799 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-06Widening cleanupMon P Wang
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58796 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-06Adjust the stack protector heuristic to care about only arrays or calls toBill Wendling
"alloca". git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58792 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-06Implement the stack protector stack accesses via intrinsics:Bill Wendling
- stackprotector_prologue creates a stack object and stores the guard there. - stackprotector_epilogue reads the stack guard from the stack position created by stackprotector_prologue. - The PrologEpilogInserter was changed to make sure that the stack guard is first on the stack frame. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58791 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-06Emit label for llvm.dbg.func.start of the inlined function.Devang Patel
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58786 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-05Fix thinko in ppcf128 expansion of truncating store.Duncan Sands
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58753 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-05Type of shuffle mask has changed.Evan Cheng
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58751 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-05Remove dead variable.Bill Wendling
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58741 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-05Simplify the allocated size calculation.Bill Wendling
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58740 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-05Fix commentBill Wendling
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58739 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-05Use the new predicate to control when we do prealloc splitting. Fix a small ↵Owen Anderson
bug. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58738 91177308-0d34-0410-b5e6-96231b3b80d8