Home | History | Annotate | Download | only in omnetpp
      1 #!/bin/bash -x
      2 
      3 cd examples/omnetpp/cpu2006-redhat-ia32
      4 
      5 # Contains the optimization flags.
      6 flags=''
      7 
      8 # The index of the parameter.
      9 i=1
     10 
     11 # Indicate whether it is parsing the gcc param.
     12 in_gcc_param=false
     13 
     14 for parameter in "$@"
     15   do
     16     #  The last parameter is the file name.
     17     if [ "$i" == "$#" ]; then
     18       file=$parameter
     19       break
     20     fi
     21 
     22     # The param is not a flag, it combines with the flag that comes right after.
     23     # For example, --param max-inline-insns-single 
     24     if [ "$parameter" == "-param" ]; then
     25       in_gcc_param=true
     26       flags+=-$parameter' '
     27       let i++
     28       continue
     29     fi
     30 
     31     # In in_gcc_param section, this flag follows the key word '--param'.
     32     if [ $in_gcc_param == true ]; then
     33       flags+=$parameter' '
     34       let i++
     35       in_gcc_param=false
     36       continue
     37     fi
     38 
     39     # Normal flags.
     40     flags+=-$parameter' '
     41     let i++
     42   done
     43 
     44 # Change the configuration file.
     45 content=$(sed s/amd64-m64-gcc41-kk/test$file/ config/linux64-amd64-pgi.cfg)
     46 echo "$content" | sed s/-O2/-O1\ "$flags"/ >config/linux64-amd64-pgi$file.cfg
     47 . ./shrc
     48 /usr/bin/time -o temp$file runspec --config linux64-amd64-pgi$file -D --action=build  471.omnetpp
     49 
     50 state=$?
     51 
     52 outfile="./benchspec/CPU2006/471.omnetpp/run/build_base_test$file.0000/omnetpp"
     53 
     54 if [ $state -eq 0 ];then
     55   user_time=$(cat build_timer$file | grep "user" | cut -d "u" -f 1)
     56   output_file="$file"
     57 
     58   checksum=$(readelf -x .text $outfile | md5sum | cut -d " " -f 1)
     59   file_size=$(ls -l $outfile | cut -d " " -f 5)
     60   text_section=$(readelf -SW $outfile | grep ".text")
     61   size_hex=$(echo $text_section | sed "s/\s\{1,\}/\ /g" | cut -d ' ' -f 6)
     62   size=$(echo $size_hex | ( echo "ibase=16" ; tr '[:lower:]' '[:upper:]') | bc)
     63 
     64   echo $checksum $user_time $output_file $file_size $size
     65 else
     66   echo "error" "error" "error" "error" "error"
     67 fi
     68 
     69 return $state