[cfe-dev] [llvm-dev] improving test-suite`s FP subtests to be able to compare both exact-match outputs and more-optimized builds that may have different outputs due to FP optimizations
Hal Finkel via cfe-dev
cfe-dev at lists.llvm.org
Thu Sep 29 16:35:21 PDT 2016
----- Original Message -----
> From: "Matthias Braun via cfe-dev" <cfe-dev at lists.llvm.org>
> To: "Abe Skolnik" <a.skolnik at samsung.com>
> Cc: "llvm-dev" <llvm-dev at lists.llvm.org>, "cfe-dev" <cfe-dev at lists.llvm.org>
> Sent: Thursday, September 29, 2016 6:20:09 PM
> Subject: Re: [cfe-dev] [llvm-dev] improving test-suite`s FP subtests to be able to compare both exact-match outputs
> and more-optimized builds that may have different outputs due to FP optimizations
>
>
> > On Sep 29, 2016, at 3:59 PM, Abe Skolnik <a.skolnik at samsung.com>
> > wrote:
> >
> > Dear all,
> >
> > I would like some help, please, with implementing Hal`s excellent
> > suggestion, which I have reworded as below. Hal has confirmed a
> > previous version of my rewording as a correct interpretation. [I
> > made minor changes since then, e.g. for grammar.]
> >
> > [Abe wrote:]
> >
> >>> I think you [Hal] are suggesting something like this:
> >
> >>> 1) compile the program with FP fusion off,
> >>> run the program, capture the output and save it,
> >>> hash it and compare it against the reference hash.
> >
> >>> 2) if comparison against the reference hash says "not equal",
> >>> fail the test and stop [i.e. stop testing this particular
> >>> subtest]
> >
> >>> 3) compile the program with FP fusion on/"fast", capture the
> >>> output,
> >>> compare it using "fpcmp" and some positive tolerance against
> >>> the
> >>> output of the non-fusion build of the same source code;
> >>> fail only if outside the tolerance limit[s]
>
> Currently the test-suite works by first building the executable and
> then running them on a set of inputs. Having a multi-step thingy
> does not fit that.
>
> Having said that you could possibly just build two variants first and
> use different comparison steps for each. That at least fits the
> model but is still a precedent and requires some deeper test-suite
> buildsystem hacking.
I think makes sense. We can have the fp-contract-off target and the fp-contract-default target, and use set_target_properties to add -ffp-contract=off to the compile_flags for the former. Then we just need to add the output from the default target as a generated file, and add a dependency on it to the fp-contract-default comparison step. Does that sound right?
Are the buildbots still using the makefile-based system, or are they all on the cmake-based system now?
-Hal
>
> - Matthias
> _______________________________________________
> cfe-dev mailing list
> cfe-dev at lists.llvm.org
> http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-dev
>
--
Hal Finkel
Lead, Compiler Technology and Programming Languages
Leadership Computing Facility
Argonne National Laboratory
More information about the cfe-dev
mailing list