Changeset 12594


Ignore:
Timestamp:
Aug 16, 2009, 9:53:25 PM (10 years ago)
Author:
gb
Message:

In {PPC2,X862}-FLET, just treat the body as a LOCALLY form if none
of the local functions are referenced. (This is a workaround for
the fact that {PPC2,X862}-SEQ-FBIND and some of the functions it
calls box return values unnecessarily while unwinding and may decide
to do that before realizing that no unwinding is necessary.)

Location:
trunk/source/compiler
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/source/compiler/PPC/ppc2.lisp

    r12580 r12594  
    74087408
    74097409(defppc2 ppc2-flet flet (seg vreg xfer vars afuncs body p2decls)
    7410   (ppc2-seq-fbind seg vreg xfer vars afuncs body p2decls))
     7410  (if (dolist (afunc afuncs)
     7411        (unless (eql 0 (afunc-fn-refcount afunc))
     7412          (return t)))
     7413    (ppc2-seq-fbind seg vreg xfer vars afuncs body p2decls)
     7414    (with-ppc-p2-declarations p2-decls
     7415      (ppc2-form seg vreg xfer body))))
    74117416
    74127417(defppc2 ppc2-labels labels (seg vreg xfer vars afuncs body p2decls)
  • trunk/source/compiler/X86/x862.lisp

    r12513 r12594  
    82978297
    82988298(defx862 x862-flet flet (seg vreg xfer vars afuncs body p2decls)
    8299   (x862-seq-fbind seg vreg xfer vars afuncs body p2decls))
     8299  (if (dolist (afunc afuncs)
     8300        (unless (eql 0 (afunc-fn-refcount afunc))
     8301          (return t)))
     8302    (x862-seq-fbind seg vreg xfer vars afuncs body p2decls)
     8303    (with-x86-p2-declarations p2decls
     8304      (x862-form seg vreg xfer body))))
    83008305
    83018306(defx862 x862-labels labels (seg vreg xfer vars afuncs body p2decls)
Note: See TracChangeset for help on using the changeset viewer.