Ignore:
Timestamp:
Sep 14, 2010, 11:57:16 PM (10 years ago)
Author:
gz
Message:

Defstruct changes: Get rid of *defstruct-share-accessor-functions*. Typecheck the structure object in copiers, accessors -- both the accessor functions and compiler transforms -- unless nx-inhibit-safety-checking is true. Try to be more consistent about when/how typecheck struct slot types. Generate setter as well as getter functions.

Added new macro, TYPECHECK, that, depending on the value of nx-inhibit-safety-checking, turns into either a declaration or a require-type with approppriately downgraded type.

I had to turn off the typechecking (with optimize declarations) in a handful of places because of a bootstrapping problem: there are some structure types in the ARCH package which are referenced before the package exists, causing bootstrap to fail.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/source/compiler/vinsn.lisp

    r14119 r14258  
    478478  (let* ((gprs-set 0)
    479479         (fprs-set 0))
    480     (do* ((element (vinsn-succ start) (vinsn-succ element)))
     480    (do* ((element (dll-node-succ start) (dll-node-succ element)))
    481481         ((eq element end) (values gprs-set fprs-set))n
    482482      (if (typep element 'vinsn)
     
    488488;;; Return T if any vinsn between START and END (exclusive) sets REG.
    489489(defun vinsn-sequence-sets-reg-p (start end reg)
    490   (do* ((element (vinsn-succ start) (vinsn-succ element)))
     490  (do* ((element (dll-node-succ start) (dll-node-succ element)))
    491491       ((eq element end))
    492492    (if (vinsn-sets-reg-p element reg)
     
    497497;;; attributes set in MASK set.
    498498(defun %vinsn-sequence-has-attribute-p (start end attr)
    499   (do* ((element (vinsn-succ start) (vinsn-succ element)))
     499  (do* ((element (dll-node-succ start) (dll-node-succ element)))
    500500       ((eq element end))
    501501    (when (typep element 'vinsn)
Note: See TracChangeset for help on using the changeset viewer.