llvm-project/llvm/lib
Simon Pilgrim af6043557d [DAG][X86] Convert isNegatibleForFree/GetNegatedExpression to a target hook (PR42863)
This patch converts the DAGCombine isNegatibleForFree/GetNegatedExpression into overridable TLI hooks and includes a demonstration X86 implementation.

The intention is to let us extend existing FNEG combines to work more generally with negatible float ops, allowing it work with target specific combines and opcodes (e.g. X86's FMA variants).

Unlike the SimplifyDemandedBits, we can't just handle target nodes through a Target callback, we need to do this as an override to allow targets to handle generic opcodes as well. This does mean that the target implementations has to duplicate some checks (recursion depth etc.).

I've only begun to replace X86's FNEG handling here, handling FMADDSUB/FMSUBADD negation and some low impact codegen changes (some FMA negatation propagation). We can build on this in future patches.

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

llvm-svn: 372333
2019-09-19 15:02:47 +00:00
..
Analysis Data Dependence Graph Basics 2019-09-18 17:43:45 +00:00
AsmParser [llvm] Migrate llvm::make_unique to std::make_unique 2019-08-15 15:54:37 +00:00
BinaryFormat [BinaryFormat] Teach identify_magic about Tapi files. 2019-08-21 21:00:16 +00:00
Bitcode Add AutoUpgrade function to add new address space datalayout string to existing datalayouts. 2019-09-18 22:15:58 +00:00
Bitstream [Bitcode] Move Bitstream to a separate library 2019-07-03 22:40:07 +00:00
CodeGen [DAG][X86] Convert isNegatibleForFree/GetNegatedExpression to a target hook (PR42863) 2019-09-19 15:02:47 +00:00
DebugInfo [Object] Extend MachOUniversalBinary::getObjectForArch 2019-09-19 00:02:12 +00:00
Demangle Synchronize LLVM's copy of libc++abi's demangler with the libc++abi 2019-09-07 00:11:53 +00:00
ExecutionEngine [ExecutionEngine] Don't dereference a dyn_cast result. NFCI. 2019-09-16 15:19:11 +00:00
FuzzMutate [llvm] Migrate llvm::make_unique to std::make_unique 2019-08-15 15:54:37 +00:00
Fuzzer
IR Remove the obsolete BlockByRefStruct flag from LLVM IR 2019-09-18 22:38:56 +00:00
IRReader
LTO [LTO][Legacy] Add new C inferface to query libcall functions 2019-09-16 18:49:54 +00:00
LineEditor [CMake] Delete redundant DEPENDS/LINK_LIBS from LineEditor/XRay 2019-06-22 01:50:21 +00:00
Linker [IRMover] Don't map globals if their types are the same 2019-09-11 18:35:49 +00:00
MC [Alignment] Introduce llvm::Align to MCSection 2019-09-13 09:29:59 +00:00
MCA [Tblgen][MCA] Add the ability to mark groups as LoadQueue and StoreQueue. NFCI 2019-08-27 18:20:34 +00:00
Object [Object] Extend MachOUniversalBinary::getObjectForArch 2019-09-19 00:02:12 +00:00
ObjectYAML WasmEmitter - Don't dereference a dyn_cast result. NFCI. 2019-09-17 19:14:11 +00:00
Option [llvm] Migrate llvm::make_unique to std::make_unique 2019-08-15 15:54:37 +00:00
Passes [Unroll] Add an option to control complete unrolling 2019-09-19 06:57:29 +00:00
ProfileData [Object] Extend MachOUniversalBinary::getObjectForArch 2019-09-19 00:02:12 +00:00
Remarks [Remarks] Allow remarks::Format::YAML to take a string table 2019-09-16 22:45:17 +00:00
Support Fix compile-time regression caused by rL371928 2019-09-18 18:14:42 +00:00
TableGen [TableGen] Skip CRLF conversion when writing output 2019-09-11 22:33:50 +00:00
Target [DAG][X86] Convert isNegatibleForFree/GetNegatedExpression to a target hook (PR42863) 2019-09-19 15:02:47 +00:00
Testing [Testing] Move clangd::Annotations to llvm testing support 2019-04-25 10:08:31 +00:00
TextAPI Revert [llvm-nm] Add tapi file support 2019-09-11 21:35:28 +00:00
ToolDrivers [llvm-dlltool] Handle external and internal names with differing decoration 2019-09-02 13:28:16 +00:00
Transforms [Unroll] Add an option to control complete unrolling 2019-09-19 06:57:29 +00:00
WindowsManifest Fight a bit against global initializers. NFC. 2019-08-22 19:43:27 +00:00
XRay [llvm] Migrate llvm::make_unique to std::make_unique 2019-08-15 15:54:37 +00:00
CMakeLists.txt Fix build errors LLVM tests are disabled. 2019-07-11 22:08:35 +00:00
LLVMBuild.txt [Bitcode] Move Bitstream to a separate library 2019-07-03 22:40:07 +00:00