llvm-6502/lib
Shuxin Yang b1ccfb3a54 [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


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@191037 91177308-0d34-0410-b5e6-96231b3b80d8
2013-09-19 21:13:46 +00:00
..
Analysis Fix a constant folding address space place I missed. 2013-09-17 23:23:16 +00:00
AsmParser Implement function prefix data as an IR feature. 2013-09-16 01:08:15 +00:00
Bitcode Implement function prefix data as an IR feature. 2013-09-16 01:08:15 +00:00
CodeGen Unshift the GDB index/GNU pubnames constants modified in r191025 2013-09-19 20:40:26 +00:00
DebugInfo
ExecutionEngine llvm-c: Add LLVMGetPointerToFunction 2013-09-19 19:55:06 +00:00
IR Revert "Encapsulate PassManager debug flags to avoid static init and cxa_exit." 2013-09-19 06:02:43 +00:00
IRReader
Linker Implement function prefix data as an IR feature. 2013-09-16 01:08:15 +00:00
MC Remove extraneous space, the asm printing infrastructure adds a space 2013-09-19 18:41:40 +00:00
Object ELF: Add support for the exclude section bit for gas compat. 2013-09-15 19:53:20 +00:00
Option Fix another mistake in r190442. 2013-09-10 23:22:56 +00:00
Support Unshift the GDB index/GNU pubnames constants modified in r191025 2013-09-19 20:40:26 +00:00
TableGen
Target X86 horizontal vector reduction cost model 2013-09-19 17:48:48 +00:00
Transforms [Fast-math] Disable "(C1/X)*C2 => (C1*C2)/X" if C1/X has multiple uses. 2013-09-19 21:13:46 +00:00
CMakeLists.txt
LLVMBuild.txt
Makefile