aboutsummaryrefslogtreecommitdiff
path: root/lib
AgeCommit message (Collapse)Author
2008-02-04Merge from mainline.Tanya Lattner
Don't dump the function! git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_22@46699 91177308-0d34-0410-b5e6-96231b3b80d8
2008-02-04Merge from mainline.Tanya Lattner
Provide correct DWARF register numbering for debug information emission on x86-32/Darwin. This should fix bunch of issues. git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_22@46698 91177308-0d34-0410-b5e6-96231b3b80d8
2008-01-23Merge from mainline.Tanya Lattner
Trivial patch to fix two warnings git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_22@46272 91177308-0d34-0410-b5e6-96231b3b80d8
2008-01-21Merge from mainline.Tanya Lattner
Need to handle any 'nest' parameter before integer parameters, since otherwise it won't be passed in the right register. With this change trampolines work on x86-64 (thanks to Luke Guest for providing access to an x86-64 box). git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_22@46215 91177308-0d34-0410-b5e6-96231b3b80d8
2008-01-21Merge from mainline.Tanya Lattner
Honour ByVal parameter attribute for name decoration. git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_22@46214 91177308-0d34-0410-b5e6-96231b3b80d8
2008-01-21Merge from mainline.Tanya Lattner
Make sure the caller doesn't use freed memory. Fixes PR1935. git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_22@46213 91177308-0d34-0410-b5e6-96231b3b80d8
2008-01-18Merge from mainline.Tanya Lattner
Revert the part of 45849 that treated weak globals as weak globals rather than commons. While not wrong, this change tickled a latent bug in Darwin's strip, so revert it for now as a workaround. git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_22@46168 91177308-0d34-0410-b5e6-96231b3b80d8
2008-01-18Merge from mainline.Tanya Lattner
Revert the part of 45848 that treated weak globals as weak globals rather than commons. While not wrong, this change tickled a latent bug in Darwin's strip, so revert it for now as a workaround. git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_22@46167 91177308-0d34-0410-b5e6-96231b3b80d8
2008-01-17DAE bug fix. Don't lose parameter attributes on vararg arguments.Evan Cheng
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46113 91177308-0d34-0410-b5e6-96231b3b80d8
2008-01-17When a live virtual register is being clobbered by an implicit def, it is ↵Evan Cheng
spilled and the spill is its kill. However, if the local allocator has determined the register has not been modified (possible when its value was reloaded), it would not issue a restore. In that case, mark the last use of the virtual register as kill. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46111 91177308-0d34-0410-b5e6-96231b3b80d8
2008-01-17Fix arg promotion to propagate the correct attrs on the calls toChris Lattner
promoted functions. This is important for varargs calls in particular. Thanks to duncan for providing a great testcase. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46108 91177308-0d34-0410-b5e6-96231b3b80d8
2008-01-17Replace std::vector<bool> with BitVector.Evan Cheng
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46104 91177308-0d34-0410-b5e6-96231b3b80d8
2008-01-16Fixes a nasty dag combiner bug that causes a bunch of tests to fail at -O0.Evan Cheng
It's not safe to use the two value CombineTo variant to combine away a dead load. e.g. v1, chain2 = load chain1, loc v2, chain3 = load chain2, loc v3 = add v2, c Now we replace use of v1 with undef, use of chain2 with chain1. ReplaceAllUsesWith() will iterate through uses of the first load and update operands: v1, chain2 = load chain1, loc v2, chain3 = load chain1, loc v3 = add v2, c Now the second load is the same as the first load, SelectionDAG cse will ensure the use of second load is replaced with the first load. v1, chain2 = load chain1, loc v3 = add v1, c Then v1 is replaced with undef and bad things happen. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46099 91177308-0d34-0410-b5e6-96231b3b80d8
2008-01-16Trampoline support for x86-64. This looks likeDuncan Sands
it should work, but I have no machine to test it on. Committed because it will at least cause no harm, and maybe someone can test it for me! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46098 91177308-0d34-0410-b5e6-96231b3b80d8
2008-01-16Handle attribute(used) global variables that are i8.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46090 91177308-0d34-0410-b5e6-96231b3b80d8
2008-01-16Do not mark EH tables no-dead-strip unless theDale Johannesen
associated function is so marked. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46088 91177308-0d34-0410-b5e6-96231b3b80d8
2008-01-16Fix a ppc long double regression I introduced yesterday due to aChris Lattner
simplification. This fixes automotive-basicmath on PPC. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46072 91177308-0d34-0410-b5e6-96231b3b80d8
2008-01-16merge a few pieces of code that do the store/load to stack Chris Lattner
pattern to use EmitStackConvert now. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46066 91177308-0d34-0410-b5e6-96231b3b80d8
2008-01-16rename ExpandBIT_CONVERT to EmitStackConvert, generalizing Chris Lattner
it to allow it to emit different load and store kinds. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46065 91177308-0d34-0410-b5e6-96231b3b80d8
2008-01-16simplify a bunch of code by using SelectionDAG::CreateStackTemporary Chris Lattner
instead of inlining its body. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46062 91177308-0d34-0410-b5e6-96231b3b80d8
2008-01-16Change legalizeop of FP_ROUND and FP_EXTEND to not fall throughChris Lattner
into the ANY_EXTEND/ZERO_EXTEND/SIGN_EXTEND code to simplify it. Unmerge the code for FP_ROUND and FP_EXTEND from each other to make each one simpler. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46061 91177308-0d34-0410-b5e6-96231b3b80d8
2008-01-16make it more clear that this predicate only applies to scalar FP types.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46058 91177308-0d34-0410-b5e6-96231b3b80d8
2008-01-16introduce a isTypeInSSEReg predicate, which allows us to simplifyChris Lattner
some code. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46055 91177308-0d34-0410-b5e6-96231b3b80d8
2008-01-16My previous commit had an incomplete message, it should have been:Chris Lattner
make the 'fp return in ST(0)' optimization smart enough to look through token factor nodes. THis allows us to compile testcases like CodeGen/X86/fp-stack-retcopy.ll into: _carg: subl $12, %esp call L_foo$stub fstpl (%esp) fldl (%esp) addl $12, %esp ret instead of: _carg: subl $28, %esp call L_foo$stub fstpl 16(%esp) movsd 16(%esp), %xmm0 movsd %xmm0, 8(%esp) fldl 8(%esp) addl $28, %esp ret Still not optimal, but much better and this is a trivial patch. Fixing the rest requires invasive surgery that is is not llvm 2.2 material. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46054 91177308-0d34-0410-b5e6-96231b3b80d8
2008-01-16make the 'fp return in ST(0)' optimization smart enough to Chris Lattner
look through token factor git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46053 91177308-0d34-0410-b5e6-96231b3b80d8
2008-01-16various whitespace cleanups, no functionality change.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46052 91177308-0d34-0410-b5e6-96231b3b80d8
2008-01-16Factor the ReachesChainWithoutSideEffects out of dag combiner into Chris Lattner
a public SDOperand::reachesChainWithoutSideEffects method. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46050 91177308-0d34-0410-b5e6-96231b3b80d8
2008-01-16Do not strip llvm.used values.Devang Patel
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46045 91177308-0d34-0410-b5e6-96231b3b80d8
2008-01-15Missed file from previous checkin.Dale Johannesen
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46030 91177308-0d34-0410-b5e6-96231b3b80d8
2008-01-15Fix and enable EH for x86-64 Darwin. AddsDale Johannesen
ShortenEHDataFor64Bits as a not-very-accurate abstraction to cover all the changes in DwarfWriter. Some cosmetic changes to Darwin assembly code for gcc testsuite compatibility. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46029 91177308-0d34-0410-b5e6-96231b3b80d8
2008-01-15Move some calls to getVRegDef higher in the callgraph, so they don't get ↵Owen Anderson
executed as frequently in performance sensitive code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46027 91177308-0d34-0410-b5e6-96231b3b80d8
2008-01-15improve compatibility with mingw, patch by Alain FrischChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46026 91177308-0d34-0410-b5e6-96231b3b80d8
2008-01-15If someone wants to implement ppc TRAP, they can go for it :)Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46019 91177308-0d34-0410-b5e6-96231b3b80d8
2008-01-15The type of the 'abort' node should be pointer type (becauseChris Lattner
it's a function pointer) not MVT::Other. This fixes builtin_trap lowering on ppc, alpha, ia64 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46018 91177308-0d34-0410-b5e6-96231b3b80d8
2008-01-15rename SDTRet -> SDTNone.Chris Lattner
Move definition of 'trap' sdnode up from x86 instrinfo to targetselectiondag.td. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46017 91177308-0d34-0410-b5e6-96231b3b80d8
2008-01-15Remove DefInst from LiveVariables::VarInfo. Use the facilities on ↵Owen Anderson
MachineRegisterInfo instead. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46016 91177308-0d34-0410-b5e6-96231b3b80d8
2008-01-15no need to expand ISD::TRAP to X86ISD::TRAP, just match ISD::TRAP.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46015 91177308-0d34-0410-b5e6-96231b3b80d8
2008-01-15Add support for targets that have a legal ISD::TRAP.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46014 91177308-0d34-0410-b5e6-96231b3b80d8
2008-01-15Fix JIT encoding of trap/ud2 instructionAnton Korobeynikov
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46012 91177308-0d34-0410-b5e6-96231b3b80d8
2008-01-15Reformatted. It was confusing the other way. No functionality change.Bill Wendling
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46009 91177308-0d34-0410-b5e6-96231b3b80d8
2008-01-15Oops. Forgot to commit this.Evan Cheng
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46002 91177308-0d34-0410-b5e6-96231b3b80d8
2008-01-15For PR1839: add initial support for __builtin_trap. llvm-gcc part is missedAnton Korobeynikov
as well as PPC codegen git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46001 91177308-0d34-0410-b5e6-96231b3b80d8
2008-01-15Rename CCIfStruct to CCIfByVal and CCStructAssign to CCPassByVal. Remove ↵Evan Cheng
unused parameters of CCStructAssign and add size and alignment requirement info. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45997 91177308-0d34-0410-b5e6-96231b3b80d8
2008-01-15Both x86-32 and x86-64 handle byval parameter attributes.Evan Cheng
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45996 91177308-0d34-0410-b5e6-96231b3b80d8
2008-01-15ByVal stack slot alignment should be at least as large as pointer ABI alignment.Evan Cheng
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45995 91177308-0d34-0410-b5e6-96231b3b80d8
2008-01-14Simplify CallInst::hasByValArgument using a new method.Duncan Sands
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45974 91177308-0d34-0410-b5e6-96231b3b80d8
2008-01-14I noticed that the trampoline straightening transformation couldDuncan Sands
drop attributes on varargs call arguments. Also, it could generate invalid IR if the transformed call already had the 'nest' attribute somewhere (this can never happen for code coming from llvm-gcc, but it's a theoretical possibility). Fix both problems. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45973 91177308-0d34-0410-b5e6-96231b3b80d8
2008-01-14don't create the post-ra scheduler unless it is enabled.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45972 91177308-0d34-0410-b5e6-96231b3b80d8
2008-01-14remove dead #includeChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45971 91177308-0d34-0410-b5e6-96231b3b80d8
2008-01-14Improve the FP stackifier to decide all on its own whether Chris Lattner
an instruction kills a register or not. This is cheap and easy to do now that instructions record this on their flags, and this eliminates the second pass of LiveVariables from the x86 backend. This speeds up a release llc by ~2.5%. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45955 91177308-0d34-0410-b5e6-96231b3b80d8