aboutsummaryrefslogtreecommitdiff
path: root/gcc/gen-pass-instances.awk
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/gen-pass-instances.awk')
-rw-r--r--gcc/gen-pass-instances.awk28
1 files changed, 23 insertions, 5 deletions
diff --git a/gcc/gen-pass-instances.awk b/gcc/gen-pass-instances.awk
index 9cff429..106a2f6 100644
--- a/gcc/gen-pass-instances.awk
+++ b/gcc/gen-pass-instances.awk
@@ -61,12 +61,14 @@ function handle_line()
len_of_args = len_of_call - (len_of_start + len_of_close);
args_start_at = call_starts_at + len_of_start;
args_str = substr(line, args_start_at, len_of_args);
+ split(args_str, args, ",");
- # Set pass_name argument
- pass_name = args_str;
+ # Set pass_name argument, an optional with_arg argument
+ pass_name = args[1];
+ with_arg = args[2];
- # Find call expression prefix (until and including called function)
- len_of_prefix = args_start_at - 1 - len_of_open;
+ # Find call expression prefix
+ len_of_prefix = call_starts_at - 1;
prefix = substr(line, 1, len_of_prefix);
# Find call expression postfix
@@ -82,7 +84,23 @@ function handle_line()
pass_num = pass_counts[pass_name];
# Print call expression with extra pass_num argument
- printf "%s(%s, %s)%s\n", prefix, pass_name, pass_num, postfix;
+ printf "%s", prefix;
+ if (with_arg)
+ {
+ printf "NEXT_PASS_WITH_ARG";
+ }
+ else
+ {
+ printf "NEXT_PASS";
+ }
+ printf " (";
+ printf "%s", pass_name;
+ printf ", %s", pass_num;
+ if (with_arg)
+ {
+ printf ", %s", with_arg;
+ }
+ printf ")%s\n", postfix;
}
{ handle_line() }