OpenCores
URL https://opencores.org/ocsvn/openrisc/openrisc/trunk

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [gnu-stable/] [gcc-4.5.1/] [contrib/] [compare-all-tests] - Diff between revs 816 and 826

Go to most recent revision | Only display areas with differences | Details | Blame | View Log

Rev 816 Rev 826
#! /bin/bash
#! /bin/bash
# Compare the assembly language output for all the gcc tests.
# Compare the assembly language output for all the gcc tests.
# Copyright (C) 2009 Free Software Foundation, Inc.
# Copyright (C) 2009 Free Software Foundation, Inc.
# Contributed by Paolo Bonzini.
# Contributed by Paolo Bonzini.
#
#
# Invoke it as "bash compare-all-tests target1 target2 ... targetN".
# Invoke it as "bash compare-all-tests target1 target2 ... targetN".
# Assumptions are:
# Assumptions are:
#
#
# 1) that the base and patched compilers reside respectively in
# 1) that the base and patched compilers reside respectively in
# base-$target-build and $target-build, where $target is the commandline
# base-$target-build and $target-build, where $target is the commandline
# argument to compare-all-tests, and should match the variables in the
# argument to compare-all-tests, and should match the variables in the
# script itself so that the correct set of options is tested.  Both
# script itself so that the correct set of options is tested.  Both
# compilers should be fully built (including target libraries).
# compilers should be fully built (including target libraries).
#
#
# 2) that the testsuite has been run on the base compiler (since it's
# 2) that the testsuite has been run on the base compiler (since it's
# just compilation testing, using RUNTESTFLAGS=--target_board=basic-sim
# just compilation testing, using RUNTESTFLAGS=--target_board=basic-sim
# usually suffices).
# usually suffices).
#
#
# Tests that fail to compile on the base compiler are not compared.
# Tests that fail to compile on the base compiler are not compared.
alpha_opts='-mlong-double-64/-mieee -mlong-double-64 -mlong-double-128/-mieee -mlong-double-128'
alpha_opts='-mlong-double-64/-mieee -mlong-double-64 -mlong-double-128/-mieee -mlong-double-128'
arm_opts='-mthumb/-march=armv5t -mthumb/-march=armv6t2 -march=armv5 -mthumb/-march=armv6t2/-mfpu=vfp/-mfloat-abi=softfp -march=armv5/-mfpu=vfp/-mfloat-abi=softfp'
arm_opts='-mthumb/-march=armv5t -mthumb/-march=armv6t2 -march=armv5 -mthumb/-march=armv6t2/-mfpu=vfp/-mfloat-abi=softfp -march=armv5/-mfpu=vfp/-mfloat-abi=softfp'
cris_opts='-march=v32 -march=v1'
cris_opts='-march=v32 -march=v1'
h8300_opts='/ -mh -mh/-mn -ms -ms/-mn -msx -msx/-mn -mint32 -mh/-mint32 -mh/-mn/-mint32 -ms/-mint32 -ms/-mn/-mint32 -msx/-mint32 -msx/-mn/-mint32'
h8300_opts='/ -mh -mh/-mn -ms -ms/-mn -msx -msx/-mn -mint32 -mh/-mint32 -mh/-mn/-mint32 -ms/-mint32 -ms/-mn/-mint32 -msx/-mint32 -msx/-mn/-mint32'
i386_opts='-m32 -m64 -m32/-msse/-msse2/-mfpmath=sse'
i386_opts='-m32 -m64 -m32/-msse/-msse2/-mfpmath=sse'
m32c_opts='-mcpu=r8c -mcpu=m16c -mcpu=m32c'
m32c_opts='-mcpu=r8c -mcpu=m16c -mcpu=m32c'
m68k_opts='-m68000 -m68020 -m68020/-m68881 -m68040/-m68881 -m68060/-m68881 -mcfv4e'
m68k_opts='-m68000 -m68020 -m68020/-m68881 -m68040/-m68881 -m68060/-m68881 -mcfv4e'
mips_opts='-msoft-float/-mgp32/-mips16 -mabi=32/-mfp32/-mgp32/-mips16 -mabi=o64/-mfp64/-mgp64/-mips16 -msoft-float/-mgp32 -mfp32/-mgp32 -march=mips64r2/-mabi=32/-mfp64/-mgp32 -msoft-float/-mgp64 -msingle-float/-mfp32/-mgp64 -mfp64/-mgp64'
mips_opts='-msoft-float/-mgp32/-mips16 -mabi=32/-mfp32/-mgp32/-mips16 -mabi=o64/-mfp64/-mgp64/-mips16 -msoft-float/-mgp32 -mfp32/-mgp32 -march=mips64r2/-mabi=32/-mfp64/-mgp32 -msoft-float/-mgp64 -msingle-float/-mfp32/-mgp64 -mfp64/-mgp64'
mn10300_opts='-mam33 -mam33-2'
mn10300_opts='-mam33 -mam33-2'
pa_opts='-march=2.0 -march=1.0 -march=1.1'
pa_opts='-march=2.0 -march=1.0 -march=1.1'
ppc_opts='-m32 -m64'
ppc_opts='-m32 -m64'
s390_opts='-m31 -m31/-mzarch -m64'
s390_opts='-m31 -m31/-mzarch -m64'
score_opts='-mscore3 -mscore7'
score_opts='-mscore3 -mscore7'
sh64_opts='-m5-32media -m5-32media-nofpu -m5-64media -m5-64media-nofpu -m5-compact -m5-compact-nofpu'
sh64_opts='-m5-32media -m5-32media-nofpu -m5-64media -m5-64media-nofpu -m5-compact -m5-compact-nofpu'
sh_opts='-m3 -m3e -m4 -m4a -m4al -m4/-mieee -m1 -m1/-mno-cbranchdi -m2a -m2a/-mieee -m2e -m2e/-mieee'
sh_opts='-m3 -m3e -m4 -m4a -m4al -m4/-mieee -m1 -m1/-mno-cbranchdi -m2a -m2a/-mieee -m2e -m2e/-mieee'
sparc_opts='-mcpu=v8/-m32 -mcpu=v9/-m32 -m64'
sparc_opts='-mcpu=v8/-m32 -mcpu=v9/-m32 -m64'
all_targets='alpha arm avr bfin cris crx fr30 frv h8300 ia64 iq2000 m32c m32r m68hc11 m68k mcore mips mmix mn10300 pa pdp11 picochip ppc score sh sh64 sparc spu v850 vax xstormy16 xtensa' # e500
all_targets='alpha arm avr bfin cris crx fr30 frv h8300 ia64 iq2000 m32c m32r m68hc11 m68k mcore mips mmix mn10300 pa pdp11 picochip ppc score sh sh64 sparc spu v850 vax xstormy16 xtensa' # e500
test_one_file ()
test_one_file ()
{
{
  local bdir pdir opts bline pline
  local bdir pdir opts bline pline
  bdir=base-$1-gcc-build
  bdir=base-$1-gcc-build
  pdir=$1-gcc-build
  pdir=$1-gcc-build
  bline=$2
  bline=$2
  pline=${2//$bdir/$pdir}
  pline=${2//$bdir/$pdir}
  opts=${3//\// }
  opts=${3//\// }
  echo "$pline $opts"
  echo "$pline $opts"
  $bline $opts 2>/dev/null >/dev/null || return 0
  $bline $opts 2>/dev/null >/dev/null || return 0
  diff -L "$bdir/gcc/cc1 $opts" -L "$pdir/gcc/cc1 $opts" -u \
  diff -L "$bdir/gcc/cc1 $opts" -L "$pdir/gcc/cc1 $opts" -u \
    <( $bline $opts 2>&1 ) <( $pline $opts 2>&1 ) || { echo -n . >&2; return 1; }
    <( $bline $opts 2>&1 ) <( $pline $opts 2>&1 ) || { echo -n . >&2; return 1; }
}
}
test_all_opts ()
test_all_opts ()
{
{
  eval opts=\$${1}_opts
  eval opts=\$${1}_opts
  if test -z "$opts"; then
  if test -z "$opts"; then
    test_one_file $1 "$2"
    test_one_file $1 "$2"
  else
  else
    for opt in $opts; do
    for opt in $opts; do
      test_one_file $1 "$2" $opt
      test_one_file $1 "$2" $opt
    done
    done
  fi
  fi
}
}
for target in ${*-$all_targets}; do
for target in ${*-$all_targets}; do
  mkdir -p $target-gcc-build/gcc/testsuite/gcc
  mkdir -p $target-gcc-build/gcc/testsuite/gcc
  cp -R base-$target-gcc-build/gcc/testsuite/gcc/gcc.dg-struct-layout-1 \
  cp -R base-$target-gcc-build/gcc/testsuite/gcc/gcc.dg-struct-layout-1 \
    $target-gcc-build/gcc/testsuite/gcc/gcc.dg-struct-layout-1
    $target-gcc-build/gcc/testsuite/gcc/gcc.dg-struct-layout-1
  # Provide targ-include files for newlib
  # Provide targ-include files for newlib
  # for newlib_path in `echo base-$target-gcc-build/*/newlib`; do
  # for newlib_path in `echo base-$target-gcc-build/*/newlib`; do
  #   test -d $newlib_path && ln -sf ../../$newlib_path ${newlib_path/base-}
  #   test -d $newlib_path && ln -sf ../../$newlib_path ${newlib_path/base-}
  # done
  # done
  echo -n Testing $target >&2
  echo -n Testing $target >&2
  sed '/^Executing on host: /!d
  sed '/^Executing on host: /!d
    /xgcc -B/!d
    /xgcc -B/!d
    / -E /d
    / -E /d
    / -g/d
    / -g/d
    / -print-prog-name=/d
    / -print-prog-name=/d
    s/^Executing on host: //
    s/^Executing on host: //
    s/   *(timeout.*//
    s/   *(timeout.*//
    s/ -fverbose-asm / /
    s/ -fverbose-asm / /
    s/ -frtl-abstract-sequences / /
    s/ -frtl-abstract-sequences / /
    s/ -fdump[-a-z0-9]* / /g
    s/ -fdump[-a-z0-9]* / /g
    s/ -da / /g
    s/ -da / /g
    s/ -\{1,2\}save-temps / /
    s/ -\{1,2\}save-temps / /
    s/ -c / -S /
    s/ -c / -S /
    / -S /! s/ -o / -S -o /
    / -S /! s/ -o / -S -o /
    s/ -o [^ ]*/ -frandom-seed=0 -o -/' base-$target-gcc-build/gcc/testsuite/gcc/gcc.log | while read line; do
    s/ -o [^ ]*/ -frandom-seed=0 -o -/' base-$target-gcc-build/gcc/testsuite/gcc/gcc.log | while read line; do
    case "$line" in
    case "$line" in
      *" -m"*) test_one_file $target "$line" "" ;;
      *" -m"*) test_one_file $target "$line" "" ;;
      *) test_all_opts $target "$line" ;;
      *) test_all_opts $target "$line" ;;
    esac
    esac
  done > compare-$target.log
  done > compare-$target.log
  echo >&2
  echo >&2
done
done
 
 

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.