aboutsummaryrefslogtreecommitdiffstats
path: root/lib/CodeGen
Commit message (Collapse)AuthorAgeFilesLines
* Use getFirstTerminator().Bill Wendling2010-03-161-4/+4
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98604 91177308-0d34-0410-b5e6-96231b3b80d8
* When checking if something's killed, don't rely simply on whether it's marked asBill Wendling2010-03-161-8/+15
| | | | | | | | "used outside of the block". If the block ends in a return, then it won't be used outside of it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98599 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix the third (and last known) case of code update problems due Chris Lattner2010-03-162-28/+122
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98595 91177308-0d34-0410-b5e6-96231b3b80d8
* Now that the default for Darwin platforms is to place the LSDA into the TEXTBill Wendling2010-03-151-3/+3
| | | | | | | section, remove the target-specific code that performs this. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98580 91177308-0d34-0410-b5e6-96231b3b80d8
* Implement support for the case when a reference to a addr-of-bb Chris Lattner2010-03-152-6/+69
| | | | | | | | | | | 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. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98579 91177308-0d34-0410-b5e6-96231b3b80d8
* use Mang->getSymbol() more.Chris Lattner2010-03-151-35/+17
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98577 91177308-0d34-0410-b5e6-96231b3b80d8
* Create SDDbgValue for dbg_value intrinsics and remember its connections with ↵Devang Patel2010-03-151-5/+28
| | | | | | | | | | DAG nodes. This is a work in progress. Patch by Dale Johannesen! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98568 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix the case when a reference to an address taken BB is emitted in oneChris Lattner2010-03-151-6/+110
| | | | | | | | | function, then the BB is RAUW'd before the definition is emitted. There are still two cases not being handled, but this should improve us back to the situation before I touched anything. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98566 91177308-0d34-0410-b5e6-96231b3b80d8
* revert r98550, it isn't necessary or sufficient.Chris Lattner2010-03-151-15/+3
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98558 91177308-0d34-0410-b5e6-96231b3b80d8
* Emit dwarf variable info communicated by code generator through DBG_VALUE ↵Devang Patel2010-03-154-14/+107
| | | | | | | | | machine instructions. This is a work in progress. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98556 91177308-0d34-0410-b5e6-96231b3b80d8
* don't eliminate address-taken blocks here.Chris Lattner2010-03-151-3/+15
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98550 91177308-0d34-0410-b5e6-96231b3b80d8
* SIGN_EXTEND from the same type as the dest is valid.Chris Lattner2010-03-151-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98548 91177308-0d34-0410-b5e6-96231b3b80d8
* sink the call to VT.getSizeInBits() down into its uses,Chris Lattner2010-03-151-7/+5
| | | | | | | not all unary nodes necessarily have a simple result type. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98547 91177308-0d34-0410-b5e6-96231b3b80d8
* fix MCSectionELF to not leak memory, just like I did for MCSymbol.Chris Lattner2010-03-151-4/+6
| | | | | | | | | MCSectionMachO is already fine (yay for fixed size arrays?), MCSectionCOFF still leaks. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98537 91177308-0d34-0410-b5e6-96231b3b80d8
* remove dead method.Chris Lattner2010-03-151-7/+0
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98526 91177308-0d34-0410-b5e6-96231b3b80d8
* Remove pointless forward declaration, MSVC got confused by this.Benjamin Kramer2010-03-141-1/+0
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98519 91177308-0d34-0410-b5e6-96231b3b80d8
* Turn calls to copysignl into an FCOPYSIGN node. Handle FCOPYSIGN nodesDuncan Sands2010-03-144-1/+18
| | | | | | | | with ppc_f128 type by having the type legalizer turn these back into a call to copysignl. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98514 91177308-0d34-0410-b5e6-96231b3b80d8
* Rename SDDbgValue.h to SDNodeDbgValue.h for consistency.Evan Cheng2010-03-144-6/+6
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98513 91177308-0d34-0410-b5e6-96231b3b80d8
* fix ShrinkDemandedOps to not leave dead nodes around,Chris Lattner2010-03-141-0/+6
| | | | | | | fixing PR6607 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98512 91177308-0d34-0410-b5e6-96231b3b80d8
* rewrite ShrinkDemandedOps to be faster and indent less,Chris Lattner2010-03-141-48/+64
| | | | | | | no functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98511 91177308-0d34-0410-b5e6-96231b3b80d8
* make -view-isel-dags print after the 'ShrinkDemandedOps' pass.Chris Lattner2010-03-141-2/+2
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98509 91177308-0d34-0410-b5e6-96231b3b80d8
* Make default expansion for FP16 <-> FP32 nodes into libcallsAnton Korobeynikov2010-03-146-0/+47
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98501 91177308-0d34-0410-b5e6-96231b3b80d8
* Add DAG nodes to represent FP16 <-> FP32 intrinsicsAnton Korobeynikov2010-03-141-0/+8
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98500 91177308-0d34-0410-b5e6-96231b3b80d8
* fix AsmPrinter::GetBlockAddressSymbol to always return a uniqueChris Lattner2010-03-143-21/+18
| | | | | | | | label instead of trying to form one based on the BB name (which causes collisions if the name is empty). This fixes PR6608 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98495 91177308-0d34-0410-b5e6-96231b3b80d8
* get MMI out of the label uniquing business, just go to MCContextChris Lattner2010-03-144-14/+6
| | | | | | | to get unique assembler temporary labels. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98489 91177308-0d34-0410-b5e6-96231b3b80d8
* don't use getDWLabel("label" anymore, always go through MMI.Chris Lattner2010-03-141-2/+2
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98485 91177308-0d34-0410-b5e6-96231b3b80d8
* remove now-dead code, all labels use MCSymbols.Chris Lattner2010-03-141-10/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98484 91177308-0d34-0410-b5e6-96231b3b80d8
* change SrcLineInfo to contain a label instead of a label ID.Chris Lattner2010-03-142-9/+7
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98483 91177308-0d34-0410-b5e6-96231b3b80d8
* 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. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98482 91177308-0d34-0410-b5e6-96231b3b80d8
* change the DBG_LABEL MachineInstr to always be createdChris Lattner2010-03-141-7/+1
| | | | | | | with an MCSymbol instead of an immediate. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98481 91177308-0d34-0410-b5e6-96231b3b80d8
* unbreak the build, grr symlinks.Chris Lattner2010-03-141-3/+3
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98477 91177308-0d34-0410-b5e6-96231b3b80d8
* Change this code to allocate temporary labels from mccontext,Chris Lattner2010-03-141-1/+1
| | | | | | | not from MMI. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98475 91177308-0d34-0410-b5e6-96231b3b80d8
* switch GC_LABEL to use an MCSymbol operand instead of a label ID operand.Chris Lattner2010-03-144-36/+33
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98474 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix some EH failures on NNT I introduced in r98461Chris Lattner2010-03-141-4/+6
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98471 91177308-0d34-0410-b5e6-96231b3b80d8
* fix a bug I introduced in r98459, causing some NNT failures.Chris Lattner2010-03-141-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98470 91177308-0d34-0410-b5e6-96231b3b80d8
* change the LabelSDNode to be EHLabelSDNode and make it holdChris Lattner2010-03-147-37/+42
| | | | | | | | | 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". git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98463 91177308-0d34-0410-b5e6-96231b3b80d8
* eliminate InvalidateLabel and LabelIDList from MMI and replaceChris Lattner2010-03-144-38/+4
| | | | | | | them with a counter. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98462 91177308-0d34-0410-b5e6-96231b3b80d8
* 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. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98461 91177308-0d34-0410-b5e6-96231b3b80d8
* change EH related stuff (other than EH_LABEL) to use MCSymbolChris Lattner2010-03-145-82/+72
| | | | | | | | | | | | | | | | | | 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. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98459 91177308-0d34-0410-b5e6-96231b3b80d8
* eliminate the now-unneeded context argument of MBB::getSymbol()Chris Lattner2010-03-132-8/+9
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98451 91177308-0d34-0410-b5e6-96231b3b80d8
* rearrange MCContext ownership. Before LLVMTargetMachine created it Chris Lattner2010-03-135-37/+50
| | | | | | | | | | | | | 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. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98450 91177308-0d34-0410-b5e6-96231b3b80d8
* add support for MCSymbols as operands to MachineInstrs.Chris Lattner2010-03-131-25/+34
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98433 91177308-0d34-0410-b5e6-96231b3b80d8
* 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. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98432 91177308-0d34-0410-b5e6-96231b3b80d8
* factor some labels, simplify some code.Chris Lattner2010-03-133-14/+15
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98429 91177308-0d34-0410-b5e6-96231b3b80d8
* various cleanups.Chris Lattner2010-03-131-16/+17
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98426 91177308-0d34-0410-b5e6-96231b3b80d8
* reimplement the string pool used for inlined functionChris Lattner2010-03-132-23/+38
| | | | | | | entries to not thrash std::strings and MCSymbols. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98415 91177308-0d34-0410-b5e6-96231b3b80d8
* remove gone method, grr symlinks.Chris Lattner2010-03-121-6/+0
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98392 91177308-0d34-0410-b5e6-96231b3b80d8
* inline the now-trivial implementation of GetGlobalValueSymbol intoChris Lattner2010-03-122-13/+10
| | | | | | | some of its callers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98388 91177308-0d34-0410-b5e6-96231b3b80d8
* give Mangler access to TargetData.Chris Lattner2010-03-122-2/+2
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98378 91177308-0d34-0410-b5e6-96231b3b80d8
* 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. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98366 91177308-0d34-0410-b5e6-96231b3b80d8