summaryrefslogtreecommitdiffstats
path: root/llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp
Commit message (Collapse)AuthorAgeFilesLines
...
* split inline asm support out to its own .cpp file.Chris Lattner2010-04-041-294/+1
| | | | llvm-svn: 100340
* inline processDebugLoc and simplify it.Chris Lattner2010-04-041-19/+7
| | | | llvm-svn: 100339
* minor tidying.Chris Lattner2010-04-041-15/+14
| | | | llvm-svn: 100338
* clean up the asmprinter interface a bit, rename a fewChris Lattner2010-04-041-15/+9
| | | | | | | | "Print" methods to "Emit". Emit is something that goes to an mc streamer, Print is something that goes to a raw_ostream (for inline asm) llvm-svn: 100337
* remove TargetMachine.h #include, also, TRI isn't used frequently Chris Lattner2010-04-041-3/+4
| | | | | | enough to warrant caching in AsmPrinter, so remove it. llvm-svn: 100336
* lazily allocate the GCMetadataPrinters map and remove DenseMapChris Lattner2010-04-041-10/+25
| | | | | | from the AsmPrinter interface. llvm-svn: 100331
* Momentous day: remove the "O" member from AsmPrinter. Now all Chris Lattner2010-04-041-4/+2
| | | | | | | | | | "asm printering" happens through MCStreamer. This also Streamerizes PIC16 debug info, which escaped my attention. This removes a leak from LLVMTargetMachine of the 'legacy' output stream. llvm-svn: 100327
* now that all operand printing happens to specified streams, we canChris Lattner2010-04-041-5/+0
| | | | | | | print function level inline asm with EmitInlineAsm instead of writing it directly to "O". llvm-svn: 100326
* remove the raw_ostream from various dwarf printing things.Chris Lattner2010-04-041-1/+1
| | | | | | | The only thing left is LEB printing, which uses EmitRawText for now. llvm-svn: 100325
* mcize the gc metadata printing stuff.Chris Lattner2010-04-041-2/+2
| | | | llvm-svn: 100324
* use EmitRawText instead of O in DwarfPrinter.Chris Lattner2010-04-041-1/+0
| | | | llvm-svn: 100323
* fix PrintAsmOperand and PrintAsmMemoryOperand to pass down Chris Lattner2010-04-041-4/+6
| | | | | | raw_ostream to print to. llvm-svn: 100313
* change this back tooChris Lattner2010-04-041-1/+1
| | | | llvm-svn: 100310
* check in what I tested. :(Chris Lattner2010-04-041-1/+1
| | | | llvm-svn: 100309
* MMI is always available, rename O -> OS in printInlineAsm.Chris Lattner2010-04-041-16/+16
| | | | llvm-svn: 100308
* change a ton of code to not implicitly use the "O" raw_ostreamChris Lattner2010-04-041-6/+6
| | | | | | member of AsmPrinter. Instead, pass it in explicitly. llvm-svn: 100306
* asmstreamerize the .size directive for function bodies, force clientsChris Lattner2010-04-031-10/+13
| | | | | | of printOffset to pass in a stream to print to. llvm-svn: 100296
* emit the cygwin stub thing through mcstreamer.Chris Lattner2010-04-031-4/+11
| | | | llvm-svn: 100295
* add a twine form of MCStreamer::EmitRawText, and mc'izeChris Lattner2010-04-031-16/+20
| | | | | | a few more things in AsmPrinter.cpp. llvm-svn: 100294
* start moving towards emitting inline asm statements with Chris Lattner2010-04-031-9/+35
| | | | | | | | EmitInlineAsm. However, this attempt is foiled by operands being emitted directly to "O" so I'll have to do some surgery and finish MCizing the world. llvm-svn: 100291
* add a new EmitInlineAsm function to asmprinter to handle inline asm.Chris Lattner2010-04-031-5/+19
| | | | | | | If we have an MCAsmStreamer, we continue to emit asm textually, otherwise we (currently) emit an error to errs and ignore it. llvm-svn: 100289
* mc'ize comment printing around file scope inline asm.Chris Lattner2010-04-031-5/+10
| | | | llvm-svn: 100288
* Switch the code generator (except the JIT) onto the new DebugLocChris Lattner2010-04-021-8/+6
| | | | | | | | | | | | | | | representation. This eliminates the 'DILocation' MDNodes for file/line/col tuples from -O0 -g codegen. This remove the old DebugLoc class, making it a typedef for DebugLoc, I'll rename NewDebugLoc next. I didn't update the JIT to use the new apis, so it will continue to work, but be as slow as before. Someone should eventually do this or, better yet, rip out the JIT debug info stuff and build the JIT on top of MC. llvm-svn: 100209
* Rip out the 'is temporary' nonsense from the MCContext interface toChris Lattner2010-03-301-7/+5
| | | | | | | | | 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
* Refactor code to push DILocation prcessing into DwarfDebug.cpp from ↵Devang Patel2010-03-291-17/+4
| | | | | | | | 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-281-4/+17
| | | | llvm-svn: 99778
* Refactoring. Push DILocation processing in to DwarfDebug from AsmPrinter.Devang Patel2010-03-281-17/+4
| | | | llvm-svn: 99772
* 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-151-0/+2
| | | | | | | | 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
* change the DBG_LABEL MachineInstr to always be createdChris Lattner2010-03-141-7/+1
| | | | | | with an MCSymbol instead of an immediate. llvm-svn: 98481
* switch GC_LABEL to use an MCSymbol operand instead of a label ID operand.Chris Lattner2010-03-141-3/+1
| | | | llvm-svn: 98474
* change the LabelSDNode to be EHLabelSDNode and make it holdChris Lattner2010-03-141-1/+6
| | | | | | | | 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
* 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
* remove gone method, grr symlinks.Chris Lattner2010-03-121-6/+0
| | | | llvm-svn: 98392
* inline the now-trivial implementation of GetGlobalValueSymbol intoChris Lattner2010-03-121-11/+8
| | | | | | some of its callers. llvm-svn: 98388
* give Mangler access to TargetData.Chris Lattner2010-03-121-1/+1
| | | | llvm-svn: 98378
* finally give Mangler a getSymbol method, which returns an MCSymbolChris Lattner2010-03-121-6/+1
| | | | | | for a global instead of messing around with string buffers. llvm-svn: 98366
* make the mangler take an MCContext instead of an MAI.Chris Lattner2010-03-121-1/+1
| | | | | | No functionality change. llvm-svn: 98363
* Add a new jump table encoding to indicate jump tables entriesRichard Osborne2010-03-111-0/+3
| | | | | | are inside the function by the target at the point of use. llvm-svn: 98255
* set the temporary bit on MCSymbols correctly.Chris Lattner2010-03-101-16/+19
| | | | llvm-svn: 98124
* reapply r98035:Chris Lattner2010-03-091-4/+3
| | | | | | | Now that setStartLabel takes an MCSymbol, we can de-ID'ize beginScope and RecordSourceLine. llvm-svn: 98047
* Speculatively revert r98035. It appears to have caused a set of buildbotEric Christopher2010-03-091-3/+4
| | | | | | failures. llvm-svn: 98039
* Now that setStartLabel takes an MCSymbol, we can de-ID'izeChris Lattner2010-03-091-4/+3
| | | | | | beginScope and RecordSourceLine. llvm-svn: 98035
OpenPOWER on IntegriCloud