https://gcc.gnu.org/bugzilla/show_bug.cgi?id=103088

            Bug ID: 103088
           Summary: [12 regression] 500.perlbench from spec 2017 fails
                    since r12-4698
           Product: gcc
           Version: 12.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: other
          Assignee: unassigned at gcc dot gnu.org
          Reporter: seurer at gcc dot gnu.org
  Target Milestone: ---

g:f6d012338bf87f427b7420f2f309963c29fe33ba, r12-4698

commit f6d012338bf87f427b7420f2f309963c29fe33ba (HEAD)
Author: Aldy Hernandez <al...@redhat.com>
Date:   Wed Oct 20 07:29:25 2021 +0200

    Try to resolve paths in threader without looking further back.


I am seeing a strange problem starting with this revision.  The spec 2017 test
case 500.perlbench is producing a few extraneous lines of output which is
causing it to fail.

seurer@muskie:~/gcc/cpu2017$ diff
./benchspec/CPU/500.perlbench_r/data/refrate/output/diffmail.4.800.10.17.19.300.out

./benchspec/CPU/500.perlbench_r/run/run_peak_refrate_none.0000/diffmail.4.800.10.17.19.300.out
3257a3258
> Minimum abstol: nan       
3259a3261
> Minimum reltol: nan       
3507a3510
> Minimum abstol: nan       
3509a3513
> Minimum reltol: nan       
3694a3699
> Minimum abstol: nan       
3696a3702
> Minimum reltol: nan       
3818a3825
> Minimum abstol: nan       
3820a3828
> Minimum reltol: nan       


These extra lines come from here in the perl code:

    if ($opts->{'calctol'}) {
        push @errstats, 'Calculated tolerances:';
        foreach my $type (qw(abstol reltol obiwan skiptol)) {
            if (exists($max->{$type}) && ($max->{$type} >= 0)) {
                push @errstats, sprintf "Maximum $type: %-10.5e",
$max->{$type};
            }
            if (exists($min->{$type}) && ($min->{$type} >= 0)) {
                push @errstats, sprintf "Minimum $type: %-10.5e",
$min->{$type};
            }
            if (exists($errcnt->{$type}) && ($errcnt->{$type} >= 0)) {
                push @errstats, "# of $type errors: ".$errcnt->{$type};
            }
            if (exists($opts->{"skip$type"}) && ($opts->{"skip$type"} > 0)) {
                push @errstats, "# of skip$type unused: ".$opts->{"skip$type"};
            }
        }
    }

So it appears that either the results of the perl exists function changed or
the values that are being checked did not exist before but do now.

Reply via email to