llvm-project/llvm/lib
Nirav Dave 610036c506 [DAG] Set up infrastructure to avoid smart constructor-based dangling nodes
Summary:
Various SelectionDAG non-combine operations (e.g. the getNode smart
constructor and legalization) may leave dangling nodes by applying
optimizations without fully pruning unused result values. This results
in nodes that are never added to the worklist and therefore can not be
pruned.

Add a node inserter for the combiner to make sure such nodes have the
chance of being pruned. This allows a number of additional peephole
optimizations.

Reviewers: efriedma, RKSimon, craig.topper, jyknight

Reviewed By: jyknight

Subscribers: msearles, jyknight, sdardis, nemanjai, javed.absar, hiraditya, jrtc27, atanasyan, jsji, llvm-commits

Tags: #llvm

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

llvm-svn: 357279
2019-03-29 17:26:40 +00:00
..
Analysis Recommit "[DSE] Preserve basic block ordering using OrderedBasicBlock." 2019-03-29 14:10:24 +00:00
AsmParser IR: Support parsing numeric block ids, and emit them in textual output. 2019-03-22 18:27:13 +00:00
BinaryFormat [Object] Add basic minidump support 2019-03-21 09:18:59 +00:00
Bitcode [DebugInfoMetadata] Move main subprogram DIFlag into DISPFlags 2019-03-19 13:49:03 +00:00
CodeGen [DAG] Set up infrastructure to avoid smart constructor-based dangling nodes 2019-03-29 17:26:40 +00:00
DebugInfo Delay initialization of three static global maps, NFC 2019-03-28 17:33:41 +00:00
Demangle Add missing include (cstdlib) to Demangle.h 2019-01-22 19:18:18 +00:00
ExecutionEngine [DebugInfo] IntelJitEventListener follow up for "add SectionedAddress ..." 2019-03-25 13:50:26 +00:00
FuzzMutate [opaque pointer types] Pass value type to LoadInst creation. 2019-02-01 20:44:24 +00:00
Fuzzer
IR Temporarily revert "SafepointIRVerifier port to new Pass Manager" 2019-03-28 18:34:34 +00:00
IRReader [IRReader] Expose getLazyIRModule 2019-02-11 22:01:13 +00:00
LTO Reland "[Remarks] Add -foptimization-record-passes to filter remark emission" 2019-03-12 21:22:27 +00:00
LineEditor Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
Linker [Linker] Fix crash handling appending linkage 2019-03-20 19:20:07 +00:00
MC [MC] Fix floating-point literal lexing. 2019-03-28 21:12:28 +00:00
MCA [MCA] Add an experimental MicroOpQueue stage. 2019-03-29 12:15:37 +00:00
Object [WebAssembly] Initial implementation of PIC code generation 2019-03-26 19:46:15 +00:00
ObjectYAML [yaml2obj][obj2yaml] - Teach yaml2obj/obj2yaml tools about STB_GNU_UNIQUE symbols. 2019-03-28 10:52:14 +00:00
Option Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
Passes Temporarily revert "SafepointIRVerifier port to new Pass Manager" 2019-03-28 18:34:34 +00:00
ProfileData [SampleFDO] add suffix elision control for fcn names 2019-03-14 13:56:49 +00:00
Remarks [Remarks] Fix mismatched delete due to missing virtual destructor 2019-03-20 17:44:24 +00:00
Support [MC] Fix floating-point literal lexing. 2019-03-28 21:12:28 +00:00
TableGen [TableGen] Let list elements have a trailing comma 2019-03-26 11:16:01 +00:00
Target [mips] Fix lowering a signed immediate for *.d MSA instructions 2019-03-29 15:15:22 +00:00
Testing Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
TextAPI Followup for r356820 to fix the bots. 2019-03-22 23:10:51 +00:00
ToolDrivers [llvm-ar][libObject] Fix relative paths when nesting thin archives. 2019-02-13 23:39:41 +00:00
Transforms [InstCombine] move shuffle canonicalizations before other transforms 2019-03-29 16:49:38 +00:00
WindowsManifest Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
XRay Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
CMakeLists.txt [OptRemarks] Make OptRemarks more generic: rename OptRemarks to Remarks 2019-03-05 20:45:17 +00:00
LLVMBuild.txt [OptRemarks] Make OptRemarks more generic: rename OptRemarks to Remarks 2019-03-05 20:45:17 +00:00