diff options
author | Ludovic Courtès <ludo@gnu.org> | 2020-02-08 11:28:59 +0100 |
---|---|---|
committer | Ludovic Courtès <ludo@gnu.org> | 2020-02-08 11:28:59 +0100 |
commit | 7e7d8b778c1db02f4c67e31b860865ad6175864a (patch) | |
tree | fc91e981c4dde0ff0817b6010a81410e5a97d984 | |
parent | ff14b77ff527f297438b83614db0c1d56322ec42 (diff) | |
download | guile-7e7d8b778c1db02f4c67e31b860865ad6175864a.tar.gz |
Remove duplicate procedure in slot-allocation.scm.
* module/language/cps/slot-allocation.scm (add-live-slot)
(kill-dead-slot, compute-slot): Move higher up in the file.
(compute-shuffles): Remove duplicate 'add-live-slot' procedure.
-rw-r--r-- | module/language/cps/slot-allocation.scm | 27 |
1 files changed, 12 insertions, 15 deletions
diff --git a/module/language/cps/slot-allocation.scm b/module/language/cps/slot-allocation.scm index 61a220711..f3800f3ed 100644 --- a/module/language/cps/slot-allocation.scm +++ b/module/language/cps/slot-allocation.scm @@ -1,6 +1,6 @@ ;; Continuation-passing style (CPS) intermediate language (IL) -;; Copyright (C) 2013-2019 Free Software Foundation, Inc. +;; Copyright (C) 2013-2020 Free Software Foundation, Inc. ;;;; This library is free software; you can redistribute it and/or ;;;; modify it under the terms of the GNU Lesser General Public @@ -482,10 +482,18 @@ are comparable with eqv?. A tmp slot may be used." tmp) (loop to-move b (cons s+d moved) last-source)))))))))) -(define (compute-shuffles cps slots call-allocs live-in) - (define (add-live-slot slot live-slots) - (logior live-slots (ash 1 slot))) +(define-inlinable (add-live-slot slot live-slots) + (logior live-slots (ash 1 slot))) + +(define-inlinable (kill-dead-slot slot live-slots) + (logand live-slots (lognot (ash 1 slot)))) +(define-inlinable (compute-slot live-slots hint) + (if (and hint (not (logbit? hint live-slots))) + hint + (find-first-zero live-slots))) + +(define (compute-shuffles cps slots call-allocs live-in) (define (get-cont label) (intmap-ref cps label)) @@ -665,17 +673,6 @@ are comparable with eqv?. A tmp slot may be used." (_ slots))) cps empty-intmap)))) -(define-inlinable (add-live-slot slot live-slots) - (logior live-slots (ash 1 slot))) - -(define-inlinable (kill-dead-slot slot live-slots) - (logand live-slots (lognot (ash 1 slot)))) - -(define-inlinable (compute-slot live-slots hint) - (if (and hint (not (logbit? hint live-slots))) - hint - (find-first-zero live-slots))) - (define (allocate-lazy-vars cps slots call-allocs live-in lazy) (define (compute-live-slots slots label) (intset-fold (lambda (var live) |