summaryrefslogtreecommitdiffstats
path: root/llvm/lib/CodeGen/AsmPrinter
Commit message (Collapse)AuthorAgeFilesLines
* Reverting 100048; it broke two Frontend debug info tests.Stuart Hastings2010-03-312-26/+10
| | | | llvm-svn: 100058
* Debug info can now properly represent functions inside classes inside other ↵Stuart Hastings2010-03-312-10/+26
| | | | | | functions. Partial fix for Radar 7424645. llvm-svn: 100048
* Reduce string trashing.Benjamin Kramer2010-03-311-2/+2
| | | | llvm-svn: 100038
* DwarfDebug: Allocate DIEValues with a BumpPtrAllocator. Most of them areBenjamin Kramer2010-03-314-32/+30
| | | | | | | | | POD-like anyway, so we don't even care about calling their d'tors (DIEBlock being the exception). ~6% less mallocs and ~1% compile time improvement on clang -O0 -g oggenc.c llvm-svn: 100035
* reduce indentationChris Lattner2010-03-311-20/+21
| | | | llvm-svn: 99999
* tidy upChris Lattner2010-03-311-7/+8
| | | | llvm-svn: 99998
* MI != 0 is checked in the assert right above this.Chris Lattner2010-03-311-1/+1
| | | | llvm-svn: 99995
* use the isDebugValue() predicate and pop_back_val()Chris Lattner2010-03-311-7/+7
| | | | llvm-svn: 99993
* assert is a function-like macro, not a control flow operator.Chris Lattner2010-03-311-14/+14
| | | | llvm-svn: 99992
* add new apis for getting/setting !dbg metadata on Chris Lattner2010-03-311-1/+2
| | | | | | | | | instructions. In addition to being a convenience, they are faster than the old apis, particularly when not going from an MDKindID like people should be doing. llvm-svn: 99982
* Ignore invalid metadata.Devang Patel2010-03-301-0/+2
| | | | llvm-svn: 99938
* Rip out the 'is temporary' nonsense from the MCContext interface toChris Lattner2010-03-302-9/+7
| | | | | | | | | create symbols. It is extremely error prone and a source of a lot of the remaining integrated assembler bugs on x86-64. This fixes rdar://7807601. llvm-svn: 99902
* There is no need to fall through after processing DBG_VALUE machine instruction.Devang Patel2010-03-301-0/+1
| | | | llvm-svn: 99899
* Encode start location of debug value, communicated through DBG_VALUE machine ↵Devang Patel2010-03-292-15/+43
| | | | | | instruction, in a variable's DIE. llvm-svn: 99845
* use RAII for ExceptionTimer tooChris Lattner2010-03-291-17/+3
| | | | llvm-svn: 99833
* fix a variety of issues were we'd start DebugTimer but Chris Lattner2010-03-291-40/+11
| | | | | | not stop it by using RAII. llvm-svn: 99832
* Refactor code to push DILocation prcessing into DwarfDebug.cpp from ↵Devang Patel2010-03-294-37/+54
| | | | | | | | AsmPrinter.cpp. This is same as r99772 (which was reverted) with just one meaningful difference where two source lines exchanged their positions. llvm-svn: 99816
* Revert 99772.Devang Patel2010-03-284-45/+37
| | | | llvm-svn: 99778
* Refactoring. Push DILocation processing in to DwarfDebug from AsmPrinter.Devang Patel2010-03-284-37/+45
| | | | llvm-svn: 99772
* Add comment.Devang Patel2010-03-251-0/+3
| | | | llvm-svn: 99507
* Use SP filename directly instead of SP's context's filename.Devang Patel2010-03-241-2/+2
| | | | llvm-svn: 99429
* Emit DW_AT_low_pc and DW_AT_high_pc attributes for TAG_compile_unit.Devang Patel2010-03-221-4/+8
| | | | llvm-svn: 99225
* DW_AT_stmt_list attribute attached with a compile unit encodes offset of ↵Devang Patel2010-03-224-77/+4
| | | | | | line number information for this compile unit in debug_line section. This offset is always zero when only one compile unit is emitted in a object file. llvm-svn: 99223
* Fix a memory leak from DIE::addSiblingOffset() by adding the DIEValueJeffrey Yasskin2010-03-223-5/+9
| | | | | | it allocates to DwarfDebug::DIEValues. llvm-svn: 99196
* Fix EmitSectionOffset incorrect argument. DwarfDebug is emitting debug info ↵Devang Patel2010-03-171-9/+8
| | | | | | so isEH is always false. This was hiding until now from compilers because of default arguments. This was hiding from dwarf debug info users because for most of the platform isAbsoluteEHSectionOffsets() is same as isAbsoluteDebugSectionOffsets(). But Chris found it while updating dwarf printer to use MC*. llvm-svn: 98743
* reapply r98656 unmodified, which exposed the asmprinter not Chris Lattner2010-03-161-3/+21
| | | | | | handling constant unions. llvm-svn: 98680
* Revert r98656, its breaking all over the place.Daniel Dunbar2010-03-161-21/+3
| | | | llvm-svn: 98662
* improve support for uniontype and ConstantUnion, patch by Tim Northover!Chris Lattner2010-03-161-3/+21
| | | | llvm-svn: 98656
* Fix the third (and last known) case of code update problems due Chris Lattner2010-03-161-7/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | to LLVM IR changes with addr label weirdness. In the testcase, we generate references to the two bb's when codegen'ing the first function: _test1: ## @test1 leaq Ltmp0(%rip), %rax .. leaq Ltmp1(%rip), %rax Then continue to codegen the second function where the blocks get merged. We're now smart enough to emit both labels, producing this code: _test_fun: ## @test_fun ## BB#0: ## %entry Ltmp1: ## Block address taken Ltmp0: ## BB#1: ## %ret movl $-1, %eax ret Rejoice. llvm-svn: 98595
* Implement support for the case when a reference to a addr-of-bb Chris Lattner2010-03-151-0/+10
| | | | | | | | | label is generated, but then the block is deleted. Since the value is undefined, we just emit the label right after the entry label of the function. It might matter that the label is in the same section as the function was afterall. llvm-svn: 98579
* Emit dwarf variable info communicated by code generator through DBG_VALUE ↵Devang Patel2010-03-153-12/+107
| | | | | | | | machine instructions. This is a work in progress. llvm-svn: 98556
* remove dead method.Chris Lattner2010-03-151-7/+0
| | | | llvm-svn: 98526
* fix AsmPrinter::GetBlockAddressSymbol to always return a uniqueChris Lattner2010-03-141-21/+4
| | | | | | | label instead of trying to form one based on the BB name (which causes collisions if the name is empty). This fixes PR6608 llvm-svn: 98495
* get MMI out of the label uniquing business, just go to MCContextChris Lattner2010-03-142-3/+2
| | | | | | to get unique assembler temporary labels. llvm-svn: 98489
* don't use getDWLabel("label" anymore, always go through MMI.Chris Lattner2010-03-141-2/+2
| | | | llvm-svn: 98485
* remove now-dead code, all labels use MCSymbols.Chris Lattner2010-03-141-10/+1
| | | | llvm-svn: 98484
* change SrcLineInfo to contain a label instead of a label ID.Chris Lattner2010-03-142-9/+7
| | | | llvm-svn: 98483
* Now that DBG_LABEL is updated, we can finally make MachineMove Chris Lattner2010-03-141-6/+2
| | | | | | contain an MCSymbol instead of a label index. llvm-svn: 98482
* change the DBG_LABEL MachineInstr to always be createdChris Lattner2010-03-141-7/+1
| | | | | | with an MCSymbol instead of an immediate. llvm-svn: 98481
* unbreak the build, grr symlinks.Chris Lattner2010-03-141-3/+3
| | | | llvm-svn: 98477
* switch GC_LABEL to use an MCSymbol operand instead of a label ID operand.Chris Lattner2010-03-141-3/+1
| | | | llvm-svn: 98474
* Fix some EH failures on NNT I introduced in r98461Chris Lattner2010-03-141-4/+6
| | | | llvm-svn: 98471
* fix a bug I introduced in r98459, causing some NNT failures.Chris Lattner2010-03-141-1/+1
| | | | llvm-svn: 98470
* change the LabelSDNode to be EHLabelSDNode and make it holdChris Lattner2010-03-142-4/+15
| | | | | | | | an MCSymbol. Make the EH_LABEL MachineInstr hold its label with an MCSymbol instead of ID. Fix a bug in MMI.cpp which would return labels named "Label4" instead of "label4". llvm-svn: 98463
* use Label->isDefined() instead of isLabelDeleted() now that weChris Lattner2010-03-142-8/+9
| | | | | | | consistently use MCSymbol and only call this predicate after they should have been emitted. llvm-svn: 98461
* change EH related stuff (other than EH_LABEL) to use MCSymbolChris Lattner2010-03-142-55/+37
| | | | | | | | | | | | | | | | instead of label ID's. This cleans up and regularizes a bunch of code and makes way for future progress. Unfortunately, this pointed out to me that JITDwarfEmitter.cpp is largely copy and paste from DwarfException/MachineModuleInfo and other places. This is very sad and disturbing. :( One major change here is that TidyLandingPads moved from being called in DwarfException::BeginFunction to being called in DwarfException::EndFunction. There should not be any functionality change from doing this, but I'm not an EH expert. llvm-svn: 98459
* eliminate the now-unneeded context argument of MBB::getSymbol()Chris Lattner2010-03-131-6/+6
| | | | llvm-svn: 98451
* rearrange MCContext ownership. Before LLVMTargetMachine created it Chris Lattner2010-03-131-8/+9
| | | | | | | | | | | and passing off ownership to AsmPrinter. Now MachineModuleInfo creates it and owns it by value. This allows us to use MCSymbols more consistently throughout the rest of the code generator, and simplifies a bit of code. This also allows MachineFunction to keep an MCContext reference handy, and cleans up the TargetRegistry interfaces for AsmPrinters. llvm-svn: 98450
* simplify EmitFrameMoves to take BaseLabel in as a symbolChris Lattner2010-03-134-18/+13
| | | | | | | instead of as a stem+idx pair, simplify the "is a new location" check to use symbol comparison. llvm-svn: 98432
* factor some labels, simplify some code.Chris Lattner2010-03-133-14/+15
| | | | llvm-svn: 98429
OpenPOWER on IntegriCloud