summary refs log tree commit diff
path: root/main.c
diff options
context:
space:
mode:
authorQuentin Carbonneaux <quentin@c9x.me>2022-08-31 17:09:04 +0200
committerQuentin Carbonneaux <quentin@c9x.me>2022-10-03 10:41:03 +0200
commita9a70e30a8205a8f835c59fd8297e4a4483cc8d4 (patch)
treea4551f26f719951a2301dc248168af385f4ebc68 /main.c
parent0b26cd4f5ecff8a01fb3f0adb902c14e043581e9 (diff)
downloadroux-a9a70e30a8205a8f835c59fd8297e4a4483cc8d4.tar.gz
add new target-specific abi0 pass
The general idea is to give abis a
chance to talk before we've done all
the optimizations. Currently, all
targets eliminate {par,arg,ret}{sb,ub,...}
during this pass. The forthcoming
arm64_apple will, however, insert
proper extensions during abi0.

Moving forward abis can, for example,
lower small-aggregates passing there
so that memory optimizations can
interact better with function calls.
Diffstat (limited to 'main.c')
-rw-r--r--main.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/main.c b/main.c
index e82b062..253d0c5 100644
--- a/main.c
+++ b/main.c
@@ -56,6 +56,7 @@ func(Fn *fn)
 		fprintf(stderr, "\n> After parsing:\n");
 		printfn(fn, stderr);
 	}
+	T.abi0(fn);
 	fillrpo(fn);
 	fillpreds(fn);
 	filluse(fn);
@@ -71,7 +72,7 @@ func(Fn *fn)
 	copy(fn);
 	filluse(fn);
 	fold(fn);
-	T.abi(fn);
+	T.abi1(fn);
 	fillpreds(fn);
 	filluse(fn);
 	T.isel(fn);