summaryrefslogtreecommitdiffstats
path: root/llvm/lib/CodeGen/AsmPrinter.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Enabling the target-independent garbage collection infrastructure by hooking itGordon Henriksen2008-01-071-0/+19
| | | | | | | | | 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
* Rename SSARegMap -> MachineRegisterInfo in keeping with the idea Chris Lattner2007-12-311-0/+1
| | | | | | | | | | | | | | 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-301-1/+1
| | | | | | | | | | | | 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
* MachineOperand::getImmedValue -> MachineOperand::getImmChris Lattner2007-12-301-7/+4
| | | | llvm-svn: 45454
* Remove attribution from file headers, per discussion on llvmdev.Chris Lattner2007-12-291-2/+2
| | | | llvm-svn: 45418
* Support more insane CEP's in AsmPrinter (Yes, PyPy folks do really use them).Anton Korobeynikov2007-12-181-1/+24
| | | | llvm-svn: 45172
* Fix PIC jump table codegen on x86-32/linux. In fact, such thing should be ↵Anton Korobeynikov2007-11-141-28/+41
| | | | | | | | applied to all targets uses GOT-relative offsets for PIC (Alpha?) llvm-svn: 44108
* Much improved pic jumptable codegen:Evan Cheng2007-11-091-9/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Then: call "L1$pb" "L1$pb": popl %eax ... LBB1_1: # entry imull $4, %ecx, %ecx leal LJTI1_0-"L1$pb"(%eax), %edx addl LJTI1_0-"L1$pb"(%ecx,%eax), %edx jmpl *%edx .align 2 .set L1_0_set_3,LBB1_3-LJTI1_0 .set L1_0_set_2,LBB1_2-LJTI1_0 .set L1_0_set_5,LBB1_5-LJTI1_0 .set L1_0_set_4,LBB1_4-LJTI1_0 LJTI1_0: .long L1_0_set_3 .long L1_0_set_2 Now: call "L1$pb" "L1$pb": popl %eax ... LBB1_1: # entry addl LJTI1_0-"L1$pb"(%eax,%ecx,4), %eax jmpl *%eax .align 2 .set L1_0_set_3,LBB1_3-"L1$pb" .set L1_0_set_2,LBB1_2-"L1$pb" .set L1_0_set_5,LBB1_5-"L1$pb" .set L1_0_set_4,LBB1_4-"L1$pb" LJTI1_0: .long L1_0_set_3 .long L1_0_set_2 llvm-svn: 43924
* Make labels work in asm blocks; allow labels asDale Johannesen2007-11-051-7/+12
| | | | | | | parameters. Rename ValueRefList to ParamList in AsmParser, since its only use is for parameters. llvm-svn: 43734
* Don't output ABI size padding twice. By using the storeDuncan Sands2007-11-051-5/+6
| | | | | | | size for the field we get ABI padding automatically, so no need to put it in again when we emit the field. llvm-svn: 43720
* Eliminate the remaining uses of getTypeSize. ThisDuncan Sands2007-11-051-17/+16
| | | | | | | | | | | | | | should only effect x86 when using long double. Now 12/16 bytes are output for long double globals (the exact amount depends on the alignment). This brings globals in line with the rest of LLVM: the space reserved for an object is now always the ABI size. One tricky point is that only 10 bytes should be output for long double if it is a field in a packed struct, which is the reason for the additional argument to EmitGlobalConstant. llvm-svn: 43688
* Revert 42908 for now.Evan Cheng2007-10-141-19/+19
| | | | llvm-svn: 42960
* Change the names used for internal labels to use the currentDan Gohman2007-10-121-19/+19
| | | | | | | | | function symbol name instead of a codegen-assigned function number. Thanks Evan! :-) llvm-svn: 42908
* Implement ppc long double->uint conversion.Dale Johannesen2007-10-111-0/+33
| | | | | | Make ppc long double constants print. llvm-svn: 42882
* Call getFunctionNumber() instead of referencing FunctionNumber directly,Dan Gohman2007-10-081-1/+1
| | | | | | for consistency. llvm-svn: 42769
* Fix stride computations for long double arrays.Dale Johannesen2007-10-011-1/+5
| | | | llvm-svn: 42508
* minor long double related changesDale Johannesen2007-09-281-0/+1
| | | | llvm-svn: 42439
* Make temporaries explicit to avoid prematureDale Johannesen2007-09-261-1/+3
| | | | | | destruction of compiler-created ones. llvm-svn: 42383
* Add a routine for emitting .file directives, for setting upDan Gohman2007-09-241-0/+11
| | | | | | file numbers to use with .loc directives. llvm-svn: 42272
* Don't pass back a reference to a temporary.Bill Wendling2007-09-181-2/+1
| | | | llvm-svn: 42086
* The exception handling function info should be reset for each newBill Wendling2007-09-181-4/+2
| | | | | | | function. The information isn't used heavily -- it's only used at the end of exception handling emission -- so there's no need to cache it. llvm-svn: 42078
* Objective-C was generating EH frame info like this:Bill Wendling2007-09-181-0/+9
| | | | | | | | | "_-[NSString(local) isNullOrNil]".eh = 0 .no_dead_strip "_-[NSString(local) isNullOrNil]".eh The ".eh" should be inside the quotes. llvm-svn: 42074
* Remove isReg, isImm, and isMBB, and change all their users to use Dan Gohman2007-09-141-1/+1
| | | | | | | isRegister, isImmediate, and isMachineBasicBlock, which are equivalent, and more popular. llvm-svn: 41958
* Revise previous patch per review comments.Dale Johannesen2007-09-121-4/+41
| | | | | | | Next round of x87 long double stuff. Getting close now, basically works. llvm-svn: 41875
* Add APInt interfaces to APFloat (allows directlyDale Johannesen2007-09-111-8/+10
| | | | | | | | | access to bits). Use them in place of float and double interfaces where appropriate. First bits of x86 long double constants handling (untested, probably does not work). llvm-svn: 41858
* Next round of APFloat changes.Dale Johannesen2007-09-061-1/+2
| | | | | | | | | | | | | | Use APFloat in UpgradeParser and AsmParser. Change all references to ConstantFP to use the APFloat interface rather than double. Remove the ConstantFP double interfaces. Use APFloat functions for constant folding arithmetic and comparisons. (There are still way too many places APFloat is just a wrapper around host float/double, but we're getting there.) llvm-svn: 41747
* Proper handle case, when aliasee is external weak symbol referenced only by ↵Anton Korobeynikov2007-09-061-6/+13
| | | | | | | | alias itself. Also, fix a case, when target doesn't have weak symbols supported. llvm-svn: 41746
* move this check. ppc outputs .no_dead_strip properlyAndrew Lenharth2007-08-221-6/+6
| | | | llvm-svn: 41286
* Print a space between the comment character and the basic block name,Dan Gohman2007-07-301-1/+2
| | | | | | for prettiness. llvm-svn: 40593
* EmitAlignment() also emits optional fill value.Evan Cheng2007-07-251-2/+5
| | | | llvm-svn: 40500
* Global ctors / dtors alignment shouldn't be hard-coded at 4. e.g. It could ↵Evan Cheng2007-06-041-2/+4
| | | | | | be 8 for 64-bit targets. llvm-svn: 37421
* Fix the asmprinter so that a globalvalue can specify an explicit alignmentChris Lattner2007-05-311-5/+18
| | | | | | | | smaller than the preferred alignment, but so that the target can actually specify a minimum alignment if needed. This fixes some objc protocol failures Devang tracked down. llvm-svn: 37373
* Drop 'const'Devang Patel2007-05-031-1/+1
| | | | llvm-svn: 36662
* Use 'static const char' instead of 'static const int'.Devang Patel2007-05-021-1/+1
| | | | | | | Due to darwin gcc bug, one version of darwin linker coalesces static const int, which defauts PassID based pass identification. llvm-svn: 36652
* Do not use typeinfo to identify pass in pass manager.Devang Patel2007-05-011-1/+2
| | | | llvm-svn: 36632
* Clean up multi-line asam string printing. Instead of printing:Chris Lattner2007-04-301-1/+1
| | | | | | | | | | | | | | | | # InlineAsm Start subfc r3,r5,r4 subfze r4,r3 # InlineAsm End print: # InlineAsm Start subfc r3,r5,r4 subfze r4,r3 # InlineAsm End llvm-svn: 36589
* Implement review feedbackAnton Korobeynikov2007-04-291-12/+3
| | | | llvm-svn: 36564
* Implement review feedback. Aliasees can be either GlobalValue's orAnton Korobeynikov2007-04-281-6/+17
| | | | | | bitcasts of them. llvm-svn: 36537
* Implement aliases. This fixes PR1017 and it's dependent bugs. CFE partAnton Korobeynikov2007-04-251-1/+25
| | | | | | will follow. llvm-svn: 36435
* modify per review commentaryDale Johannesen2007-04-231-2/+2
| | | | llvm-svn: 36383
* make EmitAlignment work the way Chris says it shouldDale Johannesen2007-04-231-1/+3
| | | | llvm-svn: 36368
* Small eye-candy: use asciz directive everywhere, where possible.Anton Korobeynikov2007-03-061-3/+10
| | | | llvm-svn: 34981
* Exception handling support.Jim Laskey2007-02-211-1/+1
| | | | llvm-svn: 34479
* Add support for changes in DwarfWriter.Jim Laskey2007-02-211-0/+12
| | | | llvm-svn: 34478
* test commit (blank line)Dale Johannesen2007-02-161-0/+1
| | | | llvm-svn: 34337
* For PR1195:Reid Spencer2007-02-151-2/+2
| | | | | | | Rename PackedType -> VectorType, ConstantPacked -> ConstantVector, and PackedTyID -> VectorTyID. No functional changes. llvm-svn: 34293
* eliminate temporary vectors.Chris Lattner2007-02-101-2/+3
| | | | llvm-svn: 34161
* encapsulate the rest of the StructLayout members.Chris Lattner2007-02-101-2/+2
| | | | llvm-svn: 34157
* Privatize StructLayout::MemberOffsets, adding an accessorChris Lattner2007-02-101-2/+2
| | | | llvm-svn: 34156
* Oops, swap this. This fixes a regression I introduced in the ARM backend.Chris Lattner2007-02-061-1/+1
| | | | llvm-svn: 33946
OpenPOWER on IntegriCloud