Optimize pool resource allocation
[official-gcc.git] / libstdc++-v3 / scripts / check_performance
blob3fa927480c9ea714270ac9ac4c12fe79712b049d
1 #!/usr/bin/env bash
3 # Script to do performance testing.
5 # Invocation
6 # check_performance SRC_DIR BUILD_DIR
8 # 1: variables
10 SRC_DIR=$1
11 BUILD_DIR=$2
13 # Now that we've successfully translated the numerical option into
14 # a symbolic one, we can safely ignore it.
15 shift
17 # This has been true all along. Found out about it the hard way...
18 case $BASH_VERSION in
19 1*)
20 echo 'You need bash 2.x to run check_performance. Exiting.';
21 exit 1 ;;
22 *) ;;
23 esac
25 flags_script=$BUILD_DIR/scripts/testsuite_flags
26 INCLUDES=`$flags_script --build-includes`
27 PCH_FLAGS=`$flags_script --cxxpchflags`
28 FLAGS=`$flags_script --cxxflags`
29 THREAD_FLAG='-pthread'
30 COMPILER=`$flags_script --build-cxx`
31 SH_FLAG="-Wl,--rpath -Wl,$BUILD_DIR/../../gcc \
32 -Wl,--rpath -Wl,$BUILD_DIR/src/.libs"
33 ST_FLAG="-static"
34 LINK=$SH_FLAG
35 CXX="$COMPILER $INCLUDES $FLAGS -std=gnu++0x $CXXFLAGS $LINK"
36 LIBS="./libtestc++.a"
37 TESTS_FILE="testsuite_files_performance"
39 echo CXX is $CXX
41 for NAME in `cat $TESTS_FILE`
43 RUN=true
44 TESTNAME=$SRC_DIR/testsuite/$NAME
45 FILE_NAME="`basename $NAME`"
46 FILE_NAME="`echo $FILE_NAME | sed 's/.cc//g'`"
47 ORIG_CXX="$CXX"
48 CXX="$CXX `sed -n 's/.* STD=/-std=/p' $TESTNAME`"
50 # TEST_S == single thread
51 # TEST_B == do both single and multi-thread
52 # TEST_T == multi-thread
53 for CYCLE in `sed -n 's,.*\(TEST_[SB][0-9]*\)$,\1,p' $TESTNAME`
55 RUN=false
56 echo $NAME $CYCLE
57 EXE_NAME="`echo $FILE_NAME-$CYCLE.exe`"
58 $CXX -DNOTHREAD -D$CYCLE $TESTNAME $LIBS -o $EXE_NAME
59 if [ -f $EXE_NAME ]; then
60 ./$EXE_NAME
61 else
62 echo "compile error:"
63 echo "$CXX -DNOTHREAD -D$CYCLE $TESTNAME $LIBS -o $EXE_NAME"
65 done
67 for CYCLE in `sed -n 's,.*\(TEST_[TB][0-9]*\)$,\1,p' $TESTNAME`
69 RUN=false
70 echo $NAME $CYCLE thread
71 EXE_NAME="`echo $FILE_NAME-$CYCLE.exe`"
72 $CXX $THREAD_FLAG -D$CYCLE $TESTNAME $LIBS -o $EXE_NAME
73 if [ -f $EXE_NAME ]; then
74 ./$EXE_NAME
75 else
76 echo "compile error:"
77 echo "$CXX $THREAD_FLAG -D$CYCLE $TESTNAME $LIBS -o $EXE_NAME"
79 done
81 if $RUN; then
82 echo $NAME
83 EXE_NAME="`echo $FILE_NAME.exe`"
84 $CXX $TESTNAME $LIBS -o $EXE_NAME
85 if [ -f $EXE_NAME ]; then
86 ./$EXE_NAME >& tmp.$FILE_NAME
87 else
88 echo "compile error:"
89 echo "$CXX $TESTNAME $LIBS -o $EXE_NAME"
91 if [ -s tmp.$FILE_NAME ]; then
92 mv tmp.$FILE_NAME $FILE_NAME.xml
95 CXX="$ORIG_CXX"
96 done
98 exit 0