aboutsummaryrefslogtreecommitdiff
path: root/clang/lib/Frontend/InitPreprocessor.cpp
diff options
context:
space:
mode:
authorMatt Arsenault <Matthew.Arsenault@amd.com>2022-10-03 22:06:09 -0700
committerMatt Arsenault <arsenm2@gmail.com>2022-10-28 17:07:26 -0700
commit45a91c1521b243b728d4ce69f8d19a449627d251 (patch)
treeeb21dd5f084ff7b08046d4361d403373b2b17136 /clang/lib/Frontend/InitPreprocessor.cpp
parentbc405e37ee96092b2b6a0968e777a17da6c9000a (diff)
downloadllvm-45a91c1521b243b728d4ce69f8d19a449627d251.zip
llvm-45a91c1521b243b728d4ce69f8d19a449627d251.tar.gz
llvm-45a91c1521b243b728d4ce69f8d19a449627d251.tar.bz2
llvm-reduce: Fix block reduction with unreachable blocks
Previously this would produce many invalid reductions with "Instruction does not dominate uses" verifier errors. This fixes issues in cases where the incoming IR has unreachable blocks, and the resulting reduction introduced new reachable blocks. Have basic-blocks skip functions that have unreachable blocks, Introduce a separate reduction which only deletes unreachable blocks. Cleanup any newly unreachable blocks after trimming out the requested deletions. Includes a variety of meta-reduced tests for llvm-reduce itself with -abort-on-invalid-reduction that were failing on different iterations of this patch. Bugpoint's implementation is much simpler (but currently I don't understand how it avoids disconnecting interesting blocks from the CFG).
Diffstat (limited to 'clang/lib/Frontend/InitPreprocessor.cpp')
0 files changed, 0 insertions, 0 deletions