llvm-project/llvm/test/tools/llvm-reduce
Florian Hahn 8ef460fc51
[llvm-reduce] Add parallel chunk processing.
This patch adds parallel processing of chunks. When reducing very large
inputs, e.g. functions with 500k basic blocks, processing chunks in
parallel can significantly speed up the reduction.

To allow modifying clones of the original module in parallel, each clone
needs their own LLVMContext object. To achieve this, each job parses the
input module with their own LLVMContext. In case a job successfully
reduced the input, it serializes the result module as bitcode into a
result array.

To ensure parallel reduction produces the same results as serial
reduction, only the first successfully reduced result is used, and
results of other successful jobs are dropped. Processing resumes after
the chunk that was successfully reduced.

The number of threads to use can be configured using the -j option.
It defaults to 1, which means serial processing.

Reviewed By: Meinersbur

Differential Revision: https://reviews.llvm.org/D113857
2021-11-24 09:23:52 +00:00
..
Inputs [llvm-reduce] Allow writing temporary files as bitcode. 2021-11-16 12:39:42 +00:00
mir Recommit "[llvm-reduce] Add MIR support" 2021-11-02 10:16:42 +01:00
custom-delta-passes.ll [llvm-reduce] Remove various module data 2021-08-24 09:45:31 -07:00
do-not-remove-terminator.ll
fail-file-open.test
granularity-level.ll [llvm-reduce] Add flag to start at finer granularity 2021-11-09 10:14:08 -08:00
help.test [llvm][tools] Hide remaining unrelated llvm- tool options 2021-07-22 09:47:55 +02:00
no-replace-intrinsic-callee-with-undef.ll [llvm-reduce] Add reduce operands pass 2021-09-17 12:32:15 -07:00
operands-skip.ll [llvm-reduce] Add parallel chunk processing. 2021-11-24 09:23:52 +00:00
operands-to-args-metadata.ll [llvm-reduce] Skip replacing metadata and callee operands 2021-11-11 18:42:16 -08:00
operands-to-args.ll [llvm-reduce] Actually skip invalid candidates in operands-to-args 2021-10-29 09:14:18 -07:00
remove-alias.ll
remove-all-of-multiple-args.ll [llvm-reduce] Add reduce operands pass 2021-09-17 12:32:15 -07:00
remove-args-2.ll [llvm-reduce] Add reduce operands pass 2021-09-17 12:32:15 -07:00
remove-args-dbg-intrinsics.ll
remove-args-fn-passed-through-call.ll [llvm-reduce] Skip updating calls where OldF isn't the called fn. 2021-10-01 10:52:48 +01:00
remove-args-from-declaration.ll
remove-args-used-by-ret.ll [llvm-reduce] Add reduce operands pass 2021-09-17 12:32:15 -07:00
remove-args.ll [llvm-reduce] Add reduce operands pass 2021-09-17 12:32:15 -07:00
remove-attributes-from-intrinsic-like-functions.ll
remove-attributes-from-intrinsics.ll
remove-bbs-comdat.ll [llvm-reduce] Fix invalid reduction in basic-blocks delta pass 2021-11-09 10:43:38 -08:00
remove-bbs-entry.ll [llvm-reduce] Fix invalid reduction in basic-blocks delta pass 2021-11-09 10:43:38 -08:00
remove-bbs-ret-nonvoid.ll [llvm-reduce] Add reduce operands pass 2021-09-17 12:32:15 -07:00
remove-bbs-unwinded-to.ll [llvm-reduce] Add reduce operands pass 2021-09-17 12:32:15 -07:00
remove-bbs.ll [llvm-reduce] Add reduce operands pass 2021-09-17 12:32:15 -07:00
remove-call-site-attributes.ll [llvm-reduce] Introduce operands-to-args pass. 2021-10-13 09:54:03 -05:00
remove-dll.ll [llvm-reduce] Reduce more GlobalValue properties 2021-11-02 08:47:41 -07:00
remove-dso-local.ll
remove-funcs.ll [llvm-reduce] Add reduce operands pass 2021-09-17 12:32:15 -07:00
remove-function-arguments-of-funcs-used-in-blockaddress.ll Fix typo of colon to semicolon in lit tests 2021-10-09 10:03:50 +08:00
remove-function-attributes.ll
remove-function-bodies-comdat.ll
remove-function-bodies-used-in-globals.ll
remove-function-bodies.ll
remove-global-align.ll [llvm-reduce] Reduce some GlobalObject properties 2021-11-02 08:47:32 -07:00
remove-global-variable-attributes.ll
remove-global-vars.ll [llvm-reduce] Add reduce operands pass 2021-09-17 12:32:15 -07:00
remove-instructions.ll
remove-invoked-functions.ll [llvm-reduce] Add reduction passes to reduce operands to undef/1/0 2021-10-19 15:25:21 -07:00
remove-metadata-args.ll [llvm-reduce] Reduce metadata references. 2021-09-29 11:25:35 -05:00
remove-metadata.ll
remove-module-data.ll [llvm-reduce] Remove various module data 2021-08-24 09:45:31 -07:00
remove-multiple-use-of-args-in-same-instruction.ll
remove-multiple-use-of-global-vars-in-same-instruction.ll
remove-operand-bundles.ll
remove-operands.ll [llvm-reduce] Skip replacing metadata and callee operands 2021-11-11 18:42:16 -08:00
remove-section.ll [llvm-reduce] Reduce some GlobalObject properties 2021-11-02 08:47:32 -07:00
remove-single-arg.ll [llvm-reduce] Add reduce operands pass 2021-09-17 12:32:15 -07:00
remove-thread-local.ll [llvm-reduce] Reduce more GlobalValue properties 2021-11-02 08:47:41 -07:00
remove-unnamed-addr.ll [llvm-reduce] Reduce more GlobalValue properties 2021-11-02 08:47:41 -07:00
remove-unused-declarations.ll
remove-visibility.ll [llvm-reduce] Reduce more GlobalValue properties 2021-11-02 08:47:41 -07:00
temporary-files-as-bitcode.ll [llvm-reduce] Allow writing temporary files as bitcode. 2021-11-16 12:39:42 +00:00