diff --git a/perforate.sh b/perforate.sh index 7c8c5ff92fa5cb5fab6f96ea171c1dd8c23a3a2d..c3c7eee4ce27da37858bdc922f17487adadc0bc7 100755 --- a/perforate.sh +++ b/perforate.sh @@ -12,6 +12,9 @@ usage() { printf -- "-e, --extract extract scop\n" printf -- "-p, --perforate perforate scop\n" printf -- "-g, --generate generate perforated program\n" + printf -- "-s, --statement statement to perforate\n" + printf -- "-l, --level level to perforate\n" + } extract_scop() { @@ -27,7 +30,7 @@ run_pluto() { } generate() { - $CLOOG -openscop "$1" >"$2" + $CLOOG -openscop "$1" > "$2" } # default values @@ -89,7 +92,18 @@ if [ "$cmd_extract" = "yes" ]; then fi if [ "$cmd_perforate" = "yes" ]; then - perforate "$scop" "$perforated" "$statement" "$level" + perfin="$(mktemp)" + perfout="$(mktemp)" + cat "$scop" > "$perfin" + IFS="_" + for l in $level; do + IFS="" + perforate "$perfin" "$perfout" "$statement" "$l" + tmp="$perfin" + perfin="$perfout" + perfout="$tmp" + done + cat "$perfin" > "$perforated" fi if [ "$cmd_generate" = "yes" ]; then