1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-23 11:13:28 +01:00
llvm-mirror/lib
Sanjay Patel b53cb9b938 [DAGCombiner] exclude x*2.0 from normal negation profitability rules
This is the codegen part of fixing:
https://bugs.llvm.org/show_bug.cgi?id=32939

Even with the optimal/canonical IR that is ideally created by D65954,
we would reverse that transform in DAGCombiner and end up with the same
asm on AArch64 or x86.

I see 2 options for trying to correct this:

  1. Limit isNegatibleForFree() by special-casing the fmul pattern (this patch).
  2. Avoid creating (fmul X, 2.0) in the 1st place by adding a special-case
     transform to SelectionDAG::getNode() and/or SelectionDAGBuilder::visitFMul()
     that matches the transform done by DAGCombiner.

This seems like the less intrusive patch, but if there's some other reason to
prefer 1 option over the other, we can change to the other option.

Differential Revision: https://reviews.llvm.org/D66016

llvm-svn: 368490
2019-08-09 21:37:32 +00:00
..
Analysis Title: Loop Cache Analysis 2019-08-09 13:56:29 +00:00
AsmParser IR: print value numbers for unnamed function arguments 2019-08-03 14:28:34 +00:00
BinaryFormat
Bitcode [ObjC][ARC] Upgrade calls to ARC runtime functions to intrinsic calls if 2019-08-08 16:59:31 +00:00
Bitstream
CodeGen [DAGCombiner] exclude x*2.0 from normal negation profitability rules 2019-08-09 21:37:32 +00:00
DebugInfo DebugInfo/DWARF: Provide some (pretty half-hearted) error handling access when parsing units 2019-08-09 01:14:33 +00:00
Demangle
ExecutionEngine Replace llvm::MutexGuard/UniqueLock with their standard equivalents 2019-08-07 10:57:25 +00:00
Fuzzer
FuzzMutate
IR Change the return type of UpgradeARCRuntimeCalls to void 2019-08-08 23:33:17 +00:00
IRReader
LineEditor
Linker Linker: Add support for GlobalIFunc. 2019-08-08 22:09:18 +00:00
LTO Rename F_{None,Text,Append} to OF_{None,Text,Append}. NFC 2019-08-05 05:43:48 +00:00
MC [MC] Don't recreate a label if it's already used 2019-08-09 20:16:31 +00:00
MCA [MCA] Add flag -show-encoding to llvm-mca. 2019-08-09 11:26:27 +00:00
Object Print reasonable representations of type names in llvm-nm, readelf and readobj 2019-08-09 16:54:51 +00:00
ObjectYAML [yaml2obj/obj2yaml] - Add a basic support for extended section indexes. 2019-08-08 09:49:05 +00:00
Option
Passes Title: Loop Cache Analysis 2019-08-09 13:56:29 +00:00
ProfileData Rename F_{None,Text,Append} to OF_{None,Text,Append}. NFC 2019-08-05 05:43:48 +00:00
Remarks Reland: [Remarks] Add an LLVM-bitstream-based remark serializer 2019-07-31 00:13:51 +00:00
Support [FileCheck] Add missing includes in header 2019-08-08 13:56:59 +00:00
TableGen Rename F_{None,Text,Append} to OF_{None,Text,Append}. NFC 2019-08-05 05:43:48 +00:00
Target [globalisel] Add G_SEXT_INREG 2019-08-09 21:11:20 +00:00
Testing
TextAPI
ToolDrivers [llvm-dlltool] Clarify an error message. NFC. 2019-08-02 11:20:03 +00:00
Transforms [InstCombine] Refactor optimizeExp2() (NFC) 2019-08-09 17:22:56 +00:00
WindowsManifest
XRay Switch LLVM to use 64-bit offsets (2/5) 2019-08-06 10:49:40 +00:00
CMakeLists.txt
LLVMBuild.txt