summaryrefslogtreecommitdiffstats
path: root/llvm/lib
Commit message (Collapse)AuthorAgeFilesLines
* 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
* Move copyRegToReg from MRegisterInfo to TargetInstrInfo. This is part of theOwen Anderson2007-12-3129-261/+312
| | | | | | Machine-level API cleanup instigated by Chris. llvm-svn: 45470
* properly encapsulate the parent field of MBB and MI with get/set accessors.Chris Lattner2007-12-313-31/+35
| | | | llvm-svn: 45469
* update a couple of references to SSARegMap.Chris Lattner2007-12-312-3/+3
| | | | llvm-svn: 45468
* Rename SSARegMap -> MachineRegisterInfo in keeping with the idea Chris Lattner2007-12-3145-396/+413
| | | | | | | | | | | | | | that "machine" classes are used to represent the current state of the code being compiled. Given this expanded name, we can start moving other stuff into it. For now, move the UsedPhysRegs and LiveIn/LoveOuts vectors from MachineFunction into it. Update all the clients to match. This also reduces some needless #includes, such as MachineModuleInfo from MachineFunction. llvm-svn: 45467
* Add new shorter predicates for testing machine operands for various types: Chris Lattner2007-12-3039-179/+172
| | | | | | | | | | | | e.g. MO.isMBB() instead of MO.isMachineBasicBlock(). I don't plan on switching everything over, so new clients should just start using the shorter names. Remove old long accessors, switching everything over to use the short accessor: getMachineBasicBlock() -> getMBB(), getConstantPoolIndex() -> getIndex(), setMachineBasicBlock -> setMBB(), etc. llvm-svn: 45464
* More cleanups for MachineOperand:Chris Lattner2007-12-308-139/+131
| | | | | | | | | | - Eliminate the static "print" method for operands, moving it into MachineOperand::print. - Change various set* methods for register flags to take a bool for the value to set it to. Remove unset* methods. - Group methods more logically by operand flavor in MachineOperand.h llvm-svn: 45461
* MachineOperand:Chris Lattner2007-12-301-57/+38
| | | | | | | | | | | | | | | | | - Add getParent() accessors. - Move SubReg out of the AuxInfo union, to make way for future changes. - Remove the getImmedValue/setImmedValue methods. - in some MachineOperand::Create* methods, stop initializing fields that are dead. MachineInstr: - Delete one copy of the MachineInstr printing code, now there is only one dump format and one copy of the code. - Make MachineOperand use the parent field to get info about preg register names if no target info is otherwise available. - Move def/use/kill/dead flag printing to the machineoperand printer, so they are always printed for an operand. llvm-svn: 45460
* fix typo duncan noticed!Chris Lattner2007-12-301-1/+1
| | | | llvm-svn: 45459
* simpilfy some register printing code.Chris Lattner2007-12-301-16/+6
| | | | llvm-svn: 45458
* eliminate a copy of the machineoperand printing stuff. Keep the copy thatChris Lattner2007-12-301-34/+4
| | | | | | knows how to print offsets. llvm-svn: 45457
* Simplify and clean up some machine operand/instr printing/dumping stuff.Chris Lattner2007-12-301-9/+9
| | | | llvm-svn: 45456
* two register machineoperands are not identical unless their subregs match.Chris Lattner2007-12-301-1/+2
| | | | llvm-svn: 45455
* MachineOperand::getImmedValue -> MachineOperand::getImmChris Lattner2007-12-304-12/+9
| | | | llvm-svn: 45454
* Use MachineOperand::getImm instead of MachineOperand::getImmedValue. ↵Chris Lattner2007-12-3031-159/+156
| | | | | | Likewise setImmedValue -> setImm llvm-svn: 45453
* Add some doxygen comments to llvm-c/Core.h.Gordon Henriksen2007-12-301-1/+2
| | | | llvm-svn: 45450
* make machine operands fatter: give each one an up-pointer to the Chris Lattner2007-12-301-1/+7
| | | | | | machineinstr that owns it. llvm-svn: 45449
* If we have a load of a global address that's not modified during theBill Wendling2007-12-302-3/+60
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | function, then go ahead and hoist it out of the loop. This is the result: $ cat a.c volatile int G; int A(int N) { for (; N > 0; --N) G++; } $ llc -o - -relocation-model=pic _A: ... LBB1_2: # bb movl L_G$non_lazy_ptr-"L1$pb"(%eax), %esi incl (%esi) incl %edx cmpl %ecx, %edx jne LBB1_2 # bb ... $ llc -o - -relocation-model=pic -machine-licm _A: ... movl L_G$non_lazy_ptr-"L1$pb"(%eax), %eax LBB1_2: # bb incl (%eax) incl %edx cmpl %ecx, %edx jne LBB1_2 # bb ... I'm limiting this to the MOV32rm x86 instruction for now. llvm-svn: 45444
OpenPOWER on IntegriCloud