| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
| |
llvm-svn: 66850
|
| |
|
|
|
|
| |
to the stack. This shrinks all llvm tools by 9k, and improves reentrancy.
llvm-svn: 66847
|
| |
|
|
| |
llvm-svn: 66845
|
| |
|
|
| |
llvm-svn: 66843
|
| |
|
|
|
|
|
|
| |
right; did the wrong thing when there are exactly 11
non-debug instructions, followed by debug info.
Remove a FIXME since it's apparently been fixed along the way.
llvm-svn: 66840
|
| |
|
|
| |
llvm-svn: 66839
|
| |
|
|
| |
llvm-svn: 66838
|
| |
|
|
|
|
| |
single character writes.
llvm-svn: 66827
|
| |
|
|
|
|
|
|
|
|
|
| |
in the Ada testcase. Reverting this only covers up
the real problem, which is a nasty conceptual difficulty
in the phi elimination pass: when eliminating phi nodes
in landing pads, the register copies need to come before
the invoke, not at the end of the basic block which is
too late... See PR3784.
llvm-svn: 66826
|
| |
|
|
| |
llvm-svn: 66825
|
| |
|
|
|
|
| |
sorting of ConstantInt's; unreinvent wheel.
llvm-svn: 66824
|
| |
|
|
|
|
|
|
| |
refers to the "prefix" directory, i.e., one level above "bin". LLVMGCCPATH
is used as the directory containing the llvm-gcc executable, so add a "/bin"
suffix to get from LLVMGCCDIR to LLVMGCCPATH.
llvm-svn: 66823
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
access each with a fixed negative index from op_end().
This has two important implications:
- getUser() will work faster, because there are less iterations
for the waymarking algorithm to perform. This is important
when running various analyses that want to determine callers
of basic blocks.
- getSuccessor() now runs faster, because the indirection via OperandList
is not necessary: Uses corresponding to the successors are at fixed
offset to "this".
The price we pay is the slightly more complicated logic in the operator
User::delete, as it has to pick up the information whether it has to free
the memory of an original unconditional BranchInst or a BranchInst that
was originally conditional, but has been shortened to unconditional.
I was not able to come up with a nicer solution to this problem. (And
rest assured, I tried *a lot*).
Similar reorderings will follow for InvokeInst and CallInst. After that
some optimizations to pred_iterator and CallSite will fall out naturally.
llvm-svn: 66815
|
| |
|
|
|
|
| |
assembly. 2. Fixed JIT encoding by making the address pc-relative.
llvm-svn: 66803
|
| |
|
|
| |
llvm-svn: 66800
|
| |
|
|
| |
llvm-svn: 66798
|
| |
|
|
| |
llvm-svn: 66797
|
| |
|
|
| |
llvm-svn: 66795
|
| |
|
|
| |
llvm-svn: 66791
|
| |
|
|
| |
llvm-svn: 66790
|
| |
|
|
| |
llvm-svn: 66788
|
| |
|
|
| |
llvm-svn: 66780
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
related transformations out of target-specific dag combine into the
ARM backend. These were added by Evan in r37685 with no testcases
and only seems to help ARM (e.g. test/CodeGen/ARM/select_xform.ll).
Add some simple X86-specific (for now) DAG combines that turn things
like cond ? 8 : 0 -> (zext(cond) << 3). This happens frequently
with the recently added cp constant select optimization, but is a
very general xform. For example, we now compile the second example
in const-select.ll to:
_test:
movsd LCPI2_0, %xmm0
ucomisd 8(%esp), %xmm0
seta %al
movzbl %al, %eax
movl 4(%esp), %ecx
movsbl (%ecx,%eax,4), %eax
ret
instead of:
_test:
movl 4(%esp), %eax
leal 4(%eax), %ecx
movsd LCPI2_0, %xmm0
ucomisd 8(%esp), %xmm0
cmovbe %eax, %ecx
movsbl (%ecx), %eax
ret
This passes multisource and dejagnu.
llvm-svn: 66779
|
| |
|
|
| |
llvm-svn: 66778
|
| |
|
|
|
|
| |
one bits information for values that are live out of basic blocks. The goal is to eliminate unnecessary sext, zext, truncate of values that are live-in to blocks. This does not handle PHI nodes yet.
llvm-svn: 66777
|
| |
|
|
|
|
| |
double load and store instead.
llvm-svn: 66776
|
| |
|
|
| |
llvm-svn: 66775
|
| |
|
|
| |
llvm-svn: 66773
|
| |
|
|
| |
llvm-svn: 66770
|
| |
|
|
| |
llvm-svn: 66766
|
| |
|
|
|
|
| |
Remove the explicit if OS = Darwin test around the setting of -m32/-m64.
llvm-svn: 66765
|
| |
|
|
| |
llvm-svn: 66763
|
| |
|
|
|
|
| |
symbols in one section will always be put into one bank.
llvm-svn: 66761
|
| |
|
|
| |
llvm-svn: 66751
|
| |
|
|
| |
llvm-svn: 66750
|
| |
|
|
|
|
|
|
|
| |
from a switch table. Multiple table entries that
branch to the same place were being sorted by the
pointer value of the ConstantInt*; changed to sort
by the actual value of the ConstantInt.
llvm-svn: 66749
|
| |
|
|
| |
llvm-svn: 66746
|
| |
|
|
|
|
| |
assembly text output uses an indirect call ("call *") instead of a direct call.
llvm-svn: 66735
|
| |
|
|
| |
llvm-svn: 66733
|
| |
|
|
| |
llvm-svn: 66725
|
| |
|
|
|
|
| |
No (intended) functionality change.
llvm-svn: 66720
|
| |
|
|
|
|
| |
floating point instructions that are explicitly specified by the user.
llvm-svn: 66719
|
| |
|
|
|
|
|
|
| |
allocations. Apparently the assumption is there is an
instruction (terminator?) following the allocation so I
am allowing the same assumption.
llvm-svn: 66716
|
| |
|
|
|
|
| |
optimization too late and left the live intervals to be out of sync with instructions. This fixes 8b10b.
llvm-svn: 66715
|
| |
|
|
|
|
| |
for a dependency, not terminate the search.
llvm-svn: 66709
|
| |
|
|
| |
llvm-svn: 66708
|
| |
|
|
|
|
| |
functionality change.
llvm-svn: 66700
|
| |
|
|
| |
llvm-svn: 66699
|
| |
|
|
| |
llvm-svn: 66697
|
| |
|
|
| |
llvm-svn: 66692
|