summaryrefslogtreecommitdiffstats
path: root/llvm/lib
Commit message (Collapse)AuthorAgeFilesLines
* X86 JIT PIC jumptable support.Evan Cheng2008-01-054-13/+36
| | | | llvm-svn: 45616
* fix a common crash.Chris Lattner2008-01-051-0/+4
| | | | llvm-svn: 45614
* remove a couple more unsafe xforms in the face of overflow.Chris Lattner2008-01-051-9/+0
| | | | llvm-svn: 45613
* remove the (x-y) < 0 comparison xform, it miscompiles Chris Lattner2008-01-051-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 Anderson2008-01-051-2/+2
| | | | llvm-svn: 45608
* Combine MovePCtoStack + POP32r into one instruction MOVPC32r so it can be ↵Evan Cheng2008-01-055-41/+49
| | | | | | moved if needed. llvm-svn: 45605
* Move some more functionality from MRegisterInfo to TargetInstrInfo.Owen Anderson2008-01-049-100/+102
| | | | llvm-svn: 45603
* Don't recalculate the loop info and loop dominators analyses if they'reBill Wendling2008-01-047-6/+26
| | | | | | preserved. llvm-svn: 45596
* fix typoWojciech Matyjewicz2008-01-041-1/+1
| | | | llvm-svn: 45594
* Unbreak tailcall opt in JIT.Evan Cheng2008-01-041-1/+2
| | | | llvm-svn: 45576
* X86 PIC JIT support fixes: encoding bugs, add lazy pointer stubs support.Evan Cheng2008-01-044-30/+118
| | | | llvm-svn: 45575
* 80-column violations.Bill Wendling2008-01-041-10/+14
| | | | llvm-svn: 45574
* Add that this preserves some analyses.Bill Wendling2008-01-041-1/+3
| | | | llvm-svn: 45573
* Move option to enable machine LICM into LLVMTargetMachine.cpp.Bill Wendling2008-01-042-13/+8
| | | | llvm-svn: 45572
* Call the parent's getAnalysisUsage.Bill Wendling2008-01-041-0/+1
| | | | llvm-svn: 45571
* Add a really quick hack at a machine code sinking pass, enabled with ↵Chris Lattner2008-01-042-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 Lattner2008-01-041-10/+6
| | | | llvm-svn: 45569
* Fix PR1896Chris Lattner2008-01-041-1/+1
| | | | llvm-svn: 45568
* Correct order of parameters.Evan Cheng2008-01-041-2/+2
| | | | llvm-svn: 45562
* Remove symbols that don't exist, remove tabs, fix comment typoChris Lattner2008-01-031-17/+15
| | | | llvm-svn: 45553
* First steps in in X86 calling convention cleanup.Gordon Henriksen2008-01-031-121/+128
| | | | llvm-svn: 45536
* don't hoist FP additions into unconditional adds + selects. This Chris Lattner2008-01-031-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 toChris Lattner2008-01-031-9/+20
| | | | | | "libc_nonshared.a". Patch by Edwin Török! llvm-svn: 45532
* Trying that again.Gordon Henriksen2008-01-031-1/+0
| | | | llvm-svn: 45529
* Fix a compile error on Windows.Gordon Henriksen2008-01-031-0/+2
| | | | llvm-svn: 45528
* Change MachineRelocation::DoesntNeedFnStub to NeedStub. This fields will be usedEvan Cheng2008-01-034-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 Lattner2008-01-031-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 Lattner2008-01-031-6/+6
| | | | | | get a profile. llvm-svn: 45524
* move some code out of line, rearrange a bit.Chris Lattner2008-01-031-6/+10
| | | | llvm-svn: 45519
* Split param attr implementation out from Function.cpp into itsChris Lattner2008-01-023-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 #includeChris Lattner2008-01-021-0/+1
| | | | llvm-svn: 45516
* X86 PIC JIT bug fix: relocations for constantpool and jumptable.Evan Cheng2008-01-021-7/+6
| | | | llvm-svn: 45515
* remove blob of #if'd out code.Chris Lattner2008-01-021-37/+0
| | | | llvm-svn: 45512
* Fix a build issue on cygwinChris Lattner2008-01-021-6/+3
| | | | llvm-svn: 45506
* Use the correct MachineRegisterInfo object.Bill Wendling2008-01-021-2/+1
| | | | llvm-svn: 45499
* Machine LICM will check that operands are defined outside of the loop. AlsoBill Wendling2008-01-022-40/+1
| | | | | | check that register isn't 0 before going further. llvm-svn: 45498
* Remove dead code.Bill Wendling2008-01-021-35/+0
| | | | llvm-svn: 45496
* darwin9 and above support aligned common symbols.Chris Lattner2008-01-023-12/+36
| | | | llvm-svn: 45494
* leopard and above support alignment for common symbols.Chris Lattner2008-01-023-11/+32
| | | | llvm-svn: 45493
* Use the new architecture to get the containing machine basic block for a machineBill Wendling2008-01-021-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 Lewycky2008-01-021-5/+5
| | | | llvm-svn: 45485
* Move some more instruction creation methods from RegisterInfo into InstrInfo.Owen Anderson2008-01-0138-1198/+1276
| | | | llvm-svn: 45484
* Make MachineRegisterInfo::getVRegDef more efficient by aiming the keep the ↵Chris Lattner2008-01-011-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 Lattner2008-01-012-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 Henriksen2008-01-011-0/+5
| | | | | | Patch by Bryan O'Sullivan! llvm-svn: 45481
* Add a trivial but handy function to efficiently return the machine Chris Lattner2008-01-011-0/+15
| | | | | | instruction that defines the specified vreg. Crazy. llvm-svn: 45480
* Implement automatically updated def/use lists for all MachineInstr register Chris Lattner2008-01-013-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 Lattner2008-01-012-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 useChris Lattner2008-01-0118-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 twoDuncan Sands2007-12-311-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
OpenPOWER on IntegriCloud