Go to file
Andrew Trick b6d56be69d Fix the ExecutionDepsFix pass to handle AVX instructions.
This pass is needed to break false dependencies. Without it, unlucky
register assignment can result in wild (5x) swings in
performance. This pass was trying to handle AVX but not getting it
right. AVX doesn't have partial register defs, it has unused register
reads in which the high bits of a source operand are copied into the
unused bits of the dest.

Fixing this requires conservative liveness analysis. This is awkard
because the pass already has its own pseudo-liveness. However, proper
liveness is expensive, and we would like to use a generic utility to
compute it. The fix only invokes liveness on-demand. It is rare to
detect a case that needs undef-read dependence breaking, but when it
happens, it can be needed many times within a very large block.

I think the existing heuristic which uses a register window of 16 is
too conservative for loop-carried false dependencies. If the loop is a
reduction. The out-of-order engine may be able to execute several loop
iterations in parallel. However, I'll leave this tuning exercise for
next time.

llvm-svn: 192635
2013-10-14 22:19:03 +00:00
clang PR17576: Fix assertion on polymorphic classes with small alignment 2013-10-14 21:14:05 +00:00
clang-tools-extra Reverted Test commit; added new line to the end of README.txt 2013-10-12 20:43:36 +00:00
compiler-rt [msan] Test for r192599. 2013-10-14 15:17:05 +00:00
debuginfo-tests don't use CHECK-NEXT because it may be on the same line. 2013-09-18 23:01:54 +00:00
libclc Port pocl's gen_convert.py script to libclc 2013-10-10 19:09:01 +00:00
libcxx r192075 broke the buildbot at 2013-10-14 18:02:02 +00:00
libcxxabi [unwind] Fix unw_init_remote_thread() use to void* instead of thread_t for parameter to match other implementations 2013-10-08 22:59:34 +00:00
lld Bug 17569: add namespaces to work with gcc-4.7 2013-10-14 21:24:48 +00:00
lldb Add the capability for LLDB to query an arbitrary Python module (passed in as a file path) for target-specific settings 2013-10-14 21:39:38 +00:00
llvm Fix the ExecutionDepsFix pass to handle AVX instructions. 2013-10-14 22:19:03 +00:00
openmp Update web pages to include style sheets and referenced documents missed before. 2013-10-03 11:55:28 +00:00
polly This test case requires assertions 2013-10-12 09:15:56 +00:00