Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
R
riscv-gcc-1
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
lvzhengyang
riscv-gcc-1
Commits
202c5083
Commit
202c5083
authored
Apr 16, 2009
by
Paolo Bonzini
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Add compare-all-tests.
From-SVN: r146193
parent
ccacdf06
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
99 additions
and
0 deletions
+99
-0
contrib/compare-all-tests
+99
-0
No files found.
contrib/compare-all-tests
0 → 100644
View file @
202c5083
#! /bin/bash
# Compare the assembly language output for all the gcc tests.
# Copyright (C) 2009 Free Software Foundation, Inc.
# Contributed by Paolo Bonzini.
#
# Invoke it as "bash compare-all-tests target1 target2 ... targetN".
# Assumptions are:
#
# 1) that the base and patched compilers reside respectively in
# base-$target-build and $target-build, where $target is the commandline
# argument to compare-all-tests, and should match the variables in the
# script itself so that the correct set of options is tested. Both
# compilers should be fully built (including target libraries).
#
# 2) that the testsuite has been run on the base compiler (since it's
# just compilation testing, using RUNTESTFLAGS=--target_board=basic-sim
# usually suffices).
#
# 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'
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'
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'
m32c_opts
=
'-mcpu=r8c -mcpu=m16c -mcpu=m32c'
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'
mn10300_opts
=
'-mam33 -mam33-2'
pa_opts
=
'-march=2.0 -march=1.0 -march=1.1'
ppc_opts
=
'-m32 -m64'
s390_opts
=
'-m31 -m31/-mzarch -m64'
score_opts
=
'-mscore3 -mscore7'
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'
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
test_one_file
()
{
local
bdir pdir opts bline pline
bdir
=
base-
$1
-gcc-build
pdir
=
$1
-gcc-build
bline
=
$2
pline
=
${
2
//
$bdir
/
$pdir
}
opts
=
${
3
//\//
}
echo
"
$pline
$opts
"
$bline
$opts
2>/dev/null
>
/dev/null
||
return
0
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
;
}
}
test_all_opts
()
{
eval
opts
=
\$
${
1
}
_opts
if
test
-z
"
$opts
"
;
then
test_one_file
$1
"
$2
"
else
for
opt
in
$opts
;
do
test_one_file
$1
"
$2
"
$opt
done
fi
}
for
target
in
${
*-
$all_targets
}
;
do
mkdir
-p
$target
-gcc-build
/gcc/testsuite/gcc
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
# Provide targ-include files for newlib
# for newlib_path in `echo base-$target-gcc-build/*/newlib`; do
# test -d $newlib_path && ln -sf ../../$newlib_path ${newlib_path/base-}
# done
echo
-n
Testing
$target
>
&2
sed
'/^Executing on host: /!d
/xgcc -B/!d
/ -E /d
/ -g/d
/ -print-prog-name=/d
s/^Executing on host: //
s/ *(timeout.*//
s/ -fverbose-asm / /
s/ -frtl-abstract-sequences / /
s/ -fdump[-a-z0-9]* / /g
s/ -da / /g
s/ -\{1,2\}save-temps / /
s/ -c / -S /
/ -S /! s/ -o / -S -o /
s/ -o [^ ]*/ -frandom-seed=0 -o -/'
base-
$target
-gcc-build
/gcc/testsuite/gcc/gcc.log |
while
read
line
;
do
case
"
$line
"
in
*
" -m"
*
)
test_one_file
$target
"
$line
"
""
;;
*
)
test_all_opts
$target
"
$line
"
;;
esac
done
>
compare-
$target
.log
echo
>
&2
done
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment