llvm-project/llvm/lib
Max Kazantsev b5dd092051 [NFC] Split logic of ImplicitControlFlowTracking to allow generalization
We have a class `ImplicitControlFlowTracking` which allows us to keep track of
instructions that can abnormally exit and answer queries like "whether or not
there is side-exiting instruction above this instruction in its block".

We may want to have the similar tracking for other types of "special" instructions,
for example instructions that write memory.

This patch separates ImplicitControlFlowTracking into two classes, isolating all
general logic not related to implicit control flow into its parent class. We can
later make another child of this class to keep track of instructions that write
memory.

The motivation for that is that we want to make these checks efficiently in the
patch https://reviews.llvm.org/D50891.

NOTE: The naming of the parent class is not super cool, but the other options we
have are hardly better. Please feel free to rename it as NFC if you think you've
found a more informative name for it.

Differential Revision: https://reviews.llvm.org/D50954
Reviewed By: fedor.sergeev

llvm-svn: 340728
2018-08-27 09:43:16 +00:00
..
Analysis [IR] Replace `isa<TerminatorInst>` with `isTerminator()`. 2018-08-26 09:51:22 +00:00
AsmParser [IR] Replace `isa<TerminatorInst>` with `isTerminator()`. 2018-08-26 09:51:22 +00:00
BinaryFormat Fix undefined behavior in r340457 2018-08-23 02:51:09 +00:00
Bitcode [IR] Replace `isa<TerminatorInst>` with `isTerminator()`. 2018-08-26 09:51:22 +00:00
CodeGen [SelectionDAG][x86] turn insertelement into undef with variable index into splat 2018-08-26 18:20:41 +00:00
DebugInfo [DWARF] Unify warning callbacks. NFC. 2018-08-23 12:43:33 +00:00
Demangle Fix this file to have the necessary standard library includes and use 2018-08-27 06:52:14 +00:00
ExecutionEngine [ORC] Do not include non-global symbols in getObjectSymbolFlags. 2018-08-26 16:46:02 +00:00
FuzzMutate [IR] Replace `isa<TerminatorInst>` with `isTerminator()`. 2018-08-26 09:51:22 +00:00
Fuzzer
IR [IR] Replace `isa<TerminatorInst>` with `isTerminator()`. 2018-08-26 09:51:22 +00:00
IRReader LLParser: add an argument for overriding data layout and do not check alloca addr space 2018-01-30 22:32:39 +00:00
LTO Remove trailing space 2018-07-30 19:41:25 +00:00
LineEditor
Linker [NFC] Remove an empty line. 2018-07-27 06:50:45 +00:00
MC [MC, RISCV] Fixed StringRef Assertion `Index < Length && "Invalid index!"' 2018-08-25 01:34:32 +00:00
Object [COFF] Expose an easier helper function for getting names for relocation types 2018-08-27 08:42:39 +00:00
ObjectYAML [yaml2obj] - Add a support for changing EntSize. 2018-08-07 08:11:38 +00:00
Option Re-revert "[Option] Fix PR37006 prefix choice in findNearest" 2018-05-19 16:21:01 +00:00
Passes Revert "[GVNHoist] Re-enable GVNHoist by default" 2018-07-30 20:07:33 +00:00
ProfileData [Coverage] Ignore 'unused' functions with non-zero execution counts 2018-08-07 22:25:36 +00:00
Support Avoid specializing a variadic member template in a way that seems to not 2018-08-26 09:17:49 +00:00
TableGen Remove trailing space 2018-07-30 19:41:25 +00:00
Target [Sparc] Custom bitcast between f64 and v2i32 2018-08-27 07:14:53 +00:00
Testing [LLVMTestingSupport] Add explicit linkage to LLVMSupport 2018-04-08 06:49:17 +00:00
ToolDrivers Give llvm-lib rudimentary help output. 2018-07-14 02:29:44 +00:00
Transforms [NFC] Split logic of ImplicitControlFlowTracking to allow generalization 2018-08-27 09:43:16 +00:00
WindowsManifest Convert line endings of lib/WindowsManifest/CMakeLists.txt to unix. 2018-04-07 04:28:08 +00:00
XRay [XRay] Refactor loadTraceFile(...) into two (NFC) 2018-08-24 10:30:37 +00:00
CMakeLists.txt
LLVMBuild.txt