[PATCH][TEST-SUITE] Marking more programs as not to be run in benchmark-only mode

Chris Matthews chris.matthews at apple.com
Tue May 19 10:32:30 PDT 2015


I think this is great! I totally agree.

> On May 19, 2015, at 10:28 AM, Kristof Beyls <kristof.beyls at arm.com> wrote:
> 
> Hi,
> 
> One substantial source of performance noisiness of the LNT test-suite are
> programs running
> very shortly.
> The attached patch disables more of the programs in benchmark-only mode,
> based on analysis
> that I've done on the programs that run less than 10ms on
> http://llvm.org/perf/db_default/v4/nts/machine/39. 
> 
> I think it is debatable whether some of these should remain to be run in
> benchmark-only mode,
> as we also have code in LNT to just ignore all benchmarks running less than
> 10 ms.
> 
> Here is the list of programs that are removed in benchmark-only mode by the
> attached patch.
> 
> The programs that clearly don't have value as a benchmark:
> * SingleSource/UnitTests/Vector: constpool simple:
>  both don't have any loops in the code.
> * SingleSource/UnitTests/Vector/AArch64: aarch64_neon_intrinsics:
>  doesn't have any loop in the code.
> * SingleSource/UnitTests/Vector/NEON: simple:
>  doesn't have any loop in the code.
> * SingleSource/UnitTests: 2005-07-15-Bitfield-ABI 2006-01-23-UnionInit
> 2007-04-10-BitfieldTest:
>  doesn't have any loop in the code.
> * MultiSource/Benchmarks/Prolangs-C: loader:
>  This program exits immediately because no arguments are given on the
> command line. Unless
>  someone creates inputs for this program, this should not be considered a
> benchmark.
> 
> 
> The programs for which it's debatable whether they have value or not.
> I think none of these do enough work to be considered as a benchmark:
> * MultiSource/Benchmarks/McCat/:
>  - 15-trie produces trie data structures, but the program has no loops - so
> it's probably IO
>    bound, and therefore shouldn't be considered as a benchmark.
> * MultiSource/Benchmarks/Prolangs-C:
>  - cdecl: The benchmark parses about 70 C declarations
> * MultiSource/Benchmarks/MiBench:
>  - office-stringsearch searches a few hundred substrings in a set of a few
> hundred strings.
>  - telecom-adpcm seems to spend most of its time in IO - and should have a
> loop to do the main data
>    transformation multiple times on the same buffer if run as a benchmark.
> * SingleSource/Benchmarks/Stanford:
>  - IntMM: does 10 matrix multiplications of size 40x40.
> * SingleSource/Regression/C/Makefile: matrixTranspose,  sumarray2d,
> test_indvars:
>  - matrixTranspose: transposes a 32x32 matrix 10 times.
>  - sumarray2d: creates a 100x100 matrix and sums all the elements in it.
>  - test_indvars: traverses a 20000-element matrix twice.
> * SingleSource/UnitTests/SignlessTypes:
>  - rem: does 100 gcd computations.
> 
> The following programs also run very shortly, but I do think they have value
> as a benchmark - so the attached patch doesn't disable them in benchmark
> mode:
> * SingleSource/Benchmarks/Misc/lowercase
> * SingleSource/Benchmarks/Shootout/objinst
> * SingleSource/Benchmarks/Shootout-C++/objinst
> For all three, it seems that the main computation in the benchmark is
> completely
> optimized away. Keeping these running as benchmarks should allow us to catch
> if
> llvm ever regresses in being able to optimize away the main computation in
> these
> programs.
> 
> 
> What do you think?
> 
> Thanks,
> 
> Kristof
> <exclude_short_running_programs_from_benchmark_mode.diff>





More information about the llvm-commits mailing list