llvm-mirror/test
Jamie Schmeiser 60c5153584 Add new hidden option -print-changed which only reports changes to IR
A new hidden option -print-changed is added along with code to support
printing the IR as it passes through the opt pipeline in the new pass
manager. Only those passes that change the IR are reported, with others
only having the banner reported, indicating that they did not change the
IR, were filtered out or ignored. Filtering of output via the
-filter-print-funcs is supported and a new supporting hidden option
-filter-passes is added. The latter takes a comma separated list of pass
names and filters the output to only show those passes in the list that
change the IR. The output can also be modified via the -print-module-scope
function.

The code introduces a template base class that generalizes the comparison
of IRs that takes an IR representation as template parameter. The
constructor takes a series of lambdas that provide an event based API
for generalized reporting of IRs as they are changed in the opt pipeline
through the new pass manager.

The first of several instantiations is provided that prints the IR
in a form similar to that produced by -print-after-all with the above
mentioned filtering capabilities. This version, and the others to
follow will be introduced at the upcoming developer's conference.
See https://hotcrp.llvm.org/usllvm2020/paper/29 for more information.

Reviewed By: yrouban (Yevgeny Rouban)

Differential Revision: https://reviews.llvm.org/D86360
2020-09-03 15:52:35 +00:00
..
Analysis Fix build-bots. 2020-09-01 20:24:15 -07:00
Assembler [ConstProp] Remove ConstantPropagation 2020-08-26 15:51:30 -07:00
Bindings Fix OCaml bindings 2020-08-26 16:11:11 -07:00
Bitcode [ARM][BFloat16] Change types of some Arm and AArch64 bf16 intrinsics 2020-08-27 18:52:59 +01:00
BugPoint
CodeGen [X86][SSE] Fold select(X > -1, A, B) -> select(0 > X, B, A) (PR47404) 2020-09-03 13:02:08 +01:00
DebugInfo [DebugInfo] Emit a 1-byte value as a terminator of entries list in the name index. 2020-09-02 16:12:39 +07:00
Demangle
Examples [ORC] Add a LLJITWithThinLTOSummaries example in OrcV2Examples 2020-08-23 14:02:10 +02:00
ExecutionEngine [JITLink][MachO] Use correct symbol scope when N_PEXT is set and N_EXT unset. 2020-08-15 15:53:33 -07:00
Feature [NewPM][optnone] Mark various passes as required 2020-08-14 15:51:59 -07:00
FileCheck [FileCheck] Add precision to format specifier 2020-08-30 19:40:57 +01:00
Instrumentation [HeapProf] Clang and LLVM support for heap profiling instrumentation 2020-08-27 08:50:35 -07:00
Integer
JitListener
Linker
LTO [LTO] Don't apply LTOPostLink module flag during writeMergedModule 2020-08-26 11:17:45 -07:00
MachineVerifier [Test] Tidy up loose ends from LLVM_HAS_GLOBAL_ISEL 2020-08-27 16:36:27 +01:00
MC [AArch64] Add asm directives for the remaining SEH unwind codes 2020-09-03 11:12:01 +03:00
Object [llvm-readobj/elf] - Refine the warning about the broken PT_DYNAMIC segment. 2020-08-17 14:57:19 +03:00
ObjectYAML [DWARFYAML] Make the debug_str section optional. 2020-09-01 10:02:09 +08:00
Other Add new hidden option -print-changed which only reports changes to IR 2020-09-03 15:52:35 +00:00
Reduce [llvm-reduce] Create returns with undef values for non-void functions. 2020-08-31 16:33:46 +01:00
SafepointIRVerifier
Support
SymbolRewriter
TableGen [TableGen][GlobalISel] Fix tblgen optimization bug 2020-08-26 12:09:01 +02:00
ThinLTO/X86 [ThinLTO] Fix a metadata lost issue with DICompileUnit import. 2020-09-02 14:40:41 -07:00
tools [llvm-readobj/elf] - Improve warning messages, reported for .stack_sizes sections. 2020-09-03 13:17:07 +03:00
Transforms [IR][GVN] add/allow commutative intrinsics with >2 args 2020-09-03 10:14:53 -04:00
Unit
Verifier Fix for PR46384. Failure on weak dllimport. 2020-09-02 19:12:24 -07:00
YAMLParser
.clang-format
CMakeLists.txt Add cmake test support for LLJITWithThinLTOSummaries to make sure 2020-08-26 11:46:09 -07:00
lit.cfg.py [Test] Tidy up loose ends from LLVM_HAS_GLOBAL_ISEL 2020-08-27 16:36:27 +01:00
lit.site.cfg.py.in
TestRunner.sh