aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/Makefile
diff options
authorLuc Van Oostenryck <luc.vanoostenryck@gmail.com>2017-09-22 01:19:23 +0200
committerLuc Van Oostenryck <luc.vanoostenryck@gmail.com>2018-07-01 00:18:44 +0200
commit816250ccdf822a304ca3f1f15b789cc61e82f75a (patch)
treee2d74bd5e4c4a7bcadd03bd21faf3c84a1b61ee7 /Makefile
parent017a4deba447a51d12cd397cd47f666ec20dc2e5 (diff)
downloadsparse-dev-816250ccdf822a304ca3f1f15b789cc61e82f75a.tar.gz
ssa: phase 1: phi-nodes placement
This implement the first phase of classical SSA conversion: the placement of phi-nodes at the dominance frontier. The implementation is rather straight-forward: * for each pseudo used to make an access do: * reject cases that can't be converted: - volatile accesses - symbols externally visible - complex types that should not be converted * scan the concerned instructions and BBs * if there is only 1 store the loads may be directly converted (if dominated by the store!) * if all accesses are in a single BB, then no phi-nodes are needed and the accesses can be rewritten easily * otherwise we compute the iterated dominance frontier of the BBs just scanned and insert the phi-nodes there. * finally, some cleanup is done on dead stores Signed-off-by: Luc Van Oostenryck <luc.vanoostenryck@gmail.com>
Diffstat (limited to 'Makefile')
-rw-r--r--Makefile1
1 files changed, 1 insertions, 0 deletions
diff --git a/Makefile b/Makefile
index 3cffd000..f031fadb 100644
--- a/Makefile
+++ b/Makefile
@@ -59,6 +59,7 @@ LIB_OBJS += scope.o
LIB_OBJS += show-parse.o
LIB_OBJS += simplify.o
LIB_OBJS += sort.o
+LIB_OBJS += ssa.o
LIB_OBJS += sset.o
LIB_OBJS += stats.o
LIB_OBJS += storage.o