summaryrefslogtreecommitdiffstats
path: root/llvm/lib/CodeGen/AsmPrinter
Commit message (Collapse)AuthorAgeFilesLines
* If there is not any llvm instruction associated with each lexical scope ↵Devang Patel2009-10-161-2/+10
| | | | | | encoded in debug info then create such scope on demand for variable info. llvm-svn: 84262
* Add support to record DbgScope as inlined scope.Devang Patel2009-10-142-25/+44
| | | | llvm-svn: 84134
* s/DebugLoc.CompileUnit/DebugLoc.Scope/gDevang Patel2009-10-132-12/+13
| | | | | | s/DebugLoc.InlinedLoc/DebugLoc.InlinedAtLoc/g llvm-svn: 84054
* Fix a -Asserts warning.Daniel Dunbar2009-10-131-2/+3
| | | | llvm-svn: 83950
* Find enclosing subprogram info.Devang Patel2009-10-121-1/+19
| | | | llvm-svn: 83922
* Extract scope information from the variable itself, instead of relying on ↵Devang Patel2009-10-092-22/+31
| | | | | | | | alloca or llvm.dbg.declare location. While recording beginning of a function, use scope info from the first location entry instead of just relying on first location entry itself. llvm-svn: 83684
* Check invalid debug info for enums. This may happen when underlyng enum is ↵Devang Patel2009-10-091-2/+4
| | | | | | optimized away. Eventually DwarfChecker will clean this up during llvm verification stage. llvm-svn: 83655
* Do not record line number to implicitly mark start of function if function ↵Devang Patel2009-10-082-12/+23
| | | | | | has arguments. Extra line number entries trip gdb in some cases. llvm-svn: 83563
* Add support to handle debug info attached to an instruction.Devang Patel2009-10-063-6/+23
| | | | | | This is not yet enabled. llvm-svn: 83400
* Instead of printing unnecessary basic block labels as labels inDan Gohman2009-10-061-2/+10
| | | | | | | | | | verbose-asm mode, print comments instead. This eliminates a non-comment difference between verbose-asm mode and non-verbose-asm mode. Also, factor out the relevant code out of all the targets and into target-independent code. llvm-svn: 83392
* Fix cut-n-pasto.Devang Patel2009-10-061-1/+1
| | | | llvm-svn: 83367
* Update processDebugLoc() so that it can be used to process debug info before ↵Devang Patel2009-10-061-6/+8
| | | | | | and after printing an instruction. llvm-svn: 83363
* Remove dead code.Devang Patel2009-10-062-23/+0
| | | | llvm-svn: 83362
* Add utility routine to set begin and end labels for DbgScopes.Devang Patel2009-10-062-0/+31
| | | | | | This will be used by processDebugLoc(). llvm-svn: 83361
* Remove unintentional function decl.Devang Patel2009-10-061-1/+0
| | | | llvm-svn: 83356
* Add utility routine to collect variable debug info. This is not yet used.Devang Patel2009-10-062-0/+17
| | | | llvm-svn: 83355
* Existence of a compile unit for input source file is a good indicator to ↵Devang Patel2009-10-061-10/+1
| | | | | | check debug info's presence in a module. llvm-svn: 83348
* If subprogram die is not available then construct new one.Devang Patel2009-10-051-0/+4
| | | | | | This can happen if debug info is processed lazily. llvm-svn: 83347
* Adjust context for the global variables that are not at file scope, e.g.Devang Patel2009-10-052-2/+22
| | | | | | | void foo() { static int bar = 42; } Here, foo's DIE is parent of bar's DIE. llvm-svn: 83344
* Set address while constructing DIE.Devang Patel2009-10-051-7/+8
| | | | llvm-svn: 83343
* Gracefully handle various scopes while recording source line info.Devang Patel2009-10-051-4/+21
| | | | llvm-svn: 83317
* strength reduce a ton of type equality tests to check the typeid (ThroughChris Lattner2009-10-051-4/+10
| | | | | | | | the new predicates I added) instead of going through a context and doing a pointer comparison. Besides being cheaper, this allows a smart compiler to turn the if sequence into a switch. llvm-svn: 83297
* Add support to extract lexical scope information from DebugLoc attached with ↵Devang Patel2009-10-012-1/+143
| | | | | | | | an machine instruction. This is not yet enabled. llvm-svn: 83210
* Record first and last instruction of a scope in DbgScope.Devang Patel2009-10-011-2/+8
| | | | llvm-svn: 83207
* Add another MDNode into DebugLocTuple. This will be used to keep track of ↵Devang Patel2009-10-011-1/+1
| | | | | | inlined functions. llvm-svn: 83190
* Use MachineInstr as an processDebugLoc() argument.Devang Patel2009-09-301-2/+2
| | | | | | This will allow processDebugLoc() to handle scopes for DWARF debug info. llvm-svn: 83183
* Use MDNode * directly as an RecordSourceLine() argument.Devang Patel2009-09-304-9/+9
| | | | llvm-svn: 83182
* Add a new virtual EmitStartOfAsmFile method to the AsmPrinter and use thisBob Wilson2009-09-301-2/+4
| | | | | | | | | | | | | | | | to emit target-specific things at the beginning of the asm output. This fixes a problem for PPC, where the text sections are not being kept together as expected. The base class doInitialization code calls DW->BeginModule() which emits a bunch of DWARF section directives. The PPC doInitialization code then emits all the TEXT section directives, with the intention that they will be kept together. But as I understand it, the Darwin assembler treats the default TEXT section as a special case and moves it to the beginning of the file, which means that all those DWARF sections are in the middle of the text. With this change, the EmitStartOfAsmFile hook is called before the DWARF section directives are emitted, so that all the PPC text section directives come out right at the beginning of the file. llvm-svn: 83176
* Fix a comment.Bob Wilson2009-09-301-1/+1
| | | | llvm-svn: 83171
* Add a way for a frontend to generate more complex dwarf locationMike Stump2009-09-302-6/+70
| | | | | | | | | | | | | | | | | | information. This allows arbitrary code involving DW_OP_plus_uconst and DW_OP_deref. The scheme allows for easy extention to include, any, or all of the DW_OP_ opcodes. I thought about just exposing all of them, but, wasn't sure if people wanted the dwarf opcodes exposed in the api. Is that a layering violation? With this scheme, the entire existing block scheme used by llvm-gcc can be switched over to the new scheme. I think that would be cleaner, as then the compiler specific bits are not present in llvm proper. Before the old code can be yanked however, similar code in clang would have to be removed. Next up, more testing. llvm-svn: 83120
* Remove std::string uses from DebugInfo interface.Devang Patel2009-09-293-67/+41
| | | | llvm-svn: 83083
* Delete space after function name, before (, reflow a comment andMike Stump2009-09-241-14/+6
| | | | | | delete a few blank lines. llvm-svn: 82729
* Fix spacing.Mike Stump2009-09-241-1/+1
| | | | llvm-svn: 82727
* unconditionally compute MMI even if the target doesn't support EH or Debug ↵Chris Lattner2009-09-241-9/+6
| | | | | | info, because the target may use it for other things, this fixes PR5036 llvm-svn: 82684
* This is overly constraining with respect to clang.Mike Stump2009-09-231-3/+0
| | | | llvm-svn: 82591
* --- Reverse-merging r82282 into '.':Bill Wendling2009-09-202-53/+22
| | | | | | | | | | | | | U lib/CodeGen/AsmPrinter/DwarfException.cpp U lib/CodeGen/AsmPrinter/DwarfException.h --- Reverse-merging r82274 into '.': U lib/Target/TargetLoweringObjectFile.cpp G lib/CodeGen/AsmPrinter/DwarfException.cpp These revisions were breaking everything. llvm-svn: 82396
* Here's fun! It turns out that these filter functions can be internal. If they'reBill Wendling2009-09-201-1/+2
| | | | | | | | internal, they shouldn't use the indirect pointer stuff. In the case of throw_rethrow_test, it was marked as 'internal' and calculated its own offset to its contents. llvm-svn: 82354
* Fix indentation.Daniel Dunbar2009-09-191-76/+76
| | | | llvm-svn: 82333
* Strip trailing whitespace.Daniel Dunbar2009-09-191-17/+17
| | | | llvm-svn: 82332
* Factor out label difference creation.Bill Wendling2009-09-182-35/+30
| | | | llvm-svn: 82282
* It's inefficient to have place the exception tables (which contain the LSDA)Bill Wendling2009-09-181-5/+40
| | | | | | | | | into the __DATA section. At launch time, dyld has to update most of the section to fix up the type info pointers. It's better to place it into the __TEXT section and use pc-rel indirect pointer encodings. Similar to the personality routine. llvm-svn: 82274
* add a new hook to allow targets to splat stuff at the end of the file.Chris Lattner2009-09-181-0/+5
| | | | | | Overriding doFinalization is pretty lame. llvm-svn: 82268
* Allow symbols to start from the digit if target requests it. This allows, ↵Anton Korobeynikov2009-09-181-0/+3
| | | | | | | | | e.g. pinning variables to specified absolute address. Make use of this feature for MSP430. This unbreaks PR4776. llvm-svn: 82227
* pass machinemoduleinfo down into getSymbolForDwarfGlobalReference, Chris Lattner2009-09-171-0/+1
| | | | | | currently unused. llvm-svn: 82157
* remove the AsmPrinter::printMCInst hook hack now thatChris Lattner2009-09-161-4/+0
| | | | | | we have MCInstPrinter. llvm-svn: 82006
* Big change #1 for personality function references:Chris Lattner2009-09-161-19/+45
| | | | | | | | | | | | | | | | | | | | | | | | Eliminate the PersonalityPrefix/Suffix & NeedsIndirectEncoding fields from MAI: they aren't part of the asm syntax, they are related to the structure of the object file. To replace their functionality, add a new TLOF::getSymbolForDwarfGlobalReference method which asks targets to decide how to reference a global from EH in a pc-relative way. The default implementation just returns the symbol. The default darwin implementation references the symbol through an indirect $non_lazy_ptr stub. The bizarro x86-64 darwin specialization handles the weird "foo@GOTPCREL+4" hack. DwarfException.cpp now uses this to emit the reference to the symbol in the right way, and this also eliminates another horrible hack from DwarfException.cpp: - if (strcmp(MAI->getPersonalitySuffix(), "+4@GOTPCREL")) - O << "-" << MAI->getPCSymbol(); llvm-svn: 81991
* inline AsmPrinter::getCurrentFunctionEHName into its only caller.Chris Lattner2009-09-162-11/+6
| | | | llvm-svn: 81970
* Eliminate AsmPrinter::EmitExternalGlobal, inlining its (now)Chris Lattner2009-09-162-8/+1
| | | | | | | | one implementation into its one caller. This eliminates a totally awesome and gratuitous hack where we casted a Function* to GlobalVariable*. llvm-svn: 81967
* eliminate the horrid AsmPrinter::getGlobalLinkName method, inliningChris Lattner2009-09-163-15/+4
| | | | | | it into all of its call sites and simplifying them. llvm-svn: 81962
* remove some horrible MAI hooks which fortunately turn out to be always empty.Chris Lattner2009-09-151-22/+3
| | | | llvm-svn: 81946
OpenPOWER on IntegriCloud