aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Fix whitespace.Dan Gohman2010-07-161-2/+2
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108569 91177308-0d34-0410-b5e6-96231b3b80d8
* Consider this function:Bill Wendling2010-07-165-18/+39
| | | | | | | | | | | | | | | | | | | | | | | void foo() { __builtin_unreachable(); } It will output the following on Darwin X86: _func1: Leh_func_begin0: pushq %rbp Ltmp0: movq %rsp, %rbp Ltmp1: Leh_func_end0: This prolog adds a new Call Frame Information (CFI) row to the FDE with an address that is not within the address range of the code it describes -- part is equal to the end of the function -- and therefore results in an invalid EH frame. If we emit a nop in this situation, then the CFI row is now within the address range. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108568 91177308-0d34-0410-b5e6-96231b3b80d8
* Remove the isMoveInstr() hook.Jakob Stoklund Olesen2010-07-1628-630/+0
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108567 91177308-0d34-0410-b5e6-96231b3b80d8
* Avoid isMoveInstr when printing XCore pseudo-moves.Jakob Stoklund Olesen2010-07-161-7/+5
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108566 91177308-0d34-0410-b5e6-96231b3b80d8
* Use MI.isCopy.Jakob Stoklund Olesen2010-07-161-4/+2
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108565 91177308-0d34-0410-b5e6-96231b3b80d8
* Use a small local function for a single remaining late isMoveInstr call inJakob Stoklund Olesen2010-07-161-24/+42
| | | | | | Thumb2ITBlockPass. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108564 91177308-0d34-0410-b5e6-96231b3b80d8
* Rename DBG_LABEL PROLOG_LABEL, because it's only used during prolog emission andBill Wendling2010-07-1617-27/+29
| | | | | | | thus is a much more meaningful name. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108563 91177308-0d34-0410-b5e6-96231b3b80d8
* Keep valgrind quiet.Jakob Stoklund Olesen2010-07-161-1/+6
| | | | | | | The isLive() method can read uninitialized memory, but it still gives correct results. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108561 91177308-0d34-0410-b5e6-96231b3b80d8
* tidy upChris Lattner2010-07-162-77/+88
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108560 91177308-0d34-0410-b5e6-96231b3b80d8
* Remove remaining calls to TII::isMoveInstr.Jakob Stoklund Olesen2010-07-163-54/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108556 91177308-0d34-0410-b5e6-96231b3b80d8
* Emit COPY instead of FMR/FMSD instructions for floating point conversion onJakob Stoklund Olesen2010-07-162-12/+9
| | | | | | PowerPC. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108555 91177308-0d34-0410-b5e6-96231b3b80d8
* eliminate unlockedRefineAbstractTypeTo, types are all per-llvmcontext,Chris Lattner2010-07-164-18/+5
| | | | | | | so there is no locking involved in type refinement. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108553 91177308-0d34-0410-b5e6-96231b3b80d8
* get the first few tags from a precomputed table (count can be increased if ↵Gabor Greif2010-07-161-0/+9
| | | | | | desired) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108549 91177308-0d34-0410-b5e6-96231b3b80d8
* Add missing attributes to cpp backend.Eli Friedman2010-07-161-1/+9
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108547 91177308-0d34-0410-b5e6-96231b3b80d8
* Accept registers with P modifier. PR 5314.Dale Johannesen2010-07-161-0/+4
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108545 91177308-0d34-0410-b5e6-96231b3b80d8
* Make llvm-bcanalyzer print out the full enum name for all metadataDan Gohman2010-07-161-4/+4
| | | | | | | code ids, not just some of them. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108543 91177308-0d34-0410-b5e6-96231b3b80d8
* Teach PPCInstrInfo::storeRegToStackSlot and loadRegFromStackSlot to add memoryJakob Stoklund Olesen2010-07-161-0/+19
| | | | | | | | | operands. Hopefully this fixes the llvm-gcc-powerpc-darwin9 buildbot. It really shouldn't since missing memoperands should not affect correctness. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108540 91177308-0d34-0410-b5e6-96231b3b80d8
* Reorder the contents of various getAnalysisUsage functions, eliminatingDan Gohman2010-07-164-20/+23
| | | | | | | a redundant loopsimplify run from the default -O2 sequence. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108539 91177308-0d34-0410-b5e6-96231b3b80d8
* Revert r108369, sorting llvm.dbg.declare information by source position,Dan Gohman2010-07-165-34/+35
| | | | | | | | | | | | | | since it doesn't work for front-ends which don't emit column information (which includes llvm-gcc in its present configuration), and doesn't work for clang for K&R style variables where the variables are declared in a different order from the parameter list. Instead, make a separate pass through the instructions to collect the llvm.dbg.declare instructions in order. This ensures that the debug information for variables is emitted in this order. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108538 91177308-0d34-0410-b5e6-96231b3b80d8
* Remove the X86::FP_REG_KILL pseudo-instruction and the X86FloatingPointRegKillJakob Stoklund Olesen2010-07-168-315/+1
| | | | | | | | | pass that inserted it. It is no longer necessary to limit the live ranges of FP registers to a single basic block. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108536 91177308-0d34-0410-b5e6-96231b3b80d8
* Search for a free FP register instead of just assuming FP7 is not in use.Jakob Stoklund Olesen2010-07-161-6/+12
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108535 91177308-0d34-0410-b5e6-96231b3b80d8
* Remove the rest of my instcombine changes. Back to the drawing board on ↵Owen Anderson2010-07-161-28/+0
| | | | | | this one. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108530 91177308-0d34-0410-b5e6-96231b3b80d8
* Allow x87 FP registers to be alive globally in a function.Jakob Stoklund Olesen2010-07-162-37/+389
| | | | | | | | | | | | | | | | FP_REG_KILL instructions are still inserted, but can be disabled by passing -live-x87 to llc. The X87FPRegKillInserterPass is going to be removed shortly. CFG edges are partioned into bundles where the x87 stack must be allocated identically. Code is insertad at the end of each basic block that shuffles the live FP registers to match the outgoing bundles expectations. This fix is in preparation for some upcoming register allocator improvements that may extend the live range of registers beyond a basic block, similar to LICM. It also provides a nice runtime speedup if you are building with -mfpmath=387. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108529 91177308-0d34-0410-b5e6-96231b3b80d8
* Remove extraneous semicolons after member functionsDouglas Gregor2010-07-161-4/+4
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108525 91177308-0d34-0410-b5e6-96231b3b80d8
* Feed the right output into FileCheck.Benjamin Kramer2010-07-161-2/+2
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108523 91177308-0d34-0410-b5e6-96231b3b80d8
* eliminate CallInst::ArgOffsetGabor Greif2010-07-168-44/+37
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108522 91177308-0d34-0410-b5e6-96231b3b80d8
* Get rid of a bunch of duplicated ELF enum values.Eli Friedman2010-07-165-131/+41
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108520 91177308-0d34-0410-b5e6-96231b3b80d8
* A few more minor additions to ELF.h.Eli Friedman2010-07-161-0/+9
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108519 91177308-0d34-0410-b5e6-96231b3b80d8
* Remove bogus link.Eric Christopher2010-07-161-1/+0
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108518 91177308-0d34-0410-b5e6-96231b3b80d8
* Arrays and vectors with different numbers of elements are not equivalent.Nick Lewycky2010-07-162-4/+28
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108517 91177308-0d34-0410-b5e6-96231b3b80d8
* Remove unnecessary conditional.Eric Christopher2010-07-161-2/+0
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108516 91177308-0d34-0410-b5e6-96231b3b80d8
* LoopSimplify does not update domfrontier correctly.Tobias Grosser2010-07-162-2/+22
| | | | | | This fixes PR7649. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108513 91177308-0d34-0410-b5e6-96231b3b80d8
* Add dump() to DominanceFrontierTobias Grosser2010-07-162-0/+8
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108512 91177308-0d34-0410-b5e6-96231b3b80d8
* Remove many calls to TII::isMoveInstr. Targets should be producing COPY anyway.Jakob Stoklund Olesen2010-07-1615-228/+74
| | | | | | TII::isMoveInstr is going tobe completely removed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108507 91177308-0d34-0410-b5e6-96231b3b80d8
* Add forgotten test case.Jakob Stoklund Olesen2010-07-161-0/+28
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108506 91177308-0d34-0410-b5e6-96231b3b80d8
* Use the source-order scheduler instead of the "fast" scheduler at -O0,Dan Gohman2010-07-163-4/+4
| | | | | | | | because it's more likely to keep debug line information in its original order. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108496 91177308-0d34-0410-b5e6-96231b3b80d8
* build/Darwin: Add an LLVM_LTO_VERSION_OFFSET make variable to allow offsettingDaniel Dunbar2010-07-161-1/+9
| | | | | | the libLTO library version from the actual build version. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108495 91177308-0d34-0410-b5e6-96231b3b80d8
* Also revert 108422, it's causing some test failures.Eric Christopher2010-07-162-34/+0
| | | | | | | Working on testcases for Owen. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108494 91177308-0d34-0410-b5e6-96231b3b80d8
* build/Clang: Build and install libLTO as part of clang-only/install-clang ↵Daniel Dunbar2010-07-161-2/+4
| | | | | | targets. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108493 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix this test.Dan Gohman2010-07-161-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108491 91177308-0d34-0410-b5e6-96231b3b80d8
* The SelectionDAGBuilder's handling of debug info, on rareDale Johannesen2010-07-163-12/+207
| | | | | | | | | | | | occasions, caused code to be generated in a different order. All cases I've seen involved float softening in the type legalizer, and this could be perhaps be fixed there, but it's better not to generate things differently in the first place. 7797940 (6/29/2010..7/15/2010). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108484 91177308-0d34-0410-b5e6-96231b3b80d8
* Revert. This isn't the correct way to go.Bill Wendling2010-07-154-27/+4
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108478 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix the order that SCEVExpander considers add operands in so thatDan Gohman2010-07-152-2/+54
| | | | | | | | it doesn't miss an opportunity to form a GEP, regardless of the relative loop depths of the operands. This fixes rdar://8197217. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108475 91177308-0d34-0410-b5e6-96231b3b80d8
* Handle code gen for the unreachable instruction if it's the only instruction inBill Wendling2010-07-154-4/+27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | the function. We'll just turn it into a "trap" instruction instead. The problem with not handling this is that it might generate a prologue without the equivalent epilogue to go with it: $ cat t.ll define void @foo() { entry: unreachable } $ llc -o - t.ll -relocation-model=pic -disable-fp-elim -unwind-tables .section __TEXT,__text,regular,pure_instructions .globl _foo .align 4, 0x90 _foo: ## @foo Leh_func_begin0: ## BB#0: ## %entry pushq %rbp Ltmp0: movq %rsp, %rbp Ltmp1: Leh_func_end0: ... The unwind tables then have bad data in them causing all sorts of problems. Fixes <rdar://problem/8096481>. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108473 91177308-0d34-0410-b5e6-96231b3b80d8
* Split -enable-finite-only-fp-math to two options:Evan Cheng2010-07-1511-38/+39
| | | | | | | -enable-no-nans-fp-math and -enable-no-infs-fp-math. All of the current codegen fp math optimizations only care whether the fp arithmetics arguments and results can never be NaN. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108465 91177308-0d34-0410-b5e6-96231b3b80d8
* build/Darwin: Add a missing directory dependency.Daniel Dunbar2010-07-151-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108463 91177308-0d34-0410-b5e6-96231b3b80d8
* remove some unneeded overloads that were causing Chris Lattner2010-07-151-20/+0
| | | | | | | ambiguity problems on some systems. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108462 91177308-0d34-0410-b5e6-96231b3b80d8
* fix the definitions of ConstTextCoalSection/ConstDataCoalSectionChris Lattner2010-07-152-4/+5
| | | | | | | | | | | | | to keep "Text" in sync with the "pure instructions" section attribute. Lack of this attribute was preventing the assembler from emitting multibyte noops instructions for templates (and inlines, and other coalesced stuff) and was causing the assembler to mismatch .o files. This fixes rdar://8018335 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108461 91177308-0d34-0410-b5e6-96231b3b80d8
* fix indentation and 80 colsChris Lattner2010-07-151-2/+3
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108460 91177308-0d34-0410-b5e6-96231b3b80d8
* Revert 108456. i.e. bring back r108444.Devang Patel2010-07-151-0/+21
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108458 91177308-0d34-0410-b5e6-96231b3b80d8