Go to file
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
clang Try to fix this clang driver test case after r340709. 2018-08-27 08:49:20 +00:00
clang-tools-extra [clang-doc] Fix memory leaks 2018-08-24 16:43:46 +00:00
compiler-rt [scudo] Replace eraseHeader with compareExchangeHeader for Quarantined chunks 2018-08-24 18:21:32 +00:00
debuginfo-tests Revert "(Retry) Add a basic integration test for C++ smart pointers" 2018-08-20 19:53:33 +00:00
libclc amdgcn: Use __constant AS for amdgcn builtins. 2018-08-03 15:14:08 +00:00
libcxx [libc++] Fix handling of negated character classes in regex 2018-08-24 14:10:28 +00:00
libcxxabi Port my recent changes from LLVM copy of the demangler: 2018-08-24 23:30:26 +00:00
libunwind NFC: Test commit access 2018-08-16 16:55:07 +00:00
lld [COFF] Support MinGW automatic dllimport of data 2018-08-27 08:43:31 +00:00
lldb Disable exceptions for TestDataFormatterLibcxxOptional.py 2018-08-25 01:25:24 +00:00
llgo Update copyright year to 2018. 2018-06-18 12:22:17 +00:00
llvm [NFC] Split logic of ImplicitControlFlowTracking to allow generalization 2018-08-27 09:43:16 +00:00
openmp [OpenMP] Remove deprecated/obsolete MIC attributes from headers 2018-08-24 21:34:10 +00:00
parallel-libs Update copyright year to 2018. 2018-06-18 12:22:17 +00:00
polly [IR] Replace `isa<TerminatorInst>` with `isTerminator()`. 2018-08-26 09:51:22 +00:00
README.md

README.md

Low Level Virtual Machine (LLVM)

This directory and its subdirectories contain source code for LLVM, a toolkit for the construction of highly optimized compilers, optimizers, and runtime environments.