Files
mercury/tools/optstages
Zoltan Somogyi 47a1a02a92 Add vim modelines to most tools.
tools/add_cont_lines:
tools/appears:
tools/assemble:
tools/avg_frame_size:
tools/build_srcdist:
tools/cleanint:
tools/compare_frame_sizes:
tools/configure_mingw_cross:
tools/cont:
tools/ctor_rep_stats:
tools/cur_param:
tools/dd_speedtest:
tools/divide:
tools/extract_dd_stats:
tools/file_name_translation_stats:
tools/frame_sizes:
tools/gdbrun:
tools/half:
tools/info_stats.awk:
tools/linear:
tools/lmc.in:
tools/mai_stats:
tools/make_arena:
tools/next_param:
tools/not:
tools/optstages:
tools/type_ctor_stats:
    Add vim mode lines. Replace tabs with spaces.
2021-04-27 03:54:27 +10:00

52 lines
958 B
Bash
Executable File

#!/bin/sh
# vim: ft=sh ts=4 sw=4 et
# Given the name of a file containing output generated by mmc --debug-opt,
# e.g. Out, generate a series of files Out.stage.N, each containing the
# output of one stage of the optimization process.
#
# This script is most useful if the input file was generated by compiling
# a Mercury module containing only one procedure.
if test $# != 1
then
echo "Usage: optstages filename"
exit 1
fi
TERMCAP=/etc/termcap; export TERMCAP
cp $1 .tmp
/bin/rm $1.stage.* > /dev/null 2>&1
# get rid of everything before
ed - .tmp > /dev/null << END
/^before optimization/
1,-d
/^% Optimizing/
1,-w $1.stage.0
1,-d
w
q
END
echo "created $1.stage.0"
i=1
while test `egrep '^after' .tmp | wc -l` -gt 1
do
ed - .tmp > /dev/null << END
/^after/
/^% Optimizing/
1,-w $1.stage.$i
1,-d
w
q
END
echo "created $1.stage.$i"
i=`expr $i + 1`
done
mv .tmp $1.stage.$i
echo "created $1.stage.$i"
exit 0