From e449fef4e38ae28ca36dafd4b4cff253420052f2 Mon Sep 17 00:00:00 2001 From: Joe Groff Date: Wed, 19 Oct 2011 10:35:33 -0700 Subject: [PATCH] compiler.cfg.builder: safepoint loops and epilogs --- basis/compiler/cfg/builder/builder.factor | 3 +++ 1 file changed, 3 insertions(+) diff --git a/basis/compiler/cfg/builder/builder.factor b/basis/compiler/cfg/builder/builder.factor index 60f6f0acbf..627eeafac2 100644 --- a/basis/compiler/cfg/builder/builder.factor +++ b/basis/compiler/cfg/builder/builder.factor @@ -75,6 +75,7 @@ GENERIC: emit-node ( node -- ) ] keep ; : emit-loop-call ( basic-block -- ) + ##safepoint ##branch basic-block get successors>> push end-basic-block ; @@ -101,6 +102,7 @@ GENERIC: emit-node ( node -- ) basic-block get swap loops get set-at ; : emit-loop ( node -- ) + ##safepoint ##branch begin-basic-block [ label>> id>> remember-loop ] [ child>> emit-nodes ] bi ; @@ -202,6 +204,7 @@ M: #shuffle emit-node ##branch begin-basic-block make-kill-block + ##safepoint ##epilogue ##return ;