| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
|
|
|
| |
shift.
- Add a readme entry for a missing vector_shuffle optimization that results in
awful codegen.
llvm-svn: 52740
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
For this it is convenient to permit floats to
be used with EXTRACT_ELEMENT, so I tweaked
things to allow that. I also added libcalls
for ppcf128 to i32 forms of FP_TO_XINT, since
they exist in libgcc and this case can certainly
occur (and does occur in the testsuite) - before
the i64 libcall was being used. Also, the
XINT_TO_FP result seemed to be wrong when
the argument is an i128: the wrong fudge
factor was added (the i32 and i64 cases were
handled directly, but the i128 code fell
through to some generic softening code which
seemed to think it was i64 to f32!). So I
fixed it by adding a fudge factor that I
found in my breakfast cereal.
llvm-svn: 52739
|
|
|
|
| |
llvm-svn: 52738
|
|
|
|
| |
llvm-svn: 52736
|
|
|
|
|
|
|
| |
InvalidateInstructionCache method instead of calling through
a hook on the JIT. This is a host feature, not a target feature.
llvm-svn: 52734
|
|
|
|
| |
llvm-svn: 52733
|
|
|
|
| |
llvm-svn: 52731
|
|
|
|
| |
llvm-svn: 52725
|
|
|
|
|
|
|
|
| |
select_cc and friends. This code could be
factorized a bit but I'm not sure that it's
worth it.
llvm-svn: 52724
|
|
|
|
| |
llvm-svn: 52723
|
|
|
|
|
|
| |
the base SDNode's VTList.
llvm-svn: 52722
|
|
|
|
|
|
|
|
| |
Added abstract class MemSDNode for any Node that have an associated MemOperand
Changed atomic.lcs => atomic.cmp.swap, atomic.las => atomic.load.add, and
atomic.lss => atomic.load.sub
llvm-svn: 52706
|
|
|
|
| |
llvm-svn: 52705
|
|
|
|
| |
llvm-svn: 52704
|
|
|
|
|
|
| |
- Avoid speculatively execute vector ops.
llvm-svn: 52703
|
|
|
|
| |
llvm-svn: 52702
|
|
|
|
| |
llvm-svn: 52701
|
|
|
|
|
|
|
|
| |
Unfortunately, this slow the testcase down a little bit,
but only marginally.
llvm-svn: 52700
|
|
|
|
|
|
|
|
| |
of after, so that any reallocation it does doesn't get counted for the pass
being timed. This probably doesn't account for a timing discrepancy I was
looking into, but I'm fixing it anyway.
llvm-svn: 52693
|
|
|
|
|
|
|
| |
load,store,call,return,bitcast. This is enough to
make call and return work.
llvm-svn: 52691
|
|
|
|
|
|
|
|
| |
advance so we can pre-allocate it and just fill in
the entries. This improves the time for the AsmPrinter on InstructionCombining.cpp from 0.4248s to 0.3370s.
llvm-svn: 52690
|
|
|
|
| |
llvm-svn: 52689
|
|
|
|
| |
llvm-svn: 52688
|
|
|
|
| |
llvm-svn: 52687
|
|
|
|
| |
llvm-svn: 52684
|
|
|
|
|
|
|
|
| |
failures fixed.
Also add a testcase to reproduce the gcc bootstrap failure in very much reduced form.
llvm-svn: 52677
|
|
|
|
| |
llvm-svn: 52672
|
|
|
|
|
|
| |
instead of using the longer MOV32ri instruction.
llvm-svn: 52670
|
|
|
|
| |
llvm-svn: 52664
|
|
|
|
| |
llvm-svn: 52663
|
|
|
|
|
|
|
| |
general solution possible, but it's a fairly simple one.
Based on a patch from the OpenGTL project!
llvm-svn: 52662
|
|
|
|
|
|
| |
as a questionable case, but the code isn't actually needed.
llvm-svn: 52657
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
,------.
| |
| v
| t2 = phi ... t1 ...
| |
| v
| t1 = ...
| ... = ... t1 ...
| |
`------'
where there is a use in a PHI node that's a predecessor to the defining
block. We don't want to mark all predecessors as having the value "alive" in
this case. Also, the assert was too restrictive and didn't handle this case.
llvm-svn: 52655
|
|
|
|
|
|
| |
needs arbitrary-element removal.
llvm-svn: 52654
|
|
|
|
| |
llvm-svn: 52651
|
|
|
|
|
|
| |
instruction in the block.
llvm-svn: 52649
|
|
|
|
| |
llvm-svn: 52648
|
|
|
|
|
|
|
|
| |
in the presence of out-of-loop users of in-loop values and the trip
count is not a known multiple of the unroll count, and to be a bit
simpler overall. This fixes PR2253.
llvm-svn: 52645
|
|
|
|
|
|
| |
stack coloring is now bug free.
llvm-svn: 52644
|
|
|
|
| |
llvm-svn: 52643
|
|
|
|
|
|
|
| |
clear() on each iteration. This avoids allocating and deallocating
all of DenseMap's memory on each iteration.
llvm-svn: 52642
|
|
|
|
|
|
| |
top bit of 'reg' instead. If the top bit is set, than the LiveInterval represents a stack slot live interval.
llvm-svn: 52639
|
|
|
|
|
|
|
|
| |
multiplicative inverse of a given number. Modify udivrem to allow input and
output pairs of arguments to overlap. Patch is based on the work by Chandler
Carruth.
llvm-svn: 52638
|
|
|
|
| |
llvm-svn: 52637
|
|
|
|
|
|
| |
explaining why empty array constants use ValID::createUndef().
llvm-svn: 52636
|
|
|
|
|
|
|
|
| |
correct our preserved analyses list, since we
do now change the CFG by splitting critical edges during PRE.
llvm-svn: 52631
|
|
|
|
| |
llvm-svn: 52630
|
|
|
|
|
|
| |
private implementation doesn't really need the convenience.
llvm-svn: 52629
|
|
|
|
| |
llvm-svn: 52628
|
|
|
|
|
|
| |
copying its return value.
llvm-svn: 52627
|