summaryrefslogtreecommitdiffstats
path: root/llvm/lib/CodeGen/AsmPrinter
Commit message (Collapse)AuthorAgeFilesLines
* The Dwarf writer was comparing mangled and unmangled names for C++ code when weBill Wendling2008-10-171-1/+4
| | | | | | | | | have an unreachable block in a function. This was triggering the assert. This is a horrid hack to cover this up. Oh! for a good debug info architecture! llvm-svn: 57714
* Remove some overzealous checks that were rejectingDale Johannesen2008-10-101-12/+8
| | | | | | | valid comments in inline assembly. gcc.target/i386/20011009-1.c llvm-svn: 57365
* Add a "loses information" return value to APFloat::convertDale Johannesen2008-10-091-1/+4
| | | | | | | and APFloat::convertToInteger. Restore return value to IEEE754. Adjust all users accordingly. llvm-svn: 57329
* Rename APFloat::convertToAPInt to bitcastToAPInt toDale Johannesen2008-10-091-4/+4
| | | | | | | make it clearer what the function does. No functional change. llvm-svn: 57325
* Align EH tables before label is emitted, not after,Dale Johannesen2008-10-081-1/+1
| | | | | | thus aligning the label. llvm-svn: 57310
* Switch the MachineOperand accessors back to the short names likeDan Gohman2008-10-032-13/+13
| | | | | | isReg, etc., from isRegister, etc. llvm-svn: 57006
* If we have a function with an unreachable statement such that the ending debugBill Wendling2008-09-261-6/+50
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | information is in an unreachable block, then it's possible that the high/low pc values won't be set for the dwarf information. E.g., this function: void abort(void) __attribute__((__noreturn__)); void dead_beef(void) __attribute__ ((noreturn)); int *b; void dead_beef(void) { *b=0xdeadbeef; abort(); } has a call to "@llvm.dbg.region.end" only in the unreachable block: define void @dead_beef() noreturn nounwind { entry: call void @llvm.dbg.func.start(...) call void @llvm.dbg.stoppoint(...) ... call void @abort( ) noreturn nounwind unreachable return: ; No predecessors! call void @llvm.dbg.stoppoint(...) call void @llvm.dbg.region.end(...) ret void } The dwarf information emitted is something like: 0x00000084: TAG_subprogram [5] AT_name( "dead_beef" ) AT_external( 0x01 ) AT_prototyped( 0x01 ) AT_decl_file( 0x01 ) AT_decl_line( 0x08 ) Note that this is *not* the best fix for this problem, but a band-aid for an gaping wound. This code needs to be changed when we revamp our debugging information. llvm-svn: 56628
* Use helperAnton Korobeynikov2008-09-241-8/+2
| | | | llvm-svn: 56584
* SmallPtrSet will be betterAnton Korobeynikov2008-09-241-3/+2
| | | | llvm-svn: 56583
* Use generic section-handling stuff to emit constant pool entriesAnton Korobeynikov2008-09-241-45/+36
| | | | llvm-svn: 56579
* Get rid of duplicate char*/Section* DataSectionAnton Korobeynikov2008-09-242-5/+5
| | | | llvm-svn: 56575
* Get rid of duplicate char*/Section* TextSectionAnton Korobeynikov2008-09-243-11/+13
| | | | llvm-svn: 56574
* Move actual section printing stuff to AsmPrinter from TAI reducing heap traffic.Anton Korobeynikov2008-09-241-3/+13
| | | | llvm-svn: 56573
* Drop obsolete hook and change all usage to new interfaceAnton Korobeynikov2008-09-241-6/+1
| | | | llvm-svn: 56572
* Provide direct function to switch to SectionAnton Korobeynikov2008-09-241-0/+20
| | | | llvm-svn: 56571
* Next round of earlyclobber handling. Approach theDale Johannesen2008-09-241-2/+1
| | | | | | | | | | RA problem by expanding the live interval of an earlyclobber def back one slot. Remove overlap-earlyclobber throughout. Remove earlyclobber bits and their handling from live internals. llvm-svn: 56539
* Initial support for the CMake build system.Oscar Fuentes2008-09-221-0/+5
| | | | llvm-svn: 56419
* Add a bit to mark operands of asm's that conflictDale Johannesen2008-09-171-1/+2
| | | | | | | | | with an earlyclobber operand elsewhere. Propagate this bit and the earlyclobber bit through SDISel. Change linear-scan RA not to allocate regs in a way that conflicts with an earlyclobber. See also comments. llvm-svn: 56290
* Move the uglier parts of deciding not to emit aDale Johannesen2008-09-091-15/+4
| | | | | | | | | UsedDirective for some symbols in llvm.used into Darwin-specific code. I've decided LessPrivateGlobal is potentially a useful abstraction and left it in the target-independent area, with improved comment. llvm-svn: 56024
* Fix logic for not emitting no-dead-strip for someDale Johannesen2008-09-091-2/+14
| | | | | | | | | | objects in llvm.used (thanks Anton). Makes visible the magic 'l' prefix for symbols on Darwin which are to be passed through the assembler, then removed at linktime (previously all references to this had been hidden in the ObjC FE code, oh well). llvm-svn: 55973
* Don't suppress no-dead-strip for used static functions.Dale Johannesen2008-09-081-1/+1
| | | | llvm-svn: 55962
* Add AsmPrinter support for i128 and larger static initializer data.Dan Gohman2008-09-081-19/+36
| | | | llvm-svn: 55919
* Tidy up several unbeseeming casts from pointer to intptr_t.Dan Gohman2008-09-041-1/+1
| | | | llvm-svn: 55779
* Do not emit a UsedDirective for things in the llvm.usedDale Johannesen2008-09-031-3/+32
| | | | | | | | | list that have internal linkage; the linker doesn't need or want this. (These objects must still be preserved at compile time, so just removing them from the llvm.used list doesn't work.) Should affect only Darwin. llvm-svn: 55722
* Remove unneeded #include.Owen Anderson2008-08-211-1/+0
| | | | llvm-svn: 55134
* Use raw_ostream throughout the AsmPrinter.Owen Anderson2008-08-213-20/+24
| | | | llvm-svn: 55092
* don't use the result of WriteTypeSymbolic or WriteAsOperand.Chris Lattner2008-08-191-1/+2
| | | | llvm-svn: 54978
* Drop an unnecessary include.Gordon Henriksen2008-08-171-1/+0
| | | | llvm-svn: 54901
* Rename some GC classes so that their roll will hopefully be clearer.Gordon Henriksen2008-08-172-56/+48
| | | | | | | | | | | | | | | | | | In particular, Collector was confusing to implementors. Several thought that this compile-time class was the place to implement their runtime GC heap. Of course, it doesn't even exist at runtime. Specifically, the renames are: Collector -> GCStrategy CollectorMetadata -> GCFunctionInfo CollectorModuleMetadata -> GCModuleInfo CollectorRegistry -> GCRegistry Function::getCollector -> getGC (setGC, hasGC, clearGC) Several accessors and nested types have also been renamed to be consistent. These changes should be obvious. llvm-svn: 54899
* Fix merge errorAnton Korobeynikov2008-08-172-47/+35
| | | | llvm-svn: 54891
* Move all assembler printing related stuff into new libAsmPrinterAnton Korobeynikov2008-08-174-0/+5611
llvm-svn: 54885
OpenPOWER on IntegriCloud