1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-24 11:42:57 +01:00
llvm-mirror/lib/Transforms
Evgeniy Brevnov 6aaf92e546 [NARY-REASSOCIATE] Simplify traversal logic by post deleting dead instructions
Currently we delete optimized instructions as we go. That has several negative consequences. First it complicates traversal logic itself. Second if newly generated instruction has been deleted the traversal is repeated from scratch.

But real motivation for the change is upcoming change with support for min/max reassociation. Here we employ SCEV expander to generate code. As a result newly generated instructions may be inserted not right before original instruction (because SCEV may do hoisting) and there is no way to know 'next' instruction.

Reviewed By: mkazantsev

Differential Revision: https://reviews.llvm.org/D88285
2020-12-04 16:17:50 +07:00
..
AggressiveInstCombine llvmbuildectomy - replace llvm-build by plain cmake 2020-11-13 10:35:24 +01:00
CFGuard llvmbuildectomy - replace llvm-build by plain cmake 2020-11-13 10:35:24 +01:00
Coroutines [AllocaInst] Update getAllocationSizeInBits to return TypeSize. 2020-11-27 16:39:10 +00:00
Hello
HelloNew llvmbuildectomy - replace llvm-build by plain cmake 2020-11-13 10:35:24 +01:00
InstCombine [XCOFF][AIX] Generate LSDA data and compact unwind section on AIX 2020-12-02 18:42:44 +00:00
Instrumentation [dfsan] Support passing non-i16 shadow values in TLS mode 2020-12-04 02:45:07 +00:00
IPO [NFC] Reduce include files dependency. 2020-12-03 18:25:05 +03:00
ObjCARC [NFC] Reduce include files dependency. 2020-12-03 18:25:05 +03:00
Scalar [NARY-REASSOCIATE] Simplify traversal logic by post deleting dead instructions 2020-12-04 16:17:50 +07:00
Utils Return "[IndVars] ICmpInst should not prevent IV widening" 2020-12-04 12:34:43 +07:00
Vectorize [LoopVec] Support non-instructions as argument to uniform mem ops 2020-12-03 14:51:44 -08:00
CMakeLists.txt Reland [docs][NewPM] Add docs for writing NPM passes 2020-09-14 16:06:19 -07:00