1. 16 Apr, 1990 28 commits
    • ram's avatar
      Merged non-descriptor changes: · 23558d26
      ram authored
       revision 1.13.1.2
       date: 90/04/13 13:07:19;  author: ram;  state: Exp;  lines added/del: 7/3
       CONT -> FP.  Added c-d-f-NFP.  Rediscovered the DEBUG-SOURCE-COMMENT.
       ----------------------------
       revision 1.13.1.1
       date: 90/03/27 13:14:52;  author: ram;  state: Exp;  lines added/del: 3/0
       Added DEBUG-SOURCE-COMMENT.
      23558d26
    • ram's avatar
      revision 1.1.1.2 · 9f7d0026
      ram authored
       date: 90/04/13 13:02:38;  author: ram;  state: Exp;  lines added/del: 46/13
       Flush constant SCs for stack and string-char-stack.
       Added save-p args for register SCs so that they will get saved.
       Put back some of the old PRIMITIVE-TYPE hackery so that it will terminate.
       Added back ARGUMENT-POINTER-OFFSET.
       Added OLD-FP-TN.
       Added LOCATION-PRINT-NAME.
       ----------------------------
       revision 1.1.1.1
       date: 90/04/08 23:51:58;  author: ram;  state: Exp;  lines added/del: 55/102
       Changed stuff to use the new non-descriptor stuff for move/coerce.
       Changed PRIMITIVE-TYPE not to use PRIMITIVE-TYPE-OF.  Deleted
       PRIMITIVE-TYPE-OF, since it used PRIMITIVE-TYPE-UNION, which no longer
       exists.
       cont -> fp
       flushed argument pointer.
      9f7d0026
    • ram's avatar
      Merged non-descriptor changes: · 4fdf7d22
      ram authored
       revision 1.2.1.2
       date: 90/04/13 12:59:07;  author: ram;  state: Exp;  lines added/del: 0/13
       Moved POINTER-COMPARE to char, since it is now loaded first.
       ----------------------------
       revision 1.2.1.1
       date: 90/04/08 22:38:40;  author: ram;  state: Exp;  lines added/del: 5/1
       Fixed temporary spec in pointer- to specify a SC restriction.
      4fdf7d22
    • ram's avatar
      Merged non-descriptor changes: · 6ce1ef9d
      ram authored
      Increased SC-NUMBER-LIMIT.
      6ce1ef9d
    • ram's avatar
      Merged non-descriptor changes: · e2f65d28
      ram authored
       revision 1.2.1.2
       date: 90/04/13 12:57:56;  author: ram;  state: Exp;  lines added/del: 2/1
       Many changes amounting to nothing.
       ----------------------------
       revision 1.2.1.1
       date: 90/04/08 23:49:21;  author: ram;  state: Exp;  lines added/del: 58/140
       Changed stuff to use the new non-descriptor stuff for move/coerce.
      e2f65d28
    • ram's avatar
      Merged non-descriptor changes: · 9a7df953
      ram authored
       revision 1.1.1.2
       date: 90/04/13 12:55:45;  author: ram;  state: Exp;  lines added/del: 18/1
       Moved POINTER-COMPARE here, since this is now loaded before system.
       ----------------------------
       revision 1.1.1.1
       date: 90/04/08 23:48:05;  author: ram;  state: Exp;  lines added/del: 52/35
       Changed stuff to use the new non-descriptor stuff for move/coerce.
      9a7df953
    • ram's avatar
      Merged non-descriptor changes: · be773478
      ram authored
      revision 1.2.1.1        
      date: 90/04/08 22:35:45;  author: ram;  state: Exp;  lines added/del: 2/2
      cont-tn -> fp-tn
      be773478
    • ram's avatar
      Merged non-descriptor changes: · 74d189d1
      ram authored
       revision 1.5.1.8
       date: 90/04/13 12:53:32;  author: ram;  state: Exp;  lines added/del: 10/5
       Added SC-NUMBER-STACK-P, flushed IR2-ENVIRONMENT-ARGUMENT-POINTED.
       ----------------------------
       revision 1.5.1.7
       date: 90/04/08 17:28:54;  author: ram;  state: Exp;  lines added/del: 25/15
       Brought up to date w.r.t. trunk.
       ----------------------------
       revision 1.5.1.6
       date: 90/04/08 16:01:05;  author: ram;  state: Exp;  lines added/del: 21/0
       Added VOP-INFO-MOVE-ARGS.
       ----------------------------
       revision 1.5.1.5
       date: 90/04/02 15:11:00;  author: ram;  state: Exp;  lines added/del: 18/11
       Frobbed number stack support a bit.  Added :COMPONENT TN-KIND, and flushed
       :CACHED-CONSTANT.  Added comment describing the new keyword annotations
       of the BASIC-COMBINATION-INFO.
       ----------------------------
       revision 1.5.1.4
       date: 90/03/27 13:09:43;  author: ram;  state: Exp;  lines added/del: 33/27
       Flushed PRIMITIVE-TYPE slots MOVE, COERCE-TO-T and COERCE-FROM-T.
      
       In IR2-ENVIRONMENT, changed the xxx-CONT slots to be xxx-FP, flushed
       ARGUMENT-POINTER and BLOCKS, and added NUMBER-FP.
      
       Added TN-REF-LOAD-TN.
      
       In TEMPLATE, added documentation of the :OR and :CONSTANT operand restrictions.
      
       In VOP-INFO, changed the restrictions bit-vectors to be load-scs vectors.
      
       In SC, added ALTERNATE-SCS, CONSTANT-SCS, SAVE-P, LOAD-FUNCTIONS, LOAD-COSTS,
       MOVE-COSTS, MOVE-VOPS and MOVE-ARG-VOPS.
      
       Flushed TN-COSTS.
      74d189d1
    • ram's avatar
      Merged non-descriptor changes: · 5598153f
      ram authored
       revision 1.7.1.4
       date: 90/04/13 12:43:56;  author: ram;  state: Exp;  lines added/del: 196/115
       Changed DEFINE-STORAGE-CLASS to give each SC a self-load cost of 0.  Fixed
       it to set *META-SC-NUMBERS* at load time as well as at compile time.
       Souped up DEFINE-MOVE-VOP to implicitly define moves for all SC pairs
       that can be moved with use of load functions.
       Added support for the new :MOVE-ARGS option.
       Fixed up load function computation a bit.  Folded the SCs which share a
       load function together.
       Added backward compatibility for the old :SCS and :TYPE options to
       the :TEMPORARY option.
       Fixed arg restriction computation.
       Fixed DO-ENVIRONMENT-IR2-BLOCKS and DO-LIVE-TNs.
       ----------------------------
       revision 1.7.1.3
       date: 90/04/02 15:24:52;  author: ram;  state: Exp;  lines added/del: 29/17
       Frobbed the syntax to DEFINE-MOVE-FUNCTION to indent better.
       Changed DO-LIVE-TNS to iterate over :MORE TNs properly, rather than
       ignoring them.  We need this now that DO-LIVE-TNS is used in
       INIT-LIVE-TNS.
       ----------------------------
       revision 1.7.1.2
       date: 90/03/27 13:01:07;  author: ram;  state: Exp;  lines added/del: 453/218
       Big changes for new non-descriptor support.
      
       New DEFINE-STORAGE-CLASS options: :SAVE-P, :ALTERNATE-SCS, :CONSTANT-SCS.
       SB name NUMBER-STACK has magic significance.
      
       New interfaces DEFINE-MOVE-FUNCTION and DEFINE-MOVE-VOP.
      
       Flushed PRIMITIVE-SUBTYPEP, PRIMITIVE-TYPE-UNION.
      
       Flushed :MOVE, :COERCE-TO-T and :COERCE-FROM-T options to PRIMITIVE-TYPE-VOP.
       (only :CHECK remains.)
      
       Flushed DEFINE-MOVE-COSTS and DEFINE-SAVE-SCS.
      
       Flushed support for temps restricted to multiple SCs temporary primitive types.
       :SCS is flushed in favor of :SC.  Flushed support for NORMAL temps (i.e. not
       either wired or restricted.)  :SC is now required for temps.
      
       Moved operand loading back inside the generator function, and allow loading
       to be conditionalized by the :LOAD-IF option.  Allow the load-TN to be accessed
       with the :LOAD-TN option.
      
       Allow :FROM (:TO) to be specified in results (arguments).
      
       Dump load-scs vectors instead of restriction bit-vectors.  This contains the
       additional info of what SCs can be loaded by load function and what SC to
       load into.
      
       Compute operand costs from the load-function costs + the costs for any
       move/coerce VOPs applicable.
      
       Added support for the new :OR and :CONSTANT operand restrictions.
      
       Allow :NOTE to be NIL (meaning don't give efficiency note, overriding any
       inherited note.)
       ----------------------------
       revision 1.7.1.1
       date: 90/03/06 11:08:02;  author: ram;  state: Exp;  lines added/del: 71/117
       Start hacking on improved support for non-descriptor values.
      5598153f
    • ram's avatar
      Merged non-descriptor changes: · 8bcc33f5
      ram authored
       revision 1.1.2.1
       date: 90/03/27 12:21:55;  author: ram;  state: Exp;  lines added/del: 13/12
       Changed TYPEP transform to distinguish between hairy and unknown types.
       Also, if a type is unknown, we give an optional efficency note instead
       of a warning.  Any warnings should now be given as a consequence of
       the PARSE-UNKNOWN-TYPE condition.
       ----------------------------
       revision 1.1.1.3
       date: 90/03/27 17:02:25;  author: wlott;  state: Exp;  lines added/del: 1/24
       Moved implementation specific predicates into a new VM specific file:
       vm-typetran.lisp.
       ----------------------------
       revision 1.1.1.2
       date: 90/03/26 21:57:20;  author: wlott;  state: Exp;  lines added/del: 6/2
       Only take continuation-value of constant-continuations in the %typep
       transform.
      
       Deal with NIL for the class when converting numeric typep tests.
       ----------------------------
       revision 1.1.1.1
       date: 90/03/23 21:52:24;  author: wlott;  state: Exp;  lines added/del: 1/0
       Added predicate for base-characters.
      8bcc33f5
    • ram's avatar
      Merged non-descriptor changes: · 10f9de4b
      ram authored
       revision 1.1.1.4
       date: 90/04/13 12:42:16;  author: ram;  state: Exp;  lines added/del: 25/10
       Added EMIT-CONTEXT-TEMPLATE.  Fixed some random bugs.  Changed stuff
       to deal with TN-ENVIRONMENT returning an IR1 environment.
       ----------------------------
       revision 1.1.1.3
       date: 90/04/02 15:20:09;  author: ram;  state: Exp;  lines added/del: 36/33
       Eliminated cross-product problems with the MAKE-xxx-TN functions by
       splitting the ENVIRONMENT/COMPONENT live aspect of TNs off into
       separate functions.  Changed FORCE-TN-TO-STACK to work with the new
       alternate SC mechanism.
       ----------------------------
       revision 1.1.1.2
       date: 90/03/27 12:40:37;  author: ram;  state: Exp;  lines added/del: 142/0
       Changed MAKE-RESTRICTED-TN to take a single SC number instead of a listof SC numbers. Added MAKE-REPRESENTATION-TN.Changed MAKE-WIRED-TN and MAKE-WIRED-ENVIRONMENT-TN to no longer take
       a primitive type.
        Moved EMIT-MOVE-TEMPLATE here from IR2tran.  Added EMIT-MOVE-ARG-TEMPLATE
        and EMIT-LOAD-TEMPLATE.  Made these functions return the last VOP
        inserted.
       Moved BLOCK-LABEL, DROP-THRU-P and INSERT-VOP-SEQUENCE here.
       Added DELETE-VOP.
       ----------------------------
       revision 1.1.1.1
       date: 90/03/08 14:01:45;  author: ram;  state: Exp;  lines added/del: 12/17
       Start work on better non-descriptor support.
      10f9de4b
    • ram's avatar
      Merged non-descriptor changes: · 42ca2f8e
      ram authored
       revision 1.2.1.4
       date: 90/04/08 21:05:04;  author: ram;  state: Exp;  lines added/del: 12/14
       Fixed some compiler errors.
       ----------------------------
       revision 1.2.1.3
       date: 90/04/02 15:18:54;  author: ram;  state: Exp;  lines added/del: 42/32
       Added support for :COMPONENT TNs.
      
       Deleted some old debugging code in SELECT-LOCATION.
      
       Changed COMPUTE-LIVE-TNS to use DO-LIVE-TNS instead of rolling our own.  Load
       TN pack will now notice conflicts with :ENVIRONMENT and :COMPONENT TNs.  We
       didn't lose before because all :ENVIRONMENT TNs were on the stack.
      
       Added some (INLINE MEMBER) declarations.
       ----------------------------
       revision 1.2.1.2
       date: 90/03/27 16:07:59;  author: ram;  state: Exp;  lines added/del: 207/311
       Changed stuff to use DO-IR2-ENVIRONMENT-TNS instead of IR2-ENVIRONMENT-BLOCKS.
      
       Flushed TN cost hackery, now that this is replaced by representation selection.
      
       Changed stuff to iterate over alternate SCs instead of primitive-type-SCs, and
       changed stuff to use the save-p/alternates instead of the *save-scs* info.
      
       Changed saving and spilling to work using load-functions via the LOAD-OPERAND
       VOP.
      
       Changed load-TN packing to just stick the TN in the TN-REF-LOAD-TN instead of
       inserting move VOPs.  This allowed the load-TN conflict stuff to be simplified.
       Changed load-TN packing to just go for the recorded load-SC, rather than trying
       to select arbitrary load SCs.
      
       Made error messages somewhat snazzier, tho these should be happening less often
       now that representation selection either detects lossage or allows you to do
       losing things.
      
       Changed restricted packing to work by a flag passed into pack, now that the
       restriction isn't encoded in the TN-COSTS.
       ----------------------------
       revision 1.2.1.1
       date: 90/03/08 14:01:30;  author: ram;  state: Exp;  lines added/del: 2/2
       Start work on better non-descriptor support.
      42ca2f8e
    • ram's avatar
      revision 1.5.1.1 · e651c2c5
      ram authored
      date: 90/03/27 12:19:07;  author: ram;  state: Exp;  lines added/del: 10/7
      Changed the UNKNOWN-FUNCTION structure to be the more general
      UNDEFINED-WARNING structure.
      e651c2c5
    • ram's avatar
      Merged non-descriptor changes: · 591c2634
      ram authored
       revision 1.4.1.2
       date: 90/04/13 12:33:44;  author: ram;  state: Exp;  lines added/del: 2/0
       Actually call SELECT-REPRESENTATIONS.
       ----------------------------
       revision 1.4.1.1
       date: 90/03/27 12:24:31;  author: ram;  state: Exp;  lines added/del: 84/64
       Added new generalized UNDEFINED-WARNING support in place of the old
       UNKNOWN-FUNCTION mechanism.  This is now also used for undefined type
       warnings.
       CHanged control analysis to be called after LTN so that it can
       know which calls are TR.
       Added support for the new FILE-COMMENT macro (really magically
       recognized by PROCESS-FORM.)
       In SUB-COMPILE-FILE, changed the WITH-COMPILATION-UNIT to be inside
       the LET of *PACKAGE* so that the right package is current when
       printing the undefined warnings.
      591c2634
    • ram's avatar
      revision 1.2.1.2 · e030f803
      ram authored
       date: 90/04/13 12:30:22;  author: ram;  state: Exp;  lines added/del: 60/61
       Now we delay a reference even when there is a coercion required.
       Fixed some lossage.
       Changed return annotation to annotate for 1 value when the type is NIL,
       since the return isn't always deleted in this case.
       Changed the loop over nodes to not use DO-NODES, since the block may
       be split out from under us.
       ----------------------------
       revision 1.2.1.1
       date: 90/04/02 15:07:22;  author: ram;  state: Exp;  lines added/del: 141/103
       Start non-descriptor modifications.
      
      
       Blow away the control transfer to the RETURN after a tail call.
       Added stuff to set the COMBINATION-INFO to discriminate between calls
       that will definitely be full as opposed to those that will be inline coded.
       Flushed descriptor arg restriction hackery.
      e030f803
    • ram's avatar
      Merged non-descriptor changes: · b119cad7
      ram authored
       revision 1.6.1.2
       date: 90/04/13 12:26:36;  author: ram;  state: Exp;  lines added/del: 9/9
       Changed stuff to deal with TN-ENVIRONMENT now returning an IR1 environment.
       ----------------------------
       revision 1.6.1.1
       date: 90/04/08 21:01:30;  author: ram;  state: Exp;  lines added/del: 55/52
       Added support for :COMPONENT TNs.  Changed many TN-KIND tests to be
       (EQ ... :NORMAL), rather than being tests for not being :ENVIRONMENT,
       :CONSTANT, etc.
      b119cad7
    • ram's avatar
      Merged non-descriptor changes: · b75211d8
      ram authored
      Changed CONTINUATION-RESULT-TNS to just look at the number of results
      desired, and make any needed temps with type T, instead of trying to
      figure out a type from the restriction.  This code was previously 
      broken (didn't work on *), and was even more broken after addition of
      the new operand restriction kinds.  We don't need this anymore anyway.
      
      
      Fixed up call stuff for new argument convention.
      
      Ripped out coercion stuff.
      b75211d8
    • ram's avatar
      Merged non-descriptor changes: ir1util.lisp · 40f94b03
      ram authored
       revision 1.7.1.2
       date: 90/04/13 12:17:09;  author: ram;  state: Exp;  lines added/del: 33/12
       Added hack to DELETE-RETURN to inhibit blowing away of tail-sets when
       we delete TR returns.
       Fixed up undefined reference stuff a bit, and added NOTE-NAME-DEFINED.
       ----------------------------
       revision 1.7.1.1
       date: 90/03/27 12:17:26;  author: ram;  state: Exp;  lines added/del: 40/0
       Generalized the undefined function warning stuff so that it could be used
       for undefined type warnings as well.  Moved stuff from ir1tran to ir1util,
       defining the new NOTE-UNDEFINED-REFERENCE function.
      40f94b03
    • ram's avatar
      Merged non-descriptor changes: · 4b296505
      ram authored
       revision 1.4.1.2
       date: 90/04/08 18:16:42;  author: ram;  state: Exp;  lines added/del: 1/4
       Changed to use NOTE-NAME-DEFINE instead of hacking on *UNKNOWN-FUNCTIONS*.
       ----------------------------
       revision 1.4.1.1
       date: 90/03/27 12:18:42;  author: ram;  state: Exp;  lines added/del: 3/28
       Generalized the undefined function warning stuff so that it could be used
       for undefined type warnings as well.  Moved stuff from ir1tran to ir1util,
       defining the new NOTE-UNDEFINED-REFERENCE function.
      4b296505
    • ram's avatar
      Merged non-descriptor changes: · a8332868
      ram authored
       revision 1.1.1.2
       date: 90/04/13 12:15:44;  author: ram;  state: Exp;  lines added/del: 1/1
       Changed to use LEAF-TYPE instead of DEFINITION-TYPE, since the latter
       can be trashed by TR return deletion.
       ----------------------------
       revision 1.1.1.1
       date: 90/04/08 18:10:08;  author: ram;  state: Exp;  lines added/del: 1/4
       Use NOTE-NAME-DEFINED instead of hacking on *UNKNOWN-FUNCTIONS*.
      a8332868
    • ram's avatar
      Merged non-descriptor changes: · a9a8dc8f
      ram authored
       revision 1.3.1.4
       date: 90/04/13 12:15:11;  author: ram;  state: Exp;  lines added/del: 2/5
       Deleted some junk.
       ----------------------------
       revision 1.3.1.3
       date: 90/04/08 18:00:21;  author: ram;  state: Exp;  lines added/del: 3/3
       old-cont -> old-fp
       ----------------------------
       revision 1.3.1.2
       date: 90/04/02 15:22:28;  author: ram;  state: Exp;  lines added/del: 12/14
       Changed people to use the new interface to making environment TNs.
       Changed creation of the NLX SP save TN to be done by a VM function
       so that it can portably restrict the TN to the stack now that
       FORCE-TN-TO-STACK only works after representation selection.
       ----------------------------
       revision 1.3.1.1
       date: 90/03/27 12:15:27;  author: ram;  state: Exp;  lines added/del: 3/8
       Un-lobotomized GTN by allowing passing locations to have primitive types
       other than T (now that we should be able to hack this.)
      a9a8dc8f
    • ram's avatar
      Merged non-descriptor changes: · bc198e8d
      ram authored
      revision 1.8.1.1        
      date: 90/04/08 19:58:59;  author: ram;  state: Exp;  lines added/del: 27/27
      Flushed binding of *unknown-functions*.  Instead, use WITH-COMPILATION-UNIT.
      bc198e8d
    • ram's avatar
      Merged non-descriptor changes: · edf3fd0a
      ram authored
      revision 1.2.1.1        
      date: 90/04/13 12:04:26;  author: ram;  state: Exp;  lines added/del: 1/1
      Changed to use LEAF-TYPE instead of DEFINITION-TYPE to get function type,
      since the DEFINITION-TYPE can be trashed by deletion of RETURN nodes
      due to TR calls.
      edf3fd0a
    • ram's avatar
      Merged non-descriptor changes: debug.lisp · ae4479a6
      ram authored
       revision 1.1.1.4
       date: 90/04/12 23:48:28;  author: ram;  state: Exp;  lines added/del: 20/21
       Fixed pre-pack-tn-stats not to have to vars called COMPONENT.
       In TN consistency checking, check that the TN has a SC assigned.
       Changed stuff to be consistent with TN-ENVIRONMENT now that it returns an
       IR1 environment rather than an IR2 environment.
       Flushed old argument pointer stuff.
       Moved TN location printing into the VM dependent function
       LOCATION-PRINT-NAME.
       Changed TN-ref printing to print the now-implicit load-TNs.
       ----------------------------
       revision 1.1.1.3
       date: 90/04/08 17:55:26;  author: ram;  state: Exp;  lines added/del: 2/2
       old-cont -> old-fp
       ----------------------------
       revision 1.1.1.2
       date: 90/04/02 15:09:25;  author: ram;  state: Exp;  lines added/del: 13/6
       Added :COMPONENT TN support.
       ----------------------------
       revision 1.1.1.1
       date: 90/03/27 12:12:30;  author: ram;  state: Exp;  lines added/del: 1/3
       Use DO-ENVIRONMENT-IR2-BLOCKS now that the IR2-ENVIRONMENT-BLOCKS
       slot is gone.
      ae4479a6
    • ram's avatar
      Merged non-descriptor changes: debug-dump.lisp · d8b4d704
      ram authored
       revision 1.10.1.3
       date: 90/04/13 12:11:22;  author: ram;  state: Exp;  lines added/del: 8/3
       Changed block dumping to notice when the successor is in a different
       environment (due to a TR call).
       ----------------------------
       revision 1.10.1.2
       date: 90/04/08 17:54:38;  author: ram;  state: Exp;  lines added/del: 2/2
       old-cont => old-fp
       ----------------------------
       revision 1.10.1.1
       date: 90/03/27 12:12:06;  author: ram;  state: Exp;  lines added/del: 1/0
       Added support for file comments.
      d8b4d704
    • ram's avatar
      Merged non-descriptor changes: · 05e8dc14
      ram authored
      revision 1.2.1.1        
      date: 90/04/08 20:46:50;  author: ram;  state: Exp;  lines added/del: 38/32
      Deleted support for IR2-ENVIRONMENT-BLOCKS.  Changed handling of TR
      local calls now that they are represented by a BLOCK-SUCC link.  We have
      to notice the call and not traverse the link so that code will
      contiguous in a function, but we try to get a drop-through by
      returning the function we want to call so that it will be walked
      next if possible.  Also added code to remove from the 
      IR2-component-values-XXX lists any blocks that we delete due
      to unreachability.  This is now necessary, since control analysis
      runs after LTN (so that we know which calls are TR.)
      05e8dc14
    • ram's avatar
      Merged non-descriptor changes: · bed24a51
      ram authored
       revision 1.6.1.2
       date: 90/04/12 21:40:17;  author: ram;  state: Exp;  lines added/del: 1/1
       Moved char early in the compilation so that the define-move-vops take
       effect.
       ----------------------------
       revision 1.6.1.1
       date: 90/04/08 18:11:15;  author: ram;  state: Exp;  lines added/del: 3/1
       Moved miscop after move, added pesudo-vops and represent.
      bed24a51
    • ram's avatar
      merged non-descriptor branch: · e7b9fa89
      ram authored
      Added new code generation utilities generalized for number stack support.
      e7b9fa89
  2. 13 Apr, 1990 12 commits