summaryrefslogtreecommitdiffstats
path: root/llvm/lib/CodeGen/AsmPrinter
Commit message (Collapse)AuthorAgeFilesLines
* 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
* strength reduce a call to PrintRelDirective(true).Chris Lattner2009-09-151-1/+3
| | | | llvm-svn: 81942
* PIC16 does allow colon after MBB labels, simplify EmitBasicBlockStart.Chris Lattner2009-09-141-5/+2
| | | | llvm-svn: 81755
* Change MCAsmStreamer to take an MCInstPrinter instead of a Chris Lattner2009-09-141-1/+2
| | | | | | | | | | | full AsmPrinter, and change TargetRegistry to keep track of registered MCInstPrinters. llvm-mc is still linking in the entire target foo to get the code emitter stuff, but this is an important step in the right direction. llvm-svn: 81754
* eliminate an extraneous use of TRI::getAsmName in a comment.Chris Lattner2009-09-131-1/+1
| | | | llvm-svn: 81705
* remove MAI::JumpTableSpecialLabelPrefix now that MAI Chris Lattner2009-09-131-4/+4
| | | | | | has real information about linker private linkage. llvm-svn: 81695
* replace printBasicBlockLabel with EmitBasicBlockStart,Chris Lattner2009-09-131-14/+11
| | | | | | | now that printBasicBlockLabel is only used for starting a MBB. This allows elimination of a bunch of arguments. llvm-svn: 81684
* convert some uses of printBasicBlockLabel to use GetMBBSymbolChris Lattner2009-09-131-8/+7
| | | | | | instead. llvm-svn: 81677
* devirtualize AsmPrinter::printBasicBlockLabel since it is never overridden.Chris Lattner2009-09-121-2/+12
| | | | | | | | Move GetMBBSymbol up to AsmPrinter and make printBasicBlockLabel use it so that we only have one place that decides what to name bb labels. Hopefully various clients of printBasicBlockLabel can start using GetMBBSymbol instead. llvm-svn: 81652
* Don't generate Dwarf line table entries for source line 0.Caroline Tice2009-09-111-0/+6
| | | | llvm-svn: 81542
* Fix PR4948 (and a leak): by not destroying the DwarfExceptionDuncan Sands2009-09-111-0/+2
| | | | | | | | | object, the timer it creates was not being deleted. Since the timer belonged to a static timer group, the timer group would be destroyed on shutdown, and would notice and complain that not all timers it contained were destroyed. llvm-svn: 81533
* Exit early if exception handling isn't supported.Bill Wendling2009-09-101-13/+13
| | | | llvm-svn: 81454
* Comment and whitespace cleanups. No intentional functionality change.Bill Wendling2009-09-101-27/+21
| | | | llvm-svn: 81436
* Revert part of my r81424 patch. I removed what looked like superfluous paddingBill Wendling2009-09-101-23/+37
| | | | | | | | from the exception tables. However, Duncan explained why it's a can of worms to do it the GCC way. I went back to doing it the LLVM way and added Duncan's explanation so that I don't do this again in the future. llvm-svn: 81434
* Don't hardcode the TType format size. In fact, rework the code so that it's moreBill Wendling2009-09-101-49/+49
| | | | | | | | like what GCC outputs. The mysterious code to insert padding wasn't in GCC at all. I modified the TType base offset code to calculate the offset like GCC does, though. llvm-svn: 81424
* Remove the "#if 0" that Noone loved. It wasn't really necessary, because theBill Wendling2009-09-101-27/+20
| | | | | | | | code within it was the same inside and out. There's still a problem of the TypeInfoSize should be the size of the TType format encoding (at least that's what GCC thinks it should be). llvm-svn: 81417
* Pull check for SJLJ EH into a boolean and use that.Bill Wendling2009-09-101-7/+10
| | | | llvm-svn: 81409
* Use the SizeOfEncodedValue function instead of magic variables for theBill Wendling2009-09-101-4/+3
| | | | | | sizeof(DW_EH_PE_udata4). llvm-svn: 81408
* Add helpful comment.Bill Wendling2009-09-102-0/+2
| | | | llvm-svn: 81406
* Believe it or not, this is a simplification. :-)Bill Wendling2009-09-092-37/+86
| | | | | | | | | | | | | Basically, this patch is working towards removing the hard-coded values that are output for the CIE. In particular, the CIE augmentation and the CIE augmentation size. Both of these should be calculated. In the process, I was able to make a bunch of code simpler. The encodings for the personality, LSDA, and FDE in the CIE are still not correct. They should be generated either from target-specific callbacks (blech!) or grokked from first-principles. llvm-svn: 81404
* remove DebugLoc from MCInst and eliminate "Comment printing" fromChris Lattner2009-09-092-32/+11
| | | | | | | | | | | | | the MCInst path of the asmprinter. Instead, pull comment printing out of the autogenerated asmprinter into each target that uses the autogenerated asmprinter. This causes code duplication into each target, but in a way that will be easier to clean up later when more asmprinter stuff is commonized into the base AsmPrinter class. This also fixes an xcore strangeness where it inserted two tabs before every instruction. llvm-svn: 81396
* Use the EOL that takes the encoding and translates it into DWARF-English.Bill Wendling2009-09-092-11/+21
| | | | llvm-svn: 81382
* Early exit from function.Bill Wendling2009-09-091-14/+13
| | | | llvm-svn: 81381
* Small amount of code clean-up: Don't use ".size()" when not necessary.Bill Wendling2009-09-091-5/+7
| | | | llvm-svn: 81380
* Ignore malformed global variable debug info.Devang Patel2009-09-041-0/+4
| | | | llvm-svn: 81055
* reduce size of SmallString to something more reasonableJim Grosbach2009-09-011-1/+1
| | | | llvm-svn: 80710
* Use raw_ostream instead of sstreamJim Grosbach2009-09-011-7/+5
| | | | llvm-svn: 80704
* revert inadvertant change from previous commitJim Grosbach2009-09-011-2/+3
| | | | llvm-svn: 80689
* Simply LSDA lable emission to use a direct special-case output instead ofJim Grosbach2009-09-013-21/+12
| | | | | | EmitLabel() llvm-svn: 80677
* Clean up LSDA name generation and use for SJLJ exception handling. ThisJim Grosbach2009-09-013-12/+25
| | | | | | | | | | | makes an eggregious hack somewhat more palatable. Bringing the LSDA forward and making it a GV available for reference would be even better, but is beyond the scope of what I'm looking to solve at this point. Objective C++ code could generate function names that broke the previous scheme. This fixes that. llvm-svn: 80649
* Subprogram is a scope. Derive DISubprogram from DIScope.Devang Patel2009-08-312-4/+18
| | | | llvm-svn: 80637
* Rename DIBlock as DILexicalBlock.Devang Patel2009-08-311-1/+1
| | | | llvm-svn: 80633
* Add flag to mark structs for Apple Block "byref" variables; also add code toCaroline Tice2009-08-312-2/+254
| | | | | | | modify the type and location debug information for these variables to match the programmer's expectations. llvm-svn: 80625
* Simplify isDerivedType() and other predicate interface.Devang Patel2009-08-311-3/+3
| | | | llvm-svn: 80602
* Output a hex value, because all of the others are hex.Bill Wendling2009-08-311-1/+1
| | | | llvm-svn: 80601
* Revert commit 80428. It completely broke exceptionDuncan Sands2009-08-311-30/+17
| | | | | | handling on x86-32 linux. llvm-svn: 80592
* PR4747Jim Grosbach2009-08-311-2/+3
| | | | | | | | | | | | | Shared landing pads run into trouble with SJLJ, as the dispatch table is mapped to call sites, and merging the pads will throw that off. There needs to be a one-to-one mapping of landing pad exception table entries to invoke call points. Detecting the shared pad during lowering of SJLJ info insn't sufficient, as the dispatch function may still need separate destinations to properly handle phi-nodes. llvm-svn: 80530
* Nuke moribund "std::string" version of EOL(..., Encoding).Bill Wendling2009-08-301-8/+0
| | | | llvm-svn: 80466
* - Add target lowering methods to get the preferred format for the FDE and LSDABill Wendling2009-08-291-17/+30
| | | | | | | | | encodings. - Make some of the values emitted by the FDEs dependent upon the pointer size. This is in line with how GCC does things. And it has the benefit of working for Darwin in 64-bit mode now. llvm-svn: 80428
* Add a form of EOL which emits the text version of a DWARF format encoding. ThisBill Wendling2009-08-291-0/+50
| | | | | | doesn't handle all values of the formatting. Those can be added as needed. llvm-svn: 80427
OpenPOWER on IntegriCloud