Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | X86 JIT PIC jumptable support. | Evan Cheng | 2008-01-05 | 4 | -13/+36 |
| | | | | llvm-svn: 45616 | ||||
* | fix a common crash. | Chris Lattner | 2008-01-05 | 1 | -0/+4 |
| | | | | llvm-svn: 45614 | ||||
* | remove a couple more unsafe xforms in the face of overflow. | Chris Lattner | 2008-01-05 | 1 | -9/+0 |
| | | | | llvm-svn: 45613 | ||||
* | remove the (x-y) < 0 comparison xform, it miscompiles | Chris Lattner | 2008-01-05 | 1 | -11/+5 |
| | | | | | | | things that are not equality comparisons, for example: (2147479553+4096)-2147479553 < 0 != (2147479553+4096) < 2147479553 llvm-svn: 45612 | ||||
* | I should not be allowed to commit when sleepy. | Owen Anderson | 2008-01-05 | 1 | -2/+2 |
| | | | | llvm-svn: 45608 | ||||
* | Combine MovePCtoStack + POP32r into one instruction MOVPC32r so it can be ↵ | Evan Cheng | 2008-01-05 | 5 | -41/+49 |
| | | | | | | moved if needed. llvm-svn: 45605 | ||||
* | Move some more functionality from MRegisterInfo to TargetInstrInfo. | Owen Anderson | 2008-01-04 | 9 | -100/+102 |
| | | | | llvm-svn: 45603 | ||||
* | Don't recalculate the loop info and loop dominators analyses if they're | Bill Wendling | 2008-01-04 | 7 | -6/+26 |
| | | | | | | preserved. llvm-svn: 45596 | ||||
* | fix typo | Wojciech Matyjewicz | 2008-01-04 | 1 | -1/+1 |
| | | | | llvm-svn: 45594 | ||||
* | Unbreak tailcall opt in JIT. | Evan Cheng | 2008-01-04 | 1 | -1/+2 |
| | | | | llvm-svn: 45576 | ||||
* | X86 PIC JIT support fixes: encoding bugs, add lazy pointer stubs support. | Evan Cheng | 2008-01-04 | 4 | -30/+118 |
| | | | | llvm-svn: 45575 | ||||
* | 80-column violations. | Bill Wendling | 2008-01-04 | 1 | -10/+14 |
| | | | | llvm-svn: 45574 | ||||
* | Add that this preserves some analyses. | Bill Wendling | 2008-01-04 | 1 | -1/+3 |
| | | | | llvm-svn: 45573 | ||||
* | Move option to enable machine LICM into LLVMTargetMachine.cpp. | Bill Wendling | 2008-01-04 | 2 | -13/+8 |
| | | | | llvm-svn: 45572 | ||||
* | Call the parent's getAnalysisUsage. | Bill Wendling | 2008-01-04 | 1 | -0/+1 |
| | | | | llvm-svn: 45571 | ||||
* | Add a really quick hack at a machine code sinking pass, enabled with ↵ | Chris Lattner | 2008-01-04 | 2 | -0/+215 |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | --enable-sinking. It is missing validity checks, so it is known broken. However, it is powerful enough to compile this contrived code: void test1(int C, double A, double B, double *P) { double Tmp = A*A+B*B; *P = C ? Tmp : A; } into: _test1: movsd 8(%esp), %xmm0 cmpl $0, 4(%esp) je LBB1_2 # entry LBB1_1: # entry movsd 16(%esp), %xmm1 mulsd %xmm1, %xmm1 mulsd %xmm0, %xmm0 addsd %xmm1, %xmm0 LBB1_2: # entry movl 24(%esp), %eax movsd %xmm0, (%eax) ret instead of: _test1: movsd 16(%esp), %xmm0 mulsd %xmm0, %xmm0 movsd 8(%esp), %xmm1 movapd %xmm1, %xmm2 mulsd %xmm2, %xmm2 addsd %xmm0, %xmm2 cmpl $0, 4(%esp) je LBB1_2 # entry LBB1_1: # entry movapd %xmm2, %xmm1 LBB1_2: # entry movl 24(%esp), %eax movsd %xmm1, (%eax) ret woo. llvm-svn: 45570 | ||||
* | remove dead #includes and reorder the rest. | Chris Lattner | 2008-01-04 | 1 | -10/+6 |
| | | | | llvm-svn: 45569 | ||||
* | Fix PR1896 | Chris Lattner | 2008-01-04 | 1 | -1/+1 |
| | | | | llvm-svn: 45568 | ||||
* | Correct order of parameters. | Evan Cheng | 2008-01-04 | 1 | -2/+2 |
| | | | | llvm-svn: 45562 | ||||
* | Remove symbols that don't exist, remove tabs, fix comment typo | Chris Lattner | 2008-01-03 | 1 | -17/+15 |
| | | | | llvm-svn: 45553 | ||||
* | First steps in in X86 calling convention cleanup. | Gordon Henriksen | 2008-01-03 | 1 | -121/+128 |
| | | | | llvm-svn: 45536 | ||||
* | don't hoist FP additions into unconditional adds + selects. This | Chris Lattner | 2008-01-03 | 1 | -0/+2 |
| | | | | | | | could theoretically introduce a trap, but is also a performance issue. This speeds up ptrdist/ks by 8%. llvm-svn: 45533 | ||||
* | Fix PR1873, a problem finding stat-related symbols on linux, due to | Chris Lattner | 2008-01-03 | 1 | -9/+20 |
| | | | | | | "libc_nonshared.a". Patch by Edwin Török! llvm-svn: 45532 | ||||
* | Trying that again. | Gordon Henriksen | 2008-01-03 | 1 | -1/+0 |
| | | | | llvm-svn: 45529 | ||||
* | Fix a compile error on Windows. | Gordon Henriksen | 2008-01-03 | 1 | -0/+2 |
| | | | | llvm-svn: 45528 | ||||
* | Change MachineRelocation::DoesntNeedFnStub to NeedStub. This fields will be used | Evan Cheng | 2008-01-03 | 4 | -52/+54 |
| | | | | | | for non-function GV relocations that require function address stubs (e.g. Mac OS X in non-static mode). llvm-svn: 45527 | ||||
* | Remove the function attr cache for intrinsics. This does not maintain the | Chris Lattner | 2008-01-03 | 1 | -7/+1 |
| | | | | | | | refcount on these correctly, and can end up referring to deleted attributes. This fixes PR1881. llvm-svn: 45525 | ||||
* | Don't create a new ParamAttrsList (which copies the vector) just to | Chris Lattner | 2008-01-03 | 1 | -6/+6 |
| | | | | | | get a profile. llvm-svn: 45524 | ||||
* | move some code out of line, rearrange a bit. | Chris Lattner | 2008-01-03 | 1 | -6/+10 |
| | | | | llvm-svn: 45519 | ||||
* | Split param attr implementation out from Function.cpp into its | Chris Lattner | 2008-01-02 | 3 | -222/+326 |
| | | | | | | | own file. Don't #include ParameterAttributes.h into any major public header files: just move methods out of line as appropriate. llvm-svn: 45517 | ||||
* | add missing #include | Chris Lattner | 2008-01-02 | 1 | -0/+1 |
| | | | | llvm-svn: 45516 | ||||
* | X86 PIC JIT bug fix: relocations for constantpool and jumptable. | Evan Cheng | 2008-01-02 | 1 | -7/+6 |
| | | | | llvm-svn: 45515 | ||||
* | remove blob of #if'd out code. | Chris Lattner | 2008-01-02 | 1 | -37/+0 |
| | | | | llvm-svn: 45512 | ||||
* | Fix a build issue on cygwin | Chris Lattner | 2008-01-02 | 1 | -6/+3 |
| | | | | llvm-svn: 45506 | ||||
* | Use the correct MachineRegisterInfo object. | Bill Wendling | 2008-01-02 | 1 | -2/+1 |
| | | | | llvm-svn: 45499 | ||||
* | Machine LICM will check that operands are defined outside of the loop. Also | Bill Wendling | 2008-01-02 | 2 | -40/+1 |
| | | | | | | check that register isn't 0 before going further. llvm-svn: 45498 | ||||
* | Remove dead code. | Bill Wendling | 2008-01-02 | 1 | -35/+0 |
| | | | | llvm-svn: 45496 | ||||
* | darwin9 and above support aligned common symbols. | Chris Lattner | 2008-01-02 | 3 | -12/+36 |
| | | | | llvm-svn: 45494 | ||||
* | leopard and above support alignment for common symbols. | Chris Lattner | 2008-01-02 | 3 | -11/+32 |
| | | | | llvm-svn: 45493 | ||||
* | Use the new architecture to get the containing machine basic block for a machine | Bill Wendling | 2008-01-02 | 1 | -28/+28 |
| | | | | | | | instruction. Also, use "splice" to move the new instruction instead of remove/insert (where it was leaking memory anyway). llvm-svn: 45492 | ||||
* | Don't be rude, emit debugging info where asked to. | Nick Lewycky | 2008-01-02 | 1 | -5/+5 |
| | | | | llvm-svn: 45485 | ||||
* | Move some more instruction creation methods from RegisterInfo into InstrInfo. | Owen Anderson | 2008-01-01 | 38 | -1198/+1276 |
| | | | | llvm-svn: 45484 | ||||
* | Make MachineRegisterInfo::getVRegDef more efficient by aiming the keep the ↵ | Chris Lattner | 2008-01-01 | 1 | -4/+10 |
| | | | | | | def of the vreg at the start of the list, so the list doesn't need to be traversed. llvm-svn: 45483 | ||||
* | switch the register iterator to act more like hte LLVM value iterator: ↵ | Chris Lattner | 2008-01-01 | 2 | -3/+17 |
| | | | | | | | | | | | dereferencing it now returns the machineinstr of the use. To get the operand, use I.getOperand(). Add a new MachineRegisterInfo::replaceRegWith, which is basically like Value::replaceAllUsesWith. llvm-svn: 45482 | ||||
* | Adding C bindings for SwitchInst::addCase. | Gordon Henriksen | 2008-01-01 | 1 | -0/+5 |
| | | | | | | Patch by Bryan O'Sullivan! llvm-svn: 45481 | ||||
* | Add a trivial but handy function to efficiently return the machine | Chris Lattner | 2008-01-01 | 1 | -0/+15 |
| | | | | | | instruction that defines the specified vreg. Crazy. llvm-svn: 45480 | ||||
* | Implement automatically updated def/use lists for all MachineInstr register | Chris Lattner | 2008-01-01 | 3 | -8/+331 |
| | | | | | | | operands. The lists are currently kept in MachineRegisterInfo, but it does not yet provide an iterator interface to them. llvm-svn: 45477 | ||||
* | Fix a bug in my previous patch: refer to the impl not the pure virtual ↵ | Chris Lattner | 2008-01-01 | 2 | -2/+2 |
| | | | | | | version. It's unclear why gcc would ever compile this... llvm-svn: 45476 | ||||
* | Fix a problem where lib/Target/TargetInstrInfo.h would include and use | Chris Lattner | 2008-01-01 | 18 | -60/+74 |
| | | | | | | | | | | a header file from libcodegen. This violates a layering order: codegen depends on target, not the other way around. The fix to this is to split TII into two classes, TII and TargetInstrInfoImpl, which defines stuff that depends on libcodegen. It is defined in libcodegen, where the base is not. llvm-svn: 45475 | ||||
* | Fix PR1833 - eh.exception and eh.selector return two | Duncan Sands | 2007-12-31 | 1 | -6/+28 |
| | | | | | | | | values, which means doing extra legalization work. It would be easier to get this kind of thing right if there was some documentation... llvm-svn: 45472 |