Skip to content

Commit da4deab

Browse files
committed
limit number of optimization passes
1 parent ed307d3 commit da4deab

File tree

1 file changed

+5
-1
lines changed

1 file changed

+5
-1
lines changed

src/codegen/optimizer.lisp

+5-1
Original file line numberDiff line numberDiff line change
@@ -223,6 +223,10 @@ arity. TABLE will be mutated with additional entries."
223223
name hoister package env)))
224224
(pop-final-hoist-point hoister))))
225225

226+
(declaim (type (integer 0) *maximum-optimization-passes*))
227+
(defvar *maximum-optimization-passes* 4
228+
"The maximum number of times the optimizer may re-optimize.")
229+
226230
(defun optimize-node (node env)
227231
"Perform a series of optimizations on NODE in the environment
228232
ENV. Return a new node which is optimized."
@@ -249,7 +253,7 @@ ENV. Return a new node which is optimized."
249253
(inline-applications node env)
250254
(setf redo? (or redo? inlined?))
251255
(setf node new-node))
252-
(when redo?
256+
(when (and redo? (<= runs *maximum-optimization-passes*))
253257
(go :REDO)))
254258
;; Return the node.
255259
node)

0 commit comments

Comments
 (0)