aboutsummaryrefslogtreecommitdiff
path: root/lib/Target
AgeCommit message (Collapse)Author
2007-09-24The code that used the StartLabelId label was removed, so remove theDan Gohman
code that creates the label too. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42265 91177308-0d34-0410-b5e6-96231b3b80d8
2007-09-24claim that "st" is from the 80-bit register file. This causes x87-using inlineChris Lattner
asm to die with: ScheduleDAG.cpp:269: failed assertion `false && "Couldn't find the register class"' instead of: failed assertion `RegMap->getRegClass(VReg) == RC && "Register class of operand and regclass of use don't agree!"' yay. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42259 91177308-0d34-0410-b5e6-96231b3b80d8
2007-09-23Fix PR 1681. When X86 target uses +sse -sse2,Dale Johannesen
keep f32 in SSE registers and f64 in x87. This is effectively a new codegen mode. Change addLegalFPImmediate to permit float and double variants to do different things. Adjust callers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42246 91177308-0d34-0410-b5e6-96231b3b80d8
2007-09-22Fix PR1679, by printing GEP indices as signed values instead of unsigned.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42239 91177308-0d34-0410-b5e6-96231b3b80d8
2007-09-21Don't add a default STACK_ALIGN (use the generic ABI alignment)Rafael Espindola
Implement calls to functions with byval arguments on X86 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42192 91177308-0d34-0410-b5e6-96231b3b80d8
2007-09-21small cleanup: use LowerMemArgument in LowerFastCCArguments alsoRafael Espindola
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42189 91177308-0d34-0410-b5e6-96231b3b80d8
2007-09-21Honor user-defined section specification of a global, ignores whether its ↵Evan Cheng
initializer is null. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42182 91177308-0d34-0410-b5e6-96231b3b80d8
2007-09-20Do not override user specified section.Devang Patel
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42179 91177308-0d34-0410-b5e6-96231b3b80d8
2007-09-20Fix several more entries in the x86 reload/remat folding tables.Dan Gohman
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42162 91177308-0d34-0410-b5e6-96231b3b80d8
2007-09-20another long double bugletDale Johannesen
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42159 91177308-0d34-0410-b5e6-96231b3b80d8
2007-09-20Enable if-conversion for ARM by default.Evan Cheng
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42156 91177308-0d34-0410-b5e6-96231b3b80d8
2007-09-19More long double fixes. x86_64 should build now.Dale Johannesen
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42155 91177308-0d34-0410-b5e6-96231b3b80d8
2007-09-19Avoid referencing deleted instruction.Evan Cheng
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42153 91177308-0d34-0410-b5e6-96231b3b80d8
2007-09-19PSHUFDmi, etc. are actually folding a load, not a store.Evan Cheng
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42147 91177308-0d34-0410-b5e6-96231b3b80d8
2007-09-19Set CCR (EFLAGS) copy cost to -1, i.e. extremely expensive to copy.Evan Cheng
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42124 91177308-0d34-0410-b5e6-96231b3b80d8
2007-09-19Add CopyCost to TargetRegisterClass. This specifies the cost of copying a valueEvan Cheng
between two registers in the specific class. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42123 91177308-0d34-0410-b5e6-96231b3b80d8
2007-09-18Move the entries for 64-bit CMP, IMUL, and a few others into the correctDan Gohman
tables so that they are eligible for reload/remat folding. And add entries for JMP and CALL. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42094 91177308-0d34-0410-b5e6-96231b3b80d8
2007-09-17Remove RSTRegClass case from loadRegFromStackSlotDale Johannesen
and storeRegToStackSlot. Evan and I concluded this should never be needed and it appears to be true. (It if is needed, adjustment would be needed for long double to work.) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42049 91177308-0d34-0410-b5e6-96231b3b80d8
2007-09-17Merge DenseMapKeyInfo & DenseMapValueInfo into DenseMapInfoChris Lattner
Add a new DenseMapInfo::isEqual method to allow clients to redefine the equality predicate used when probing the hash table. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42042 91177308-0d34-0410-b5e6-96231b3b80d8
2007-09-17X86ISD::TEST is dead.Evan Cheng
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42037 91177308-0d34-0410-b5e6-96231b3b80d8
2007-09-17Add 64-bit jmp instructions to the list of instructions thatDan Gohman
can terminate a block with no fall-through. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42029 91177308-0d34-0410-b5e6-96231b3b80d8
2007-09-17Use xorl instead of xorq to enter a zero into a 64-bit register.Dan Gohman
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42027 91177308-0d34-0410-b5e6-96231b3b80d8
2007-09-17Emit integer x<1 as x<=0, as comparisons with zero (now includeingDan Gohman
64-bit) can use test instead of cmp with an immediate. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42026 91177308-0d34-0410-b5e6-96231b3b80d8
2007-09-17Use "test reg,reg" in place of "cmp reg,0" for 64-bit operands. This wasDan Gohman
previously only done for 32-bit and smaller operands. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42024 91177308-0d34-0410-b5e6-96231b3b80d8
2007-09-17Implement x86 long double (uses host long double,Dale Johannesen
so only works on x86 target). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42019 91177308-0d34-0410-b5e6-96231b3b80d8
2007-09-16Follow-up to patch r41999. Make the conditional that emits the personality stubBill Wendling
match the conditional that turns on exception handling emittion in the asm printer. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42008 91177308-0d34-0410-b5e6-96231b3b80d8
2007-09-16Only emit the personality function as a global value if the backend actuallyBill Wendling
supports it. This solves this error on the Darwin x86-64 platform: $ cat testcase.ii struct A { A(); }; A *bork() { return new A; } $ llvm-g++ -arch x86_64 -c testcase.ii /var/tmp//cc3U8fd8.s:52:unknown section type: non_lazy_symbol_pointers /var/tmp//cc3U8fd8.s:52:Rest of line ignored. 1st junk character valued 76 (L). /var/tmp//cc3U8fd8.s:53:Unknown pseudo-op: .indirect_symbol /var/tmp//cc3U8fd8.s:53:Rest of line ignored. 1st junk character valued 95 (_). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41999 91177308-0d34-0410-b5e6-96231b3b80d8
2007-09-15Fix PR1666, SPASS with the CBE and 254.gap with the CBE.Chris Lattner
GCC optimizes away things like ptr < NULL to false. To "fix" this, have the CBE emit casts of pointers to intptr_t when doing relational pointer comparisons. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41983 91177308-0d34-0410-b5e6-96231b3b80d8
2007-09-14Add patterns for SHLD64* and SHRD64*.Dan Gohman
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41975 91177308-0d34-0410-b5e6-96231b3b80d8
2007-09-14Remove the assumption that FP's are either float orDale Johannesen
double from some of the many places in the optimizers it appears, and do something reasonable with x86 long double. Make APInt::dump() public, remove newline, use it to dump ConstantSDNode's. Allow APFloats in FoldingSet. Expand X86 backend handling of long doubles (conversions to/from int, mostly). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41967 91177308-0d34-0410-b5e6-96231b3b80d8
2007-09-14Add implicit def of EFLAGS on those instructions that may modify flags.Evan Cheng
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41962 91177308-0d34-0410-b5e6-96231b3b80d8
2007-09-14Remove isReg, isImm, and isMBB, and change all their users to use Dan Gohman
isRegister, isImmediate, and isMachineBasicBlock, which are equivalent, and more popular. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41958 91177308-0d34-0410-b5e6-96231b3b80d8
2007-09-14Add support for functions with byval arguments on x86Rafael Espindola
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41953 91177308-0d34-0410-b5e6-96231b3b80d8
2007-09-14Fix comments.Evan Cheng
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41947 91177308-0d34-0410-b5e6-96231b3b80d8
2007-09-12Initial support for multi-result patterns:Evan Cheng
1. [(set GR32:$dst, (add GR32:$src1, GR32:$src2)), (modify EFLAGS)] This indicates the source pattern expects the instruction would produce 2 values. The first is the result of the addition. The second is an implicit definition in register EFLAGS. 2. def : Pat<(parallel (addc GR32:$src1, GR32:$src2), (modify EFLAGS)), ()> Similar to #1 except this is used for def : Pat patterns. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41897 91177308-0d34-0410-b5e6-96231b3b80d8
2007-09-12Revise previous patch per review comments.Dale Johannesen
Next round of x87 long double stuff. Getting close now, basically works. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41875 91177308-0d34-0410-b5e6-96231b3b80d8
2007-09-11Enable indirect encoding for the personality functionBill Wendling
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41873 91177308-0d34-0410-b5e6-96231b3b80d8
2007-09-11Remove (somewhat confusing) Imp<> helper, use let Defs = [], Uses = [] instead.Evan Cheng
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41863 91177308-0d34-0410-b5e6-96231b3b80d8
2007-09-11Added status flags register: EFLAGS.Evan Cheng
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41862 91177308-0d34-0410-b5e6-96231b3b80d8
2007-09-11Add APInt interfaces to APFloat (allows directlyDale Johannesen
access to bits). Use them in place of float and double interfaces where appropriate. First bits of x86 long double constants handling (untested, probably does not work). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41858 91177308-0d34-0410-b5e6-96231b3b80d8
2007-09-11Add a bool to indicate if we should set the "indirect encoding" bit in the DwarfBill Wendling
information for EH. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41852 91177308-0d34-0410-b5e6-96231b3b80d8
2007-09-11Fold the adjust_trampoline intrinsic intoDuncan Sands
init_trampoline. There is now only one trampoline intrinsic. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41841 91177308-0d34-0410-b5e6-96231b3b80d8
2007-09-11My compiler warns about the semicolon.Duncan Sands
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41840 91177308-0d34-0410-b5e6-96231b3b80d8
2007-09-11The personality function on Darwin needs a global stub. We then refer toBill Wendling
that global stub instead of doing the ".set" thingy we were doing before. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41838 91177308-0d34-0410-b5e6-96231b3b80d8
2007-09-1080 col.Evan Cheng
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41812 91177308-0d34-0410-b5e6-96231b3b80d8
2007-09-10New entry.Evan Cheng
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41810 91177308-0d34-0410-b5e6-96231b3b80d8
2007-09-10Add some notes about better flag handling.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41808 91177308-0d34-0410-b5e6-96231b3b80d8
2007-09-10It's not safe to rematerialize MOV32r0 etc. by simply cloning the originalEvan Cheng
instruction. These are implemented with xor which will modify the conditional code. They should be rematerialized as move instructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41802 91177308-0d34-0410-b5e6-96231b3b80d8
2007-09-07TableGen no longer emit CopyFromReg nodes for implicit results in physicalEvan Cheng
registers. The scheduler is now responsible for emitting them. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41781 91177308-0d34-0410-b5e6-96231b3b80d8
2007-09-07Add missing index versions of instructions to the map.Bill Wendling
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41776 91177308-0d34-0410-b5e6-96231b3b80d8