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

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [gnu-stable/] [gcc-4.5.1/] [contrib/] [compare-all-tests] - Blame information for rev 837

Go to most recent revision | Details | Compare with Previous | View Log

Line No. Rev Author Line
1 265 jeremybenn
#! /bin/bash
2
 
3
# Compare the assembly language output for all the gcc tests.
4
# Copyright (C) 2009 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 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
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.