summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target
Commit message (Collapse)AuthorAgeFilesLines
* Emit unused EH frames for weak definitions on Darwin,Dale Johannesen2008-01-103-6/+9
| | | | | | | because assembler/linker can't cope with weak absolutes. PR 1880. llvm-svn: 45811
* Do not use the stack pointer directly, issue a copyfromreg instead. ↵Evan Cheng2008-01-101-1/+1
| | | | | | Otherwise we can end up with something like ADD32ri %esp, x which two-address pass won't like. llvm-svn: 45798
* Fix PR1845 and rdar://5676945. Generic vectors smallerChris Lattner2008-01-101-18/+22
| | | | | | | | | | | | | | than hardware supported type will be scalarized, so we can infer their alignment from that info. We now codegen pr1845 into: _boolVectorSelect: lbz r2, 0(r3) stb r2, -16(r1) blr llvm-svn: 45796
* Remove comments that do not correspond to anything after recent refactoring.Evan Cheng2008-01-101-41/+28
| | | | llvm-svn: 45792
* add a testcase Chris Lattner2008-01-092-10/+20
| | | | llvm-svn: 45768
* add a noteChris Lattner2008-01-091-0/+21
| | | | llvm-svn: 45766
* Use size_t to store Pos, avoid truncating valueDuncan Sands2008-01-082-2/+2
| | | | | | | | on 64-bit builds. Analysis and original patch by Török Edwin. Code audit found another place with the same problem, also fixed here. llvm-svn: 45746
* Finally implement correct ordered comparisons for PPC, even thoughChris Lattner2008-01-082-24/+72
| | | | | | | | the code generated is not wonderful. This turns a miscompilation into a code quality bug (noted in the ppc readme). This fixes PR642, which is over 2 years old (!). Nate, please review this. llvm-svn: 45742
* Minor fix to enable x86-64 pic jit (still fails for other reasons).Evan Cheng2008-01-081-2/+3
| | | | llvm-svn: 45734
* Fix a x86-64 static codegen bug. This fixes a lot of x86-64 jit failures.Evan Cheng2008-01-081-1/+4
| | | | llvm-svn: 45733
* Silence warning about loss of precision.Bill Wendling2008-01-081-1/+1
| | | | llvm-svn: 45731
* Only mark instructions that load a single value without extension as ↵Evan Cheng2008-01-074-14/+12
| | | | | | isSimpleLoad = 1. llvm-svn: 45727
* add a new bit.Chris Lattner2008-01-071-1/+2
| | | | llvm-svn: 45726
* Unbreak x86-64.Evan Cheng2008-01-071-4/+3
| | | | llvm-svn: 45725
* add a note that is important for some fp apps.Chris Lattner2008-01-071-0/+21
| | | | llvm-svn: 45723
* possible switch lowering improvement.Chris Lattner2008-01-071-0/+5
| | | | llvm-svn: 45720
* Add missing newline at EOF.Duncan Sands2008-01-071-1/+1
| | | | llvm-svn: 45712
* Unbreak x86-32 darwin long double!Duncan Sands2008-01-071-3/+2
| | | | llvm-svn: 45703
* Fix long double support on x86-32 linux.Duncan Sands2008-01-071-1/+1
| | | | llvm-svn: 45701
* Operand 1 should be a register. We don't care if it's a preg, vreg, or 0.Bill Wendling2008-01-071-13/+9
| | | | llvm-svn: 45699
* add a noteChris Lattner2008-01-071-0/+7
| | | | llvm-svn: 45698
* rename TargetInstrDescriptor -> TargetInstrDesc.Chris Lattner2008-01-0717-84/+81
| | | | | | | Make MachineInstr::getDesc return a reference instead of a pointer, since it can never be null. llvm-svn: 45695
* Rename all the M_* flags to be namespace qualified enums, and switch Chris Lattner2008-01-071-1/+1
| | | | | | | | all clients over to using predicates instead of these flags directly. These are now private values which are only to be used to statically initialize the tables. llvm-svn: 45692
* use predicate.Chris Lattner2008-01-071-1/+1
| | | | llvm-svn: 45691
* rename hasVariableOperands() -> isVariadic(). Add some comments.Chris Lattner2008-01-071-2/+1
| | | | | | | Evan, please review the comments I added to getNumDefs to make sure that they are accurate, thx. llvm-svn: 45687
* remove a dead field.Chris Lattner2008-01-071-1/+0
| | | | llvm-svn: 45685
* no need to explicitly clear these fields.Chris Lattner2008-01-072-2/+0
| | | | llvm-svn: 45683
* Move a bunch more accessors from TargetInstrInfo to TargetInstrDescriptorChris Lattner2008-01-079-23/+22
| | | | llvm-svn: 45680
* remove MachineOpCode typedef.Chris Lattner2008-01-077-8/+8
| | | | llvm-svn: 45679
* Add predicates methods to TargetOperandInfo, and switch all clients Chris Lattner2008-01-071-4/+4
| | | | | | | over to using them, instead of diddling Flags directly. Change the various flags from const variables to enums. llvm-svn: 45677
* Rename MachineInstr::getInstrDescriptor -> getDesc(), which reflectsChris Lattner2008-01-0714-110/+48
| | | | | | | | | | | | | | | that it is cheap and efficient to get. Move a variety of predicates from TargetInstrInfo into TargetInstrDescriptor, which makes it much easier to query a predicate when you don't have TII around. Now you can use MI->getDesc()->isBranch() instead of going through TII, and this is much more efficient anyway. Not all of the predicates have been moved over yet. Update old code that used MI->getInstrDescriptor()->Flags to use the new predicates in many places. llvm-svn: 45674
* Move even more functionality from MRegisterInfo into TargetInstrInfo.Owen Anderson2008-01-0728-1578/+1545
| | | | | | Some day I'll get it all moved over... llvm-svn: 45672
* Enabling the target-independent garbage collection infrastructure by hooking itGordon Henriksen2008-01-072-2/+6
| | | | | | | | | up to the various compiler pipelines. This doesn't actually add support for any GC algorithms, which means it temporarily breaks a few tests. To be fixed shortly. llvm-svn: 45669
* The pic base can't be duplicated.Chris Lattner2008-01-061-1/+1
| | | | llvm-svn: 45668
* rename isLoad -> isSimpleLoad due to evan's desire to have such a predicate.Chris Lattner2008-01-0620-47/+47
| | | | llvm-svn: 45667
* rename isStore -> mayStore to more accurately reflect what it captures.Chris Lattner2008-01-0610-13/+13
| | | | llvm-svn: 45656
* Change the 'isStore' inferrer to look for 'SDNPMayStore' Chris Lattner2008-01-067-216/+215
| | | | | | | | | | | instead of "ISD::STORE". This allows us to mark target-specific dag nodes as storing (such as ppc byteswap stores). This allows us to remove more explicit isStore flags from the .td files. Finally, add a warning for when a .td file contains an explicit isStore and tblgen is able to infer it. llvm-svn: 45654
* remove explicit isStore flags that are now inferrable.Chris Lattner2008-01-063-6/+3
| | | | llvm-svn: 45653
* remove some isStore flags that are now inferred automatically.Chris Lattner2008-01-063-6/+9
| | | | llvm-svn: 45652
* Fix comment.Bill Wendling2008-01-051-2/+1
| | | | llvm-svn: 45638
* Remove an incorrect optimization that is performed correctly byNate Begeman2008-01-051-11/+1
| | | | | | the target independent legalizer. llvm-svn: 45631
* Refactoring the x86 and x86-64 calling convention implementations,Gordon Henriksen2008-01-052-879/+372
| | | | | | | | unifying the copied algorithms and saving over 500 LOC. There should be no functionality change, but please test on your favorite x86 target. llvm-svn: 45627
* Chris and Evan noticed that this check was compleatly fubared. I wasBill Wendling2008-01-051-1/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | checking that there was a from a global instead of a load from the stub for a global, which is the one that's safe to hoist. Consider this program: volatile char G[100]; int B(char *F, int N) { for (; N > 0; --N) F[N] = G[N]; } In static mode, we shouldn't be hoisting the load from G: $ llc -relocation-model=static -o - a.bc -march=x86 -machine-licm LBB1_1: # bb.preheader leal -1(%eax), %edx testl %edx, %edx movl $1, %edx cmovns %eax, %edx xorl %esi, %esi LBB1_2: # bb movb _G(%eax), %bl movb %bl, (%ecx,%eax) llvm-svn: 45626
* enable sinking and licm of loads from the argument area. I'd like to enable ↵Chris Lattner2008-01-051-0/+21
| | | | | | | | this for remat, but can't due to an RA bug. llvm-svn: 45623
* simplify some code by using shorter accessors.Chris Lattner2008-01-051-17/+17
| | | | llvm-svn: 45622
* revert my previous patch.Chris Lattner2008-01-051-10/+29
| | | | llvm-svn: 45621
* factor some code better to avoid redundancy between Chris Lattner2008-01-051-29/+10
| | | | | | | isReallySideEffectFree and isReallyTriviallyReMaterializable. Why is a load from a global considered side-effect-free but not rematable? llvm-svn: 45620
* getting the pic base has no side effects.Chris Lattner2008-01-051-0/+2
| | | | llvm-svn: 45618
* X86 JIT PIC jumptable support.Evan Cheng2008-01-053-9/+30
| | | | llvm-svn: 45616
* Combine MovePCtoStack + POP32r into one instruction MOVPC32r so it can be ↵Evan Cheng2008-01-055-41/+49
| | | | | | moved if needed. llvm-svn: 45605
OpenPOWER on IntegriCloud