Go to file
Shuxin Yang 3a7ca6ec87 [Fast-math] Disable "(C1/X)*C2 => (C1*C2)/X" if C1/X has multiple uses.
If "C1/X" were having multiple uses, the only benefit of this
transformation is to potentially shorten critical path. But it is at the
cost of instroducing additional div.

  The additional div may or may not incur cost depending on how div is
implemented. If it is implemented using Newton–Raphson iteration, it dosen't
seem to incur any cost (FIXME). However, if the div blocks the entire
pipeline, that sounds to be pretty expensive. Let CodeGen to take care 
this transformation.

  This patch sees 6% on a benchmark.

rdar://15032743

llvm-svn: 191037
2013-09-19 21:13:46 +00:00
clang clang-cl: implement /fallback mode 2013-09-19 20:32:16 +00:00
clang-tools-extra Don't use default label in fully covered switch 2013-09-19 07:35:47 +00:00
compiler-rt [ASan] Fix init-order-dlopen.cc test to not depend on the -Wl,-undefined,dynamic_lookup being passed to the linker. 2013-09-19 17:12:45 +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 Parenthesize arguments for mad_hi 2013-09-09 14:36:21 +00:00
libcxx Fix typo. 2013-09-17 08:46:53 +00:00
libcxxabi Adding bad_array_length to libc++abi 2013-09-11 01:42:02 +00:00
lld [lld][ELF] Group command line options for better usage 2013-09-19 20:07:06 +00:00
lldb Fix build failures under GNU/Linux running on mips 2013-09-19 19:06:57 +00:00
llvm [Fast-math] Disable "(C1/X)*C2 => (C1*C2)/X" if C1/X has multiple uses. 2013-09-19 21:13:46 +00:00
polly clang-format recent change 2013-09-17 03:30:36 +00:00