aboutsummaryrefslogtreecommitdiff
path: root/lib/Target
AgeCommit message (Collapse)Author
2010-03-11Set the (Format)F filed of t2Int_MemBarrierV7 & t2Int_SyncBarrierV7 to ThumbFrm,Johnny Chen
instead of Pseudo, which helps Thumb decoder to recognize them as Thumb instr. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98285 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-11revert r98270.Bill Wendling
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98281 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-11rename getSymbolForDwarf* to getExprForDwarf* since it returnsChris Lattner
an MCExpr and not an MCSymbol. Change it to take an MCStreamer, which is currently unused. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98278 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-11Bad bad bug. x86 force indirect tail call address into eax when it's meant ↵Evan Cheng
to force it into a call preserved register instead. Change it to ecx for now. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98270 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-11Remove dead code. (S|U)MUL_LO is now lowered to LMUL or MACC(S|U)Richard Osborne
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98269 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-11Add dag combine to simplify lmul(x, 0, a, b)Richard Osborne
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98258 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-11Switch XCore over to using inline jump table entries.Richard Osborne
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98256 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-11Have fast-isel understand llvm.objectsize. Update testcase for slightlyEric Christopher
different codegen. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98244 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-11MC: Sketch initial MCAsmLayout class, which encapsulates the current layout ↵Daniel Dunbar
of an assembly file. The MCAsmLayout is also available for use by MCExpr::EvaluateAs{Absolute,Relocatable}, to allow target specific hooks and "absolutizing" of symbols. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98227 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-11MC: Sketch some TargetAsmBackend hooks we are going to need.Daniel Dunbar
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98221 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-11MC: Provide the target triple to AsmBackend constructors.Daniel Dunbar
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98220 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-11When outputing a non-lazy pointer for a stub, we may need to fill in the valueBill Wendling
for the NLP because the object it's pointing to may be internal to the file. This seems counter-intuitive, but bear with me. When we place the LSDA into the TEXT section, the type info pointers need to be indirect and pc-rel. We accomplish this by using NLPs. However, sometimes the types are local to the file. GCC gets around this by not using a NLP in this case, but a "regular" indirection like this: GCC_except_tbl: .long Lfoo-. __ZTIA: @ This is local ... Lfoo: .long __ZTIA LLVM prefers NLPs on Darwin. In fact, it's more optimal for load performance to use them. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98218 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-11Added Thumb2 LDRD/STRD pre/post variants for disassembly only.Johnny Chen
Plus fixed the encoding of t2LDRDpci such that P = 1 and W = 0 (offset mode). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98217 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-11Fix ARM buildbot breakage.Bob Wilson
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98215 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-11add support, testcases, and dox for the new GHC callingChris Lattner
convention. Patch by David Terei! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98212 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-11Lower small memcpys to load/stores on Thumb2.Bob Wilson
Radar 7686922. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98210 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-11Work around a bug in the openbsd assembler on i386,Chris Lattner
which doesn't support .quad correctly because it is "really really old". PR6528. Yet another reason the mc assembler should take over ;-) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98205 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-10Fix an obvious typo in an assert.Bob Wilson
Patch by Sean Callanan. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98200 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-10Add a bit along with the MCSymbols stored in the MachineModuleInfo maps thatBill Wendling
indicates that an MCSymbol is external or not. (It's true if it's external.) This will be used to specify the correct information to add to non-lazy pointers. That will be explained further when this bit is used. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98199 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-10Progress towards shepherding debug info through SelectionDAG.Dale Johannesen
No functional effect yet. This is still evolving and should not be viewed as final. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98195 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-10move PR6576 here.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98194 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-10Make sure the LR gets pushed in functions that use vaargs. This fixesJim Grosbach
400.perlbench for the nightly tests. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98183 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-10comment why we use custom epilogue for t1 functions using vaargs.Jim Grosbach
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98182 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-10Factored out the disassembly printing of CPS option, MSR mask, and Negative ZeroJohnny Chen
operands into their own PrintMethod, in order not to pollute the printOperand() impl with disassembly only Imm modifiers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98172 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-10The backend now makes a reasonable job of targeting lmul / maccRichard Osborne
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98169 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-10Handle MVT::i64 type in DAG combine for ISD::ADD. Fold 64 bitRichard Osborne
expression add(add(mul(x,y),a),b) -> lmul(x,y,a,b) if all operands are zero extended. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98168 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-10Fix checking of intermediates having one use in isADDADDMULRichard Osborne
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98164 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-10Extract recognition of patterns such as add(add(mul(x,y),a),b)Richard Osborne
into a seperate function. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98162 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-10Fix thinko.Richard Osborne
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98158 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-10Fold add(add(mul(x,y),a),b) -> lmul(x,y,a,b) if the intermediateRichard Osborne
results are unused elsewhere. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98157 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-10Prefer LMUL to MACCU as LMUL has no tied operands.Richard Osborne
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98153 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-10Custom lower (S|U)MUL_LOHI -> MACC(S|U)Richard Osborne
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98152 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-10Fix indentationRichard Osborne
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98151 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-10Lower add (mul a, b), c into MACCU / MACCS nodes which translateRichard Osborne
directly to the maccu / maccs instructions. We handle this in ExpandADDSUB since after type legalisation it is messy to recognise these operations. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98150 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-10move three lowering hooks from MAI to TLOF and make one of themChris Lattner
semantic instead of syntactic. This completes MCization of darwin/x86[-64]! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98145 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-10set the temporary bit on MCSymbols correctly.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98124 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-10Clear up the last (famous last words) frame index value reuse issues for Thumb1.Jim Grosbach
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98109 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-09MC/X86: Rename alternate spellings of ADD{8,16,32} and mark as "code gen ↵Daniel Dunbar
only" so they don't get selected by the asm matcher. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98098 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-09MC/X86: Rename alternate spellings of CMP{8,16,32} and mark as "code gen ↵Daniel Dunbar
only" so they don't get selected by the asm matcher. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98097 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-09Change the Value argument to eliminateFrameIndex to a type-tagged value. ThisJim Grosbach
is preparatory to having PEI's scavenged frame index value reuse logic properly distinguish types of frame values (e.g., whether the value is stack-pointer relative or frame-pointer relative). No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98086 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-09MSR (Move to Special Register from ARM core register) requires a mask to specifyJohnny Chen
what fields of the CPSR or SPSR are affected. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98085 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-09The address of an indirect call must be in R12 on Darwin.Dale Johannesen
Make it so. (This patch is in LowerCall_Darwin, which seems to be used by SVR4 code as well; since that doesn't belong here, I haven't worried about this case.) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98077 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-09scavenged frame index value re-use gets confused when more than one baseJim Grosbach
register is involved for thumb1. Work around this for the moment by only re-using SP-relative offsets. This is temporary 'til the code can distinguish multiple base registers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98071 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-09The ARM EH experiment worked!Bill Wendling
Place the LSDA into the TEXT section for ARM platforms. This involves making the encoding indirect, pcrel, and sdata4 instead of an absolute pointer. The references to the type infos are then non-lazy pointers. Revision 98019 changed the encoding of non-lazy pointers to add the symbol to the non-lazy pointer definition if it's a local symbol (otherwise, it's external and set to '0' so that the loader can adjust it to the real value). This paved the way for this change to work on ARM. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98068 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-09In cases where the carry / borrow unused converted ladd / lsubRichard Osborne
to an add or a sub. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98059 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-09Canonicalize ladd constant to RHS.Richard Osborne
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98058 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-09Add DAG combine for ladd / lsub.Richard Osborne
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98057 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-09Don't try to fold V_SET0 and V_SETALLONES to loads in medium andDan Gohman
large code models. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98042 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-09This is part of an LLC-beta test used to test <rdar://problem/6804645>. PleaseBill Wendling
bear with the awful code. It won't last in its current state beyond tonight. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98040 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-09Print blank line and clear stubs vector.Bill Wendling
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98019 91177308-0d34-0410-b5e6-96231b3b80d8