| Commit message (Collapse) | Author | Age | Files | Lines |
| ... | |
| |
|
|
| |
llvm-svn: 108567
|
| |
|
|
| |
llvm-svn: 108566
|
| |
|
|
| |
llvm-svn: 108565
|
| |
|
|
|
|
| |
Thumb2ITBlockPass.
llvm-svn: 108564
|
| |
|
|
|
|
| |
thus is a much more meaningful name.
llvm-svn: 108563
|
| |
|
|
|
|
|
| |
The isLive() method can read uninitialized memory, but it still gives correct
results.
llvm-svn: 108561
|
| |
|
|
| |
llvm-svn: 108560
|
| |
|
|
| |
llvm-svn: 108556
|
| |
|
|
|
|
| |
PowerPC.
llvm-svn: 108555
|
| |
|
|
|
|
| |
so there is no locking involved in type refinement.
llvm-svn: 108553
|
| |
|
|
|
|
| |
desired)
llvm-svn: 108549
|
| |
|
|
| |
llvm-svn: 108547
|
| |
|
|
| |
llvm-svn: 108545
|
| |
|
|
|
|
|
|
|
| |
operands.
Hopefully this fixes the llvm-gcc-powerpc-darwin9 buildbot. It really shouldn't
since missing memoperands should not affect correctness.
llvm-svn: 108540
|
| |
|
|
|
|
| |
a redundant loopsimplify run from the default -O2 sequence.
llvm-svn: 108539
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
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.
llvm-svn: 108538
|
| |
|
|
|
|
|
|
|
| |
pass that inserted it.
It is no longer necessary to limit the live ranges of FP registers to a single
basic block.
llvm-svn: 108536
|
| |
|
|
| |
llvm-svn: 108535
|
| |
|
|
|
|
| |
this one.
llvm-svn: 108530
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
llvm-svn: 108529
|
| |
|
|
| |
llvm-svn: 108522
|
| |
|
|
| |
llvm-svn: 108520
|
| |
|
|
| |
llvm-svn: 108517
|
| |
|
|
|
|
| |
This fixes PR7649.
llvm-svn: 108513
|
| |
|
|
| |
llvm-svn: 108512
|
| |
|
|
|
|
| |
TII::isMoveInstr is going tobe completely removed.
llvm-svn: 108507
|
| |
|
|
|
|
|
| |
because it's more likely to keep debug line information in its original
order.
llvm-svn: 108496
|
| |
|
|
|
|
| |
Working on testcases for Owen.
llvm-svn: 108494
|
| |
|
|
|
|
|
|
|
|
| |
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).
llvm-svn: 108484
|
| |
|
|
| |
llvm-svn: 108478
|
| |
|
|
|
|
|
| |
it doesn't miss an opportunity to form a GEP, regardless of the
relative loop depths of the operands. This fixes rdar://8197217.
llvm-svn: 108475
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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>.
llvm-svn: 108473
|
| |
|
|
|
|
| |
-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.
llvm-svn: 108465
|
| |
|
|
|
|
|
|
|
|
|
| |
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
llvm-svn: 108461
|
| |
|
|
| |
llvm-svn: 108460
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
different widths. In a use with a narrower fixup, formulae
may be wider than the fixup, in which case the high bits
aren't necessarily meaningful, so it isn't safe to reuse
them for uses with wider fixups.
This fixes PR7618, though the testcase is too large for a
reasonable regression test, since it heavily dependes on
hitting LSR's heuristics in a certain way.
llvm-svn: 108455
|
| |
|
|
|
|
|
|
| |
this fixes rdar://8192860. Unfortunately it can only be triggered
with llc because llvm-mc matches another (correctly encoded) version
of this, so no testcase.
llvm-svn: 108454
|
| |
|
|
| |
llvm-svn: 108453
|
| |
|
|
| |
llvm-svn: 108452
|
| |
|
|
|
|
| |
This helps LSR behave more consistently on bugpoint-reduced testcases.
llvm-svn: 108451
|
| |
|
|
| |
llvm-svn: 108450
|
| |
|
|
|
|
| |
make sure to allocate enough space in the std::vector.
llvm-svn: 108449
|
| |
|
|
| |
llvm-svn: 108448
|
| |
|
|
| |
llvm-svn: 108441
|
| |
|
|
| |
llvm-svn: 108440
|
| |
|
|
| |
llvm-svn: 108438
|
| |
|
|
| |
llvm-svn: 108436
|
| |
|
|
|
|
|
|
| |
the corresponding or-icmp-and pattern. This has the added benefit of doing
the matching earlier, and thus being less susceptible to being confused by
earlier transforms.
llvm-svn: 108429
|
| |
|
|
| |
llvm-svn: 108427
|
| |
|
|
|
|
|
| |
a zero. This situation arrises in Fortran code with induction variables
that start at 1 instead of 0. This fixes PR7651.
llvm-svn: 108424
|