mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-07-22 09:29:31 +00:00
This should hopefully have fixed the stage2/stage3 miscompare on the dragonegg testers. "LoopVectorize: Use the dependence test utility class We now no longer need alias analysis - the cases that alias analysis would handle are now handled as accesses with a large dependence distance. We can now vectorize loops with simple constant dependence distances. for (i = 8; i < 256; ++i) { a[i] = a[i+4] * a[i+8]; } for (i = 8; i < 256; ++i) { a[i] = a[i-4] * a[i-8]; } We would be able to vectorize about 200 more loops (in many cases the cost model instructs us no to) in the test suite now. Results on x86-64 are a wash. I have seen one degradation in ammp. Interestingly, the function in which we now vectorize a loop is never executed so we probably see some instruction cache effects. There is a 2% improvement in h264ref. There is one or the other TSCV loop kernel that speeds up. radar://13681598" git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184724 91177308-0d34-0410-b5e6-96231b3b80d8 |
||
---|---|---|
.. | ||
ARM | ||
X86 | ||
12-12-11-if-conv.ll | ||
2012-10-20-infloop.ll | ||
2012-10-22-isconsec.ll | ||
bsd_regex.ll | ||
bzip_reverse_loops.ll | ||
calloc.ll | ||
cast-induction.ll | ||
cpp-new-array.ll | ||
dbg.value.ll | ||
flags.ll | ||
float-reduction.ll | ||
gcc-examples.ll | ||
global_alias.ll | ||
hoist-loads.ll | ||
i8-induction.ll | ||
if-conv-crash.ll | ||
if-conversion-nest.ll | ||
if-conversion-reduction.ll | ||
if-conversion.ll | ||
increment.ll | ||
induction_plus.ll | ||
induction.ll | ||
infiniteloop.ll | ||
intrinsic.ll | ||
lcssa-crash.ll | ||
lit.local.cfg | ||
memdep.ll | ||
metadata-unroll.ll | ||
metadata-width.ll | ||
minmax_reduction.ll | ||
multiple-address-spaces.ll | ||
no_idiv_reduction.ll | ||
no_int_induction.ll | ||
no_outside_user.ll | ||
nofloat.ll | ||
non-const-n.ll | ||
nsw-crash.ll | ||
phi-hang.ll | ||
ptr_loops.ll | ||
read-only.ll | ||
reduction.ll | ||
reverse_induction.ll | ||
reverse_iter.ll | ||
runtime-check-readonly.ll | ||
runtime-check.ll | ||
runtime-limit.ll | ||
same-base-access.ll | ||
scalar-select.ll | ||
simple-unroll.ll | ||
small-loop.ll | ||
start-non-zero.ll | ||
struct_access.ll | ||
value-ptr-bug.ll | ||
vectorize-once.ll | ||
write-only.ll |