You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
69 lines
1.8 KiB
69 lines
1.8 KiB
#!/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 |