]> oss.titaniummirror.com Git - msp430-gcc.git/blobdiff - libstdc++-v3/scripts/check_performance
Imported gcc-4.4.3
[msp430-gcc.git] / libstdc++-v3 / scripts / check_performance
diff --git a/libstdc++-v3/scripts/check_performance b/libstdc++-v3/scripts/check_performance
new file mode 100755 (executable)
index 0000000..4e70106
--- /dev/null
@@ -0,0 +1,95 @@
+#!/usr/bin/env bash
+
+# Script to do performance testing.
+
+# Invocation 
+# check_performance SRC_DIR BUILD_DIR
+
+# 1: variables
+#
+SRC_DIR=$1
+BUILD_DIR=$2
+
+# Now that we've successfully translated the numerical option into
+# a symbolic one, we can safely ignore it.
+shift
+
+# This has been true all along.  Found out about it the hard way...
+case $BASH_VERSION in
+    1*)  
+       echo 'You need bash 2.x to run check_performance.  Exiting.'; 
+       exit 1 ;;
+    *)   ;;  
+esac
+
+flags_script=$BUILD_DIR/scripts/testsuite_flags
+INCLUDES=`$flags_script --build-includes`
+PCH_FLAGS=`$flags_script --cxxpchflags`
+FLAGS=`$flags_script --cxxflags`
+THREAD_FLAG='-pthread'
+COMPILER=`$flags_script --build-cxx`
+SH_FLAG="-Wl,--rpath -Wl,$BUILD_DIR/../../gcc \
+         -Wl,--rpath -Wl,$BUILD_DIR/src/.libs"
+ST_FLAG="-static"
+LINK=$SH_FLAG
+CXX="$COMPILER $INCLUDES $FLAGS $CXXFLAGS $LINK"
+LIBS="./libtestc++.a"
+TESTS_FILE="testsuite_files_performance"
+
+echo CXX is $CXX
+
+for NAME in `cat $TESTS_FILE`
+do
+  RUN=true
+  TESTNAME=$SRC_DIR/testsuite/$NAME
+  FILE_NAME="`basename $NAME`"
+  FILE_NAME="`echo $FILE_NAME | sed 's/.cc//g'`"
+
+  # TEST_S == single thread
+  # TEST_B == do both single and multi-thread
+  # TEST_T == multi-thread
+  for CYCLE in `sed -n 's,.*\(TEST_[SB][0-9]*\)$,\1,p' $TESTNAME`
+  do
+    RUN=false
+    echo $NAME $CYCLE
+    EXE_NAME="`echo $FILE_NAME-$CYCLE.exe`"
+    $CXX -DNOTHREAD -D$CYCLE $TESTNAME $LIBS -o $EXE_NAME
+    if [ -f $EXE_NAME ]; then
+      ./$EXE_NAME
+    else
+      echo "compile error:"
+      echo "$CXX -DNOTHREAD -D$CYCLE $TESTNAME $LIBS -o $EXE_NAME"
+    fi
+  done
+
+  for CYCLE in `sed -n 's,.*\(TEST_[TB][0-9]*\)$,\1,p' $TESTNAME`
+  do
+    RUN=false
+    echo $NAME $CYCLE thread
+    EXE_NAME="`echo $FILE_NAME-$CYCLE.exe`"
+    $CXX $THREAD_FLAG -D$CYCLE $TESTNAME $LIBS -o $EXE_NAME
+    if [ -f $EXE_NAME ]; then
+      ./$EXE_NAME
+    else
+      echo "compile error:"
+      echo "$CXX $THREAD_FLAG -D$CYCLE $TESTNAME $LIBS -o $EXE_NAME"
+    fi
+  done
+
+  if $RUN; then
+    echo $NAME
+    EXE_NAME="`echo $FILE_NAME.exe`"
+    $CXX $TESTNAME $LIBS -o $EXE_NAME
+    if [ -f $EXE_NAME ]; then
+      ./$EXE_NAME >& tmp.$FILE_NAME
+    else
+      echo "compile error:"
+      echo "$CXX $TESTNAME $LIBS -o $EXE_NAME"
+    fi
+    if [ -s tmp.$FILE_NAME ]; then
+       mv tmp.$FILE_NAME $FILE_NAME.xml
+    fi
+  fi
+done
+
+exit 0