summaryrefslogtreecommitdiffstats
path: root/llvm/lib/CodeGen/AsmPrinter
Commit message (Collapse)AuthorAgeFilesLines
* Constify a few functions.Eric Christopher2013-07-031-3/+3
| | | | llvm-svn: 185520
* Introduce some typedefs for DenseMaps containing SmallVectors so the vector ↵Craig Topper2013-07-032-7/+9
| | | | | | size doesn't have to repeated when creating iterators for the DenseMap. llvm-svn: 185508
* Use SmallVectorImpl& instead of SmallVector& to avoid needlessly ↵Craig Topper2013-07-031-6/+6
| | | | | | respecifying the small vector size. llvm-svn: 185505
* Use SmallVectorImpl::iterator/const_iterator instead of SmallVector to avoid ↵Craig Topper2013-07-031-8/+8
| | | | | | specifying the vector size. llvm-svn: 185504
* Avoid doing a lot of computation when we have multiple ranges andEric Christopher2013-07-031-26/+29
| | | | | | | avoid adding information for the debug_inlined section when it isn't going to be emitted anyhow. llvm-svn: 185500
* Move iterator to where it's used and update comments.Eric Christopher2013-07-031-1/+3
| | | | llvm-svn: 185498
* Move instance variable before experimental section.Eric Christopher2013-07-031-4/+5
| | | | llvm-svn: 185497
* Fix typo to make grep for DW_AT_comp_dir work without case-insensitiveEric Christopher2013-07-031-1/+1
| | | | | | grep. llvm-svn: 185496
* Remove unnecessary forward declare.Eric Christopher2013-07-031-1/+0
| | | | llvm-svn: 185495
* Add a helpful comment.Eric Christopher2013-07-031-0/+2
| | | | llvm-svn: 185492
* addConstantValue, addConstantFPValue never returned anything butEric Christopher2013-07-032-30/+18
| | | | | | true, so remove the return value and propagate accordingly. llvm-svn: 185490
* Debug Info: use module flag to set up Dwarf version.Manman Ren2013-07-024-6/+44
| | | | | | | | Correctly handles ref_addr depending on the Dwarf version. Emit Dwarf with version from module flag. TODO: turn on/off features depending on the Dwarf version. llvm-svn: 185484
* Fix comment.Eric Christopher2013-07-021-1/+1
| | | | llvm-svn: 185480
* [DebugInfo] Allow getDebugThreadLocalSymbol to return MCExprUlrich Weigand2013-07-021-3/+3
| | | | | | | | | | | This allows getDebugThreadLocalSymbol to return a generic MCExpr instead of just a MCSymbolRefExpr. This is in preparation for supporting debug info for TLS variables on PowerPC, where we need to describe the variable location using a more complex expression than just MCSymbolRefExpr. llvm-svn: 185460
* [DebugInfo] Hold generic MCExpr in AddrPoolUlrich Weigand2013-07-022-9/+9
| | | | | | | | | | | This changes the AddrPool infrastructure to enable it to hold generic MCExpr expressions, not just MCSymbolRefExpr. This is in preparation for supporting debug info for TLS variables on PowerPC, where we need to describe the variable location using a more complex expression than just MCSymbolRefExpr. llvm-svn: 185459
* [DebugInfo] Introduce DIEExpr variant of DIEValue to hold MCExpr valuesUlrich Weigand2013-07-025-21/+80
| | | | | | | | | | | | This partially reverts r185202 and restores DIELabel to hold plain MCSymbol references. Instead, we add a new subclass DIEExpr of DIEValue that can hold generic MCExpr references. This is in preparation for supporting debug info for TLS variables on PowerPC, where we need to describe the variable location using a more complex expression than just MCSymbolRefExpr. llvm-svn: 185458
* Remove address spaces from MC.Rafael Espindola2013-07-022-50/+43
| | | | | | | | This is dead code since PIC16 was removed in 2010. The result was an odd mix, where some parts would carefully pass it along and others would assert it was zero (most of the object streamer for example). llvm-svn: 185436
* PR14728: DebugInfo: TLS variables with -gsplit-dwarfDavid Blaikie2013-07-013-17/+26
| | | | llvm-svn: 185398
* DebugInfo: PR14728: TLS supportDavid Blaikie2013-06-281-3/+18
| | | | | | | | | | | | | | Based on GCC's output for TLS variables (OP_constNu, x@dtpoff, OP_lo_user), this implements debug info support for TLS in ELF. Verified that this output is correct/sufficient on Linux (using gold - if you're using binutils-ld, you'll need something with the fix for http://sourceware.org/bugzilla/show_bug.cgi?id=15685 in it). Support on non-ELF is sort of "arbitrary" at the moment - if Apple folks want to discuss (or just go ahead & implement) how this should work in MachO, etc, I'm open. llvm-svn: 185203
* DebugInfo: Pass MCSymbolRefExprs for labels instead of MCSymbolsDavid Blaikie2013-06-285-13/+26
| | | | | | | This is a precursor to adding debug info support for TLS which requires non-default relocations applied to TLS symbols. llvm-svn: 185202
* DebugInfo: Revise r185189 to avoid subtle 'unsigned += bool'David Blaikie2013-06-281-1/+2
| | | | llvm-svn: 185190
* DebugInfo: Simplify the AddressPool representationDavid Blaikie2013-06-282-18/+12
| | | | llvm-svn: 185189
* DebugInfo: constify the AddressPool MCSymbol pointersDavid Blaikie2013-06-282-12/+13
| | | | llvm-svn: 185188
* Remove unused code. No functionality change.Manman Ren2013-06-251-4/+0
| | | | llvm-svn: 184866
* 80-column and tab character fixes.Eric Christopher2013-06-243-5/+8
| | | | llvm-svn: 184792
* Formatting.Eric Christopher2013-06-241-3/+2
| | | | llvm-svn: 184788
* Use const references instead of pointers to references that areEric Christopher2013-06-242-21/+23
| | | | | | never modified. No functional change. llvm-svn: 184781
* DebugInfo: PR14404: Avoid truncating 64 bit values into 32 bits for ↵David Blaikie2013-06-231-2/+2
| | | | | | ULEB128/SLEB128 generation llvm-svn: 184669
* DebugInfo: Support (using GNU extensions) for template template parameters ↵David Blaikie2013-06-221-2/+11
| | | | | | and parameter packs llvm-svn: 184643
* DebugInfo: don't use location lists when the location covers the whole ↵David Blaikie2013-06-203-9/+12
| | | | | | | | | | | | | function anyway Fix up three tests - one that was relying on abbreviation number, another relying on a location list in this case (& testing raw asm, changed that to use dwarfdump on the debug_info now that that's where the location is), and another which was added in r184368 - exposing a bug in that fix that is exposed when we emit the location inline rather than through a location list. Fix that bug while I'm here. llvm-svn: 184387
* DebugInfo: PR14763/r183329 correct the location of indirect parametersDavid Blaikie2013-06-192-7/+10
| | | | | | | | | | | | | | | | We had been papering over a problem with location info for non-trivial types passed by value by emitting their type as references (this caused the debugger to interpret the location information correctly, but broke the type of the function). r183329 corrected the type information but lead to the debugger interpreting the pointer parameter as the value - the debug info describing the location needed an extra dereference. Use a new flag in DIVariable to add the extra indirection (either by promoting an existing DW_OP_reg (parameter passed in a register) to DW_OP_breg + 0 or by adding DW_OP_deref to an existing DW_OP_breg + n (parameter passed on the stack). llvm-svn: 184368
* DebugInfo: remove target-specific Frame Index handling for DBG_VALUE ↵David Blaikie2013-06-161-8/+0
| | | | | | | | | | MachineInstrs Frame index handling is now target-agnostic, so delete the target hooks for creation & asm printing of target-specific addressing in DBG_VALUEs and any related functions. llvm-svn: 184067
* Debug Info: Simplify Frame Index handling in DBG_VALUE Machine InstructionsDavid Blaikie2013-06-163-44/+29
| | | | | | | | | | | | | | | | | | | | Rather than using the full power of target-specific addressing modes in DBG_VALUEs with Frame Indicies, simply use Frame Index + Offset. This reduces the complexity of debug info handling down to two representations of values (reg+offset and frame index+offset) rather than three or four. Ideally we could ensure that frame indicies had been eliminated by the time we reached an assembly or dwarf generation, but I haven't spent the time to figure out where the FIs are leaking through into that & whether there's a good place to convert them. Some FI+offset=>reg+offset conversion is done (see PrologEpilogInserter, for example) which is necessary for some SelectionDAG assumptions about registers, I believe, but it might be possible to make this a more thorough conversion & ensure there are no remaining FIs no matter how instruction selection is performed. llvm-svn: 184066
* DebugInfo: print DBG_VALUE MachineInstrs with [] for deref and drop the ↵David Blaikie2013-06-151-3/+13
| | | | | | offset when it's zero llvm-svn: 184045
* Debug Info: Don't print the display name and colon prefix for DEBUG_VALUE ↵David Blaikie2013-06-151-2/+5
| | | | | | comments if the display name is empty llvm-svn: 184026
* Formatting.Eric Christopher2013-06-111-1/+1
| | | | llvm-svn: 183807
* Remove a few fixmes, the only work we're doing is getting the stringEric Christopher2013-06-101-4/+0
| | | | | | to return and this is done all over. llvm-svn: 183704
* Fix up comment.Eric Christopher2013-06-101-1/+1
| | | | llvm-svn: 183703
* Remove unused function.Eric Christopher2013-06-101-6/+0
| | | | llvm-svn: 183698
* IndentCount is only used within NDEBUG code.Eric Christopher2013-06-101-0/+2
| | | | llvm-svn: 183695
* Teach AsmPrinter how to print odd constants.Quentin Colombet2013-06-071-2/+43
| | | | | | | | | | | Fix an assertion when the compiler encounters big constants whose bit width is not a multiple of 64-bits. Although clang would never generate something like this, the backend should be able to handle any legal IR. <rdar://problem/13363576> llvm-svn: 183544
* Fix break in r183446 - helps to increment the iterator in a loopDavid Blaikie2013-06-061-1/+2
| | | | llvm-svn: 183454
* Debug Info: simplify parameter ordering preservationDavid Blaikie2013-06-061-25/+21
| | | | | | | | | | | | | Seems we emit the parameter ordering number (spuriously named 'arg number') in the debug info, so there's no need to search through the variable list to figure out the parameter ordering. This implementation does 'always' do the work, even in non-optimized debug info (the previous implementation checked the existence of the 'variables' list on the subprogram which is only present in optimized builds). No intended functionality change. llvm-svn: 183446
* PR15662: Optimized debug info produces out of order function parametersDavid Blaikie2013-06-051-3/+31
| | | | | | | | | | | | | | | When a function is inlined we lazily construct the variables representing the function's parameters. After that, we add any remaining unused parameters. If the function doesn't use all the parameters, or uses them out of order, then the DWARF would produce them in that order, producing a parameter order that doesn't match the source. This fix causes us to always keep the arg variables at the start of the variable list & in the original order from the source. llvm-svn: 183297
* Move getRealLinkageName to a common place and remove all the duplicates of it.Benjamin Kramer2013-06-012-27/+7
| | | | | | Also simplify code a bit while there. No functionality change. llvm-svn: 183076
* Const-ify some printing and dumping code for DIEValues.Eric Christopher2013-05-312-13/+13
| | | | llvm-svn: 183057
* Rename variable to be more descriptive.Eric Christopher2013-05-301-3/+3
| | | | llvm-svn: 182903
* Formatting.Eric Christopher2013-05-301-1/+1
| | | | llvm-svn: 182902
* Don't reach into the middle of TargetMachine and cache one of its ivars.Bill Wendling2013-05-291-1/+1
| | | | | | Not only does this break encapsulation, it's gross. llvm-svn: 182876
* LTO+Debug Info: revert r182791.Manman Ren2013-05-293-54/+13
| | | | | | | | | | | | Since the testing case uses ref_addr, which requires version 3+ to work, we will solve the dwarf version issue first. This patch also causes failures in one of the bots. I will update the patch accordingly in my next attempt. rdar://13926659 llvm-svn: 182867
OpenPOWER on IntegriCloud