summaryrefslogtreecommitdiffstats
path: root/llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp
Commit message (Collapse)AuthorAgeFilesLines
* split dom frontier handling stuff out to its own DominanceFrontier header,Chris Lattner2011-01-021-0/+1
| | | | | | so that Dominators.h is *just* domtree. Also prune #includes a bit. llvm-svn: 122714
* remove the verbose-asm "constant pool double" comments that we were printingChris Lattner2010-12-131-8/+0
| | | | | | | | | | | for each constant pool entry. Using WriteTypeSymbolic here takes time proportional to the size of the module, for each constant pool entry. This speeds up -verbose-asm llc on 252.eon (a random testcase at my disposal) from 4.4s to 2.137s. llc takes 2.11s with asm-verbose off, so this is now a pretty reasonable cost for verbose comments. llvm-svn: 121691
* refactor the interface to EmitInlineAsm a bit, no functionality change.Chris Lattner2010-11-171-1/+1
| | | | llvm-svn: 119482
* s/beginScope/beginInstruction/gDevang Patel2010-10-261-2/+2
| | | | | | s/endScope/endInstruction/g llvm-svn: 117376
* the latest assembler that runs on powerpc 10.4 machines doesn'tChris Lattner2010-09-271-2/+10
| | | | | | | support aligned comm. Detect when compiling for 10.4 and don't emit an alignment for comm. THis will hopefully fix PR8198. llvm-svn: 114817
* add a comment about where this should eventually move.Chris Lattner2010-09-051-0/+7
| | | | llvm-svn: 113117
* There is no need to use .set here.Devang Patel2010-09-021-8/+1
| | | | | | Thanks Chris! llvm-svn: 112900
* Fix .debug_range for linux. Patch by Krister Wombell.Devang Patel2010-09-021-0/+23
| | | | llvm-svn: 112830
* remove unions from LLVM IR. They are severely buggy and notChris Lattner2010-08-281-18/+0
| | | | | | being actively maintained, improved, or extended. llvm-svn: 112356
* Create the new linker type "linker_private_weak_def_auto".Bill Wendling2010-08-201-2/+8
| | | | | | | | | | | It's similar to "linker_private_weak", but it's known that the address of the object is not taken. For instance, functions that had an inline definition, but the compiler decided not to inline it. Note, unlike linker_private and linker_private_weak, linker_private_weak_def_auto may have only default visibility. The symbols are removed by the linker from the final linked image (executable or dynamic library). llvm-svn: 111684
* Improve whitespace.Bill Wendling2010-08-181-1/+2
| | | | llvm-svn: 111384
* Reapply r110396, with fixes to appease the Linux buildbot gods.Owen Anderson2010-08-061-1/+1
| | | | llvm-svn: 110460
* Revert r110396 to fix buildbots.Owen Anderson2010-08-061-1/+1
| | | | llvm-svn: 110410
* Don't use PassInfo* as a type identifier for passes. Instead, use the ↵Owen Anderson2010-08-051-1/+1
| | | | | | | | address of the static ID member as the sole unique type identifier. Clean up APIs related to this change. llvm-svn: 110396
* Change this llvm_unreachable to report_fatal_error, since it canDan Gohman2010-08-041-4/+11
| | | | | | be triggered by valid, if dubious, IR. llvm-svn: 110240
* Use isPrologLabel() instead of checking the opcode directly.Bill Wendling2010-07-171-1/+1
| | | | llvm-svn: 108628
* Consider this function:Bill Wendling2010-07-161-2/+12
| | | | | | | | | | | | | | | | | | | | | | void foo() { __builtin_unreachable(); } It will output the following on Darwin X86: _func1: Leh_func_begin0: pushq %rbp Ltmp0: movq %rsp, %rbp Ltmp1: Leh_func_end0: This prolog adds a new Call Frame Information (CFI) row to the FDE with an address that is not within the address range of the code it describes -- part is equal to the end of the function -- and therefore results in an invalid EH frame. If we emit a nop in this situation, then the CFI row is now within the address range. llvm-svn: 108568
* Rename DBG_LABEL PROLOG_LABEL, because it's only used during prolog emission andBill Wendling2010-07-161-1/+1
| | | | | | thus is a much more meaningful name. llvm-svn: 108563
* Remove many calls to TII::isMoveInstr. Targets should be producing COPY anyway.Jakob Stoklund Olesen2010-07-161-6/+2
| | | | | | TII::isMoveInstr is going tobe completely removed. llvm-svn: 108507
* a more graceful fix for test/Other/inline-asm-newline-terminator.ll,Chris Lattner2010-07-151-1/+1
| | | | | | follow on to r103765 llvm-svn: 108390
* Make the "linker_private" linkage type emit a non-weak symbol to the file. ItBill Wendling2010-07-011-1/+1
| | | | | | will still be stripped by the linker when it generates the final image. llvm-svn: 107440
* Implement the "linker_private_weak" linkage type. This will be used forBill Wendling2010-07-011-0/+1
| | | | | | | | | | | | | | | | | | | | | | | Objective-C metadata types which should be marked as "weak", but which the linker will remove upon final linkage. However, this linkage isn't specific to Objective-C. For example, the "objc_msgSend_fixup_alloc" symbol is defined like this: .globl l_objc_msgSend_fixup_alloc .weak_definition l_objc_msgSend_fixup_alloc .section __DATA, __objc_msgrefs, coalesced .align 3 l_objc_msgSend_fixup_alloc: .quad _objc_msgSend_fixup .quad L_OBJC_METH_VAR_NAME_1 This is different from the "linker_private" linkage type, because it can't have the metadata defined with ".weak_definition". Currently only supported on Darwin platforms. llvm-svn: 107433
* Revert r107205 and r107207.Bill Wendling2010-06-291-3/+2
| | | | llvm-svn: 107215
* Print InlinedAt location.Devang Patel2010-06-291-7/+21
| | | | llvm-svn: 107214
* Introducing the "linker_weak" linkage type. This will be used for Objective-CBill Wendling2010-06-291-2/+3
| | | | | | | | | | | | | | | | | | | metadata types which should be marked as "weak", but which the linker will remove upon final linkage. For example, the "objc_msgSend_fixup_alloc" symbol is defined like this: .globl l_objc_msgSend_fixup_alloc .weak_definition l_objc_msgSend_fixup_alloc .section __DATA, __objc_msgrefs, coalesced .align 3 l_objc_msgSend_fixup_alloc: .quad _objc_msgSend_fixup .quad L_OBJC_METH_VAR_NAME_1 This is different from the "linker_private" linkage type, because it can't have the metadata defined with ".weak_definition". llvm-svn: 107205
* Give NamedRegionTimer an Enabled flag, allowing all its clients toDan Gohman2010-06-181-44/+16
| | | | | | | | | | | | | | | | | | | | switch from this: if (TimePassesIsEnabled) { NamedRegionTimer T(Name, GroupName); do_something(); } else { do_something(); // duplicate the code, this time without a timer! } to this: { NamedRegionTimer T(Name, GroupName, TimePassesIsEnabled); do_something(); } llvm-svn: 106285
* Don't emit the linkage for initializer label for mach-o tls.Eric Christopher2010-06-161-1/+0
| | | | llvm-svn: 106073
* One underscore, not two.Eric Christopher2010-06-031-1/+1
| | | | llvm-svn: 105379
* Move the verbose asm output up a bit so it can be used in the special casesEric Christopher2010-05-251-5/+6
| | | | | | as well. llvm-svn: 104642
* Add support for initialized global data for darwin tls. Update commentsEric Christopher2010-05-251-4/+17
| | | | | | and testcases accordingly. llvm-svn: 104635
* Add full bss data support for darwin tls variables.Eric Christopher2010-05-221-1/+26
| | | | llvm-svn: 104414
* Partial code for emitting thread local bss data.Eric Christopher2010-05-201-0/+7
| | | | llvm-svn: 104197
* Remove unused variable. Tweak a comment while there.Duncan Sands2010-05-121-2/+2
| | | | llvm-svn: 103586
* updated support for the COFF .linkonceNathan Jeffords2010-05-121-7/+1
| | | | | | Now, the .linkonce directive is emitted as part of MCSectionCOFF::PrintSwitchToSection instead of AsmPrinter::EmitLinkage since it is an attribute of the section the symbol was placed into not the symbol itself. llvm-svn: 103568
* Avoid DIDescriptor::getNode(). Use overloaded operators instead.Devang Patel2010-05-071-1/+1
| | | | llvm-svn: 103272
* Fix PR7054 - Assertion `Symbol->isUndefined() && "Cannot define a symbol ↵Chris Lattner2010-05-061-1/+7
| | | | | | | | | twice!"' failed. Users can write broken code that emits the same label twice with asm renaming, detect this and emit a fatal backend error instead of aborting. llvm-svn: 103140
* Don't count debug info as instructions. This wasDale Johannesen2010-05-011-1/+2
| | | | | | | | preventing the emission of the NOP on Darwin for a function with no actual code. From timberwolfmc with TEST=optllcdbg. llvm-svn: 102843
* Print variable scope name in DEBUG_VALUE comment. Useful in some cases. e.g.Devang Patel2010-04-291-0/+2
| | | | | | | | | | ##DEBUG_VALUE: runOnMachineFunction:this <- RDI+0 ##DEBUG_VALUE: runOnMachineFunction:fn <- RSI+0 ##DEBUG_VALUE: DeadDefs <- undef ## SimpleRegisterCoalescing.cpp:2706 ##DEBUG_VALUE: getRegInfo:this <- [%rsp+$56]+$0 ##DEBUG_VALUE: getTarget:this <- [%rsp+$56]+$0 llvm-svn: 102655
* Rework global alignment computation again. Now we do round upChris Lattner2010-04-281-19/+37
| | | | | | | | alignment of globals to the preferred alignment, but only when there is no section specified on the global (by far the common case). llvm-svn: 102515
* Emit debug info for byval parameters.Devang Patel2010-04-281-0/+6
| | | | llvm-svn: 102486
* further simplify EmitAlignment by eliminating the Chris Lattner2010-04-281-5/+2
| | | | | | ForcedAlignBits argument, tweaking the single client of it. llvm-svn: 102484
* remove a dead argument to EmitAlignment.Chris Lattner2010-04-281-2/+1
| | | | llvm-svn: 102483
* Do not count kill, implicit_def instructions as printed instructions.Evan Cheng2010-04-271-4/+4
| | | | llvm-svn: 102453
* round zero-byte .zerofill directives up to 1 byte. ThisChris Lattner2010-04-271-0/+2
| | | | | | | should fix some "g++.dg-struct-layout-1" failures, rdar://7886017 llvm-svn: 102421
* add a comment in verbose-asm mode indicating why a noop is being generated.Chris Lattner2010-04-261-2/+3
| | | | llvm-svn: 102401
* on darwin empty functions need to codegen into something of non-zero length,Chris Lattner2010-04-261-3/+9
| | | | | | | | | | | otherwise labels get incorrectly merged. We handled this by emitting a ".byte 0", but this isn't correct on thumb/arm targets where the text segment needs to be a multiple of 2/4 bytes. Handle this by emitting a noop. This is more gross than it should be because arm/ppc are not fully mc'ized yet. This fixes rdar://7908505 llvm-svn: 102400
* fix PR6921 a different way. Intead of increasing theChris Lattner2010-04-261-1/+9
| | | | | | | | alignment of globals with a specified alignment, we fix common variables to obey their alignment. Add a comment explaining why this behavior is important. llvm-svn: 102365
* Revert r102300/102301, which serious broke objc apps.Chris Lattner2010-04-261-3/+3
| | | | llvm-svn: 102359
* Fix PR6921: globals were not getting correctly rounded up to theirChris Lattner2010-04-251-3/+3
| | | | | | | preferred alignment unless they were common or some other special case. llvm-svn: 102300
* Bill's change in r95336 broke empty aggregates embeddedChris Lattner2010-04-201-24/+42
| | | | | | | | | | | | in other types. fix this by only bumping zero-byte globals up to a single byte if the *entire global* is zero size, fixing PR6340. This also fixes empty arrays etc to be handled correctly, and only does this on subsection-via-symbols targets (aka darwin) which is the only place where this matters. llvm-svn: 101879
OpenPOWER on IntegriCloud