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

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [gnu-dev/] [or1k-gcc/] [contrib/] [compare-all-tests] - Blame information for rev 723

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 723 jeremybenn
#! /bin/bash
2
 
3
# Compare the assembly language output for all the gcc tests.
4
# Copyright (C) 2009, 2011 Free Software Foundation, Inc.
5
# Contributed by Paolo Bonzini.
6
#
7
# Invoke it as "bash compare-all-tests target1 target2 ... targetN".
8
# Assumptions are:
9
#
10
# 1) that the base and patched compilers reside respectively in
11
# base-$target-build and $target-build, where $target is the commandline
12
# argument to compare-all-tests, and should match the variables in the
13
# script itself so that the correct set of options is tested.  Both
14
# compilers should be fully built (including target libraries).
15
#
16
# 2) that the testsuite has been run on the base compiler (since it's
17
# just compilation testing, using RUNTESTFLAGS=--target_board=basic-sim
18
# usually suffices).
19
#
20
# Tests that fail to compile on the base compiler are not compared.
21
 
22
alpha_opts='-mlong-double-64/-mieee -mlong-double-64 -mlong-double-128/-mieee -mlong-double-128'
23
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'
24
cris_opts='-march=v32 -march=v1'
25
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'
26
i386_opts='-m32 -m64 -m32/-msse/-msse2/-mfpmath=sse'
27
m32c_opts='-mcpu=r8c -mcpu=m16c -mcpu=m32c'
28
m68k_opts='-m68000 -m68020 -m68020/-m68881 -m68040/-m68881 -m68060/-m68881 -mcfv4e'
29
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'
30
mn10300_opts='-mam33 -mam33-2'
31
pa_opts='-march=2.0 -march=1.0 -march=1.1'
32
ppc_opts='-m32 -m64'
33
s390_opts='-m31 -m31/-mzarch -m64'
34
score_opts='-mscore3 -mscore7'
35
sh64_opts='-m5-32media -m5-32media-nofpu -m5-64media -m5-64media-nofpu -m5-compact -m5-compact-nofpu'
36
sh_opts='-m3 -m3e -m4 -m4a -m4al -m4/-mieee -m1 -m1/-mno-cbranchdi -m2a -m2a/-mieee -m2e -m2e/-mieee'
37
sparc_opts='-mcpu=v8/-m32 -mcpu=v9/-m32 -m64'
38
 
39
all_targets='alpha arm avr bfin cris fr30 frv h8300 ia64 iq2000 m32c m32r m68k mcore mips mmix mn10300 pa pdp11 picochip ppc score sh sh64 sparc spu v850 vax xstormy16 xtensa' # e500
40
 
41
test_one_file ()
42
{
43
  local bdir pdir opts bline pline
44
  bdir=base-$1-gcc-build
45
  pdir=$1-gcc-build
46
  bline=$2
47
  pline=${2//$bdir/$pdir}
48
  opts=${3//\// }
49
  echo "$pline $opts"
50
  $bline $opts 2>/dev/null >/dev/null || return 0
51
  diff -L "$bdir/gcc/cc1 $opts" -L "$pdir/gcc/cc1 $opts" -u \
52
    <( $bline $opts 2>&1 ) <( $pline $opts 2>&1 ) || { echo -n . >&2; return 1; }
53
}
54
 
55
test_all_opts ()
56
{
57
  eval opts=\$${1}_opts
58
  if test -z "$opts"; then
59
    test_one_file $1 "$2"
60
  else
61
    for opt in $opts; do
62
      test_one_file $1 "$2" $opt
63
    done
64
  fi
65
}
66
 
67
for target in ${*-$all_targets}; do
68
  mkdir -p $target-gcc-build/gcc/testsuite/gcc
69
  cp -R base-$target-gcc-build/gcc/testsuite/gcc/gcc.dg-struct-layout-1 \
70
    $target-gcc-build/gcc/testsuite/gcc/gcc.dg-struct-layout-1
71
 
72
  # Provide targ-include files for newlib
73
  # for newlib_path in `echo base-$target-gcc-build/*/newlib`; do
74
  #   test -d $newlib_path && ln -sf ../../$newlib_path ${newlib_path/base-}
75
  # done
76
 
77
  echo -n Testing $target >&2
78
  sed '/^Executing on host: /!d
79
    /xgcc -B/!d
80
    / -E /d
81
    / -g/d
82
    / -print-prog-name=/d
83
    s/^Executing on host: //
84
    s/   *(timeout.*//
85
    s/ -fverbose-asm / /
86
    s/ -frtl-abstract-sequences / /
87
    s/ -fdump[-a-z0-9]* / /g
88
    s/ -da / /g
89
    s/ -\{1,2\}save-temps / /
90
    s/ -c / -S /
91
    / -S /! s/ -o / -S -o /
92
    s/ -o [^ ]*/ -frandom-seed=0 -o -/' base-$target-gcc-build/gcc/testsuite/gcc/gcc.log | while read line; do
93
    case "$line" in
94
      *" -m"*) test_one_file $target "$line" "" ;;
95
      *) test_all_opts $target "$line" ;;
96
    esac
97
  done > compare-$target.log
98
  echo >&2
99
done

powered by: WebSVN 2.1.0

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