aboutsummaryrefslogtreecommitdiff
path: root/bestflags/examples/omnetpp/build_omnetpp
diff options
context:
space:
mode:
Diffstat (limited to 'bestflags/examples/omnetpp/build_omnetpp')
-rwxr-xr-xbestflags/examples/omnetpp/build_omnetpp69
1 files changed, 69 insertions, 0 deletions
diff --git a/bestflags/examples/omnetpp/build_omnetpp b/bestflags/examples/omnetpp/build_omnetpp
new file mode 100755
index 00000000..35e9ec13
--- /dev/null
+++ b/bestflags/examples/omnetpp/build_omnetpp
@@ -0,0 +1,69 @@
+#!/bin/bash -x
+
+cd examples/omnetpp/cpu2006-redhat-ia32
+
+# Contains the optimization flags.
+flags=''
+
+# The index of the parameter.
+i=1
+
+# Indicate whether it is parsing the gcc param.
+in_gcc_param=false
+
+for parameter in "$@"
+ do
+ # The last parameter is the file name.
+ if [ "$i" == "$#" ]; then
+ file=$parameter
+ break
+ fi
+
+ # The param is not a flag, it combines with the flag that comes right after.
+ # For example, --param max-inline-insns-single
+ if [ "$parameter" == "-param" ]; then
+ in_gcc_param=true
+ flags+=-$parameter' '
+ let i++
+ continue
+ fi
+
+ # In in_gcc_param section, this flag follows the key word '--param'.
+ if [ $in_gcc_param == true ]; then
+ flags+=$parameter' '
+ let i++
+ in_gcc_param=false
+ continue
+ fi
+
+ # Normal flags.
+ flags+=-$parameter' '
+ let i++
+ done
+
+# Change the configuration file.
+content=$(sed s/amd64-m64-gcc41-kk/test$file/ config/linux64-amd64-pgi.cfg)
+echo "$content" | sed s/-O2/-O1\ "$flags"/ >config/linux64-amd64-pgi$file.cfg
+. ./shrc
+/usr/bin/time -o temp$file runspec --config linux64-amd64-pgi$file -D --action=build 471.omnetpp
+
+state=$?
+
+outfile="./benchspec/CPU2006/471.omnetpp/run/build_base_test$file.0000/omnetpp"
+
+if [ $state -eq 0 ];then
+ user_time=$(cat build_timer$file | grep "user" | cut -d "u" -f 1)
+ output_file="$file"
+
+ checksum=$(readelf -x .text $outfile | md5sum | cut -d " " -f 1)
+ file_size=$(ls -l $outfile | cut -d " " -f 5)
+ text_section=$(readelf -SW $outfile | grep ".text")
+ size_hex=$(echo $text_section | sed "s/\s\{1,\}/\ /g" | cut -d ' ' -f 6)
+ size=$(echo $size_hex | ( echo "ibase=16" ; tr '[:lower:]' '[:upper:]') | bc)
+
+ echo $checksum $user_time $output_file $file_size $size
+else
+ echo "error" "error" "error" "error" "error"
+fi
+
+return $state \ No newline at end of file