/[cmucl]/src/compiler/constraint.lisp
ViewVC logotype

Log of /src/compiler/constraint.lisp

Parent Directory Parent Directory | Revision Log Revision Log


Links to HEAD: (view) (annotate)
Sticky Tag:

Revision 1.27 - (view) (annotate) - [select for diffs]
Fri Mar 19 15:19:00 2010 UTC (4 years, 1 month ago) by rtoy
Branch: MAIN
CVS Tags: GIT-CONVERSION, HEAD, RELEASE_20b, cross-sol-x86-2010-12-20, cross-sol-x86-base, cross-sol-x86-merged, cross-sparc-branch-base, post-merge-intl-branch, release-20b-pre1, release-20b-pre2, snapshot-2010-04, snapshot-2010-05, snapshot-2010-06, snapshot-2010-07, snapshot-2010-08, snapshot-2010-11, snapshot-2010-12, snapshot-2011-01, snapshot-2011-02, snapshot-2011-03, snapshot-2011-04, snapshot-2011-06, snapshot-2011-07, snapshot-2011-09, sparc-tramp-assem-2010-07-19, sparc-tramp-assem-base
Branch point for: RELEASE-20B-BRANCH, cross-sol-x86-branch, cross-sparc-branch, sparc-tramp-assem-branch
Changes since 1.26: +3 -2 lines
Diff to previous 1.26
Merge intl-branch 2010-03-18 to HEAD.  To build, you need to use
boot-2010-02-1 as the bootstrap file.  You should probably also use
the new -P option for build.sh to generate and update the po files
while building.

Revision 1.26.44.1 - (view) (annotate) - [select for diffs]
Thu Feb 25 20:34:52 2010 UTC (4 years, 1 month ago) by rtoy
Branch: intl-2-branch
Changes since 1.26: +3 -2 lines
Diff to previous 1.26 , to next main 1.27
Restart internalization work.  This new branch starts with code from
the intl-branch on date 2010-02-12 18:00:00+0500.  This version works
and

LANG=en@piglatin bin/lisp

works (once the piglatin translation is added).

Revision 1.26.42.3 - (view) (annotate) - [select for diffs]
Thu Feb 25 04:35:40 2010 UTC (4 years, 1 month ago) by rtoy
Branch: intl-branch
CVS Tags: intl-branch-2010-03-18-1300
Changes since 1.26.42.2: +2 -2 lines
Diff to previous 1.26.42.2 , to branch point 1.26 , to next main 1.27
o Make COMPILER-WARNING do the string lookup instead of at each call
  site.
o Change all calls to COMPILER-WARNING to use _N" instead of _".

Revision 1.26.42.2 - (view) (annotate) - [select for diffs]
Wed Feb 10 21:50:39 2010 UTC (4 years, 2 months ago) by rtoy
Branch: intl-branch
CVS Tags: intl-branch-working-2010-02-11-1000, intl-branch-working-2010-02-19-1000
Changes since 1.26.42.1: +2 -2 lines
Diff to previous 1.26.42.1 , to branch point 1.26
Mark translatable strings; regenerate cmucl.pot and ko/cmucl.po
accordingly.

Revision 1.26.42.1 - (view) (annotate) - [select for diffs]
Mon Feb 8 17:15:50 2010 UTC (4 years, 2 months ago) by rtoy
Branch: intl-branch
Changes since 1.26: +2 -1 lines
Diff to previous 1.26
Add (intl:textdomain "cmucl") to the files to set the textdomain.

Revision 1.26 - (view) (annotate) - [select for diffs]
Fri Oct 3 15:02:02 2003 UTC (10 years, 6 months ago) by gerd
Branch: MAIN
CVS Tags: RELEASE_19f, RELEASE_20a, amd64-dd-start, amd64-merge-start, double-double-array-base, double-double-array-checkpoint, double-double-base, double-double-init-%make-sparc, double-double-init-checkpoint-1, double-double-init-ppc, double-double-init-sparc, double-double-init-sparc-2, double-double-init-x86, double-double-irrat-end, double-double-irrat-start, double-double-reader-base, double-double-reader-checkpoint-1, double-double-sparc-checkpoint-1, intl-2-branch-base, intl-branch-base, label-2009-03-16, label-2009-03-25, merge-sse2-packed, merge-with-19f, merged-unicode-utf16-extfmt-2009-06-11, mod-arith-base, portable-clx-base, portable-clx-import-2009-06-16, ppc_gencgc_snap_2005-05-14, ppc_gencgc_snap_2005-12-17, ppc_gencgc_snap_2006-01-06, pre-merge-intl-branch, pre-telent-clx, prm-before-macosx-merge-tag, release-19a, release-19a-base, release-19a-pre1, release-19a-pre2, release-19a-pre3, release-19b-base, release-19b-pre1, release-19b-pre2, release-19c, release-19c-base, release-19c-pre1, release-19d, release-19d-base, release-19d-pre1, release-19d-pre2, release-19e, release-19e-base, release-19e-pre1, release-19e-pre2, release-19f-base, release-19f-pre1, release-20a-base, release-20a-pre1, snapshot-2003-11, snapshot-2003-12, snapshot-2004-04, snapshot-2004-05, snapshot-2004-06, snapshot-2004-07, snapshot-2004-08, snapshot-2004-09, snapshot-2004-10, snapshot-2004-11, snapshot-2004-12, snapshot-2005-01, snapshot-2005-02, snapshot-2005-03, snapshot-2005-04, snapshot-2005-05, snapshot-2005-06, snapshot-2005-07, snapshot-2005-08, snapshot-2005-09, snapshot-2005-10, snapshot-2005-11, snapshot-2005-12, snapshot-2006-01, snapshot-2006-02, snapshot-2006-03, snapshot-2006-04, snapshot-2006-05, snapshot-2006-06, snapshot-2006-07, snapshot-2006-08, snapshot-2006-09, snapshot-2006-10, snapshot-2006-11, snapshot-2006-12, snapshot-2007-01, snapshot-2007-02, snapshot-2007-03, snapshot-2007-04, snapshot-2007-05, snapshot-2007-06, snapshot-2007-07, snapshot-2007-08, snapshot-2007-09, snapshot-2007-10, snapshot-2007-11, snapshot-2007-12, snapshot-2008-01, snapshot-2008-02, snapshot-2008-03, snapshot-2008-04, snapshot-2008-05, snapshot-2008-06, snapshot-2008-07, snapshot-2008-08, snapshot-2008-09, snapshot-2008-10, snapshot-2008-11, snapshot-2008-12, snapshot-2009-01, snapshot-2009-02, snapshot-2009-04, snapshot-2009-05, snapshot-2009-07, snapshot-2009-08, snapshot-2009-11, snapshot-2009-12, snapshot-2010-01, snapshot-2010-02, snapshot-2010-03, sse2-base, sse2-checkpoint-2008-10-01, sse2-merge-with-2008-10, sse2-merge-with-2008-11, sse2-packed-2008-11-12, sse2-packed-base, unicode-snapshot-2009-05, unicode-snapshot-2009-06, unicode-string-buffer-base, unicode-string-buffer-impl-base, unicode-utf16-base, unicode-utf16-char-support-2009-03-25, unicode-utf16-char-support-2009-03-26, unicode-utf16-extfmt-2009-03-27, unicode-utf16-extfmt-2009-06-11, unicode-utf16-extfmts-pre-sync-2008-11, unicode-utf16-extfmts-sync-2008-12, unicode-utf16-string-support, unicode-utf16-sync-2008-07, unicode-utf16-sync-2008-09, unicode-utf16-sync-2008-11, unicode-utf16-sync-2008-12, unicode-utf16-sync-label-2009-03-16
Branch point for: RELEASE-19F-BRANCH, RELEASE-20A-BRANCH, amd64-dd-branch, double-double-array-branch, double-double-branch, double-double-reader-branch, intl-2-branch, intl-branch, mod-arith-branch, portable-clx-branch, ppc_gencgc_branch, release-19a-branch, release-19b-branch, release-19c-branch, release-19d-branch, release-19e-branch, sse2-branch, sse2-packed-branch, unicode-string-buffer-branch, unicode-string-buffer-impl-branch, unicode-utf16-branch, unicode-utf16-extfmt-branch
Changes since 1.25: +3 -2 lines
Diff to previous 1.25
	(compile nil '(lambda (b)
	                (declare (type (integer -290488443 2) b)
	                         (optimize (speed 3) (safety 1) (debug 1)))
                        (let ((v3 (min -1720 b)))
	                  (max v3 (logcount (if (= v3 b) b b))))))
	 => error in function lisp::assert-error:
            the assertion (eq c::env
                      (c::lambda-environment
                       (c::lambda-var-home c::thing))) failed.

	Found by Paul Dietz.  Fix from SBCL/Alexey Dejneka.

	* src/compiler/constraint.lisp (constrain-ref-type):
	Don't change a ref to an unused leaf.

Revision 1.25 - (view) (annotate) - [select for diffs]
Tue Oct 15 16:36:51 2002 UTC (11 years, 6 months ago) by toy
Branch: MAIN
CVS Tags: cold-pcl-base, dynamic-extent-base, lisp-executable-base, release-18e, release-18e-base, release-18e-pre1, release-18e-pre2, remove_negative_zero_not_zero, snapshot-2003-10, sparc_gencgc, sparc_gencgc_merge
Branch point for: cold-pcl, dynamic-extent, lisp-executable, release-18e-branch, sparc_gencgc_branch
Changes since 1.24: +46 -45 lines
Diff to previous 1.24
Port over SBCL's fix for the Entomotomy bug

eql-with-one-arg-fails-in-add-test-constraints

This occurs when EQL is given only one arg.

Revision 1.24 - (view) (annotate) - [select for diffs]
Sun Aug 25 19:01:28 2002 UTC (11 years, 7 months ago) by toy
Branch: MAIN
CVS Tags: LINKAGE_TABLE, PRE_LINKAGE_TABLE, UNICODE-BASE
Branch point for: UNICODE-BRANCH
Changes since 1.23: +4 -2 lines
Diff to previous 1.23
Apply Alexey Dejneka's compiler fix for SBCL bug 120a which says:

   The compiler incorrectly figures the return type of
        (DEFUN FOO (FRAME UP-FRAME)
          (IF (OR (NOT FRAME)
                  T)
              FRAME
              "BAR"))
   as NIL.

Revision 1.17.2.5 - (view) (annotate) - [select for diffs]
Sat Mar 23 18:50:16 2002 UTC (12 years, 1 month ago) by pw
Branch: RELENG_18
CVS Tags: RELEASE_18d
Changes since 1.17.2.4: +4 -5 lines
Diff to previous 1.17.2.4 , to branch point 1.17 , to next main 1.27
Mega commit to bring RELENG_18 branch in sync with HEAD in preparation
for release tagging 18d.

Revision 1.23 - (view) (annotate) - [select for diffs]
Thu Apr 12 19:45:56 2001 UTC (13 years ago) by pw
Branch: MAIN
Changes since 1.22: +1 -2 lines
Diff to previous 1.22
From Ray Toy:

Here is the patch that makes the propagate-float-type,
propagate-fun-type, and constrain-float-type features the default.
All old code is removed.

If you recompile, you should probably remove these features, just to
be sure (caught a few mistakes that way).

Revision 1.22 - (view) (annotate) - [select for diffs]
Sun Mar 4 20:12:13 2001 UTC (13 years, 1 month ago) by pw
Branch: MAIN
Changes since 1.21: +4 -4 lines
Diff to previous 1.21
Change most PROCLAIMs to DECLAIMs.

Revision 1.17.2.4 - (view) (annotate) - [select for diffs]
Thu Jul 6 06:57:41 2000 UTC (13 years, 9 months ago) by dtc
Branch: RELENG_18
CVS Tags: RELEASE_18c
Changes since 1.17.2.3: +4 -3 lines
Diff to previous 1.17.2.3 , to branch point 1.17
Fix two references to continuation derived and asserted types
respectively to consider just the received single-value-type, avoiding
unexpectedly values types.

Revision 1.21 - (view) (annotate) - [select for diffs]
Thu Jul 6 04:40:31 2000 UTC (13 years, 9 months ago) by dtc
Branch: MAIN
Changes since 1.20: +4 -3 lines
Diff to previous 1.20
Fix two references to continuation derived and asserted types
respectively to consider just the received single-value-type, avoiding
unexpectedly values types.

Revision 1.17.2.3 - (view) (annotate) - [select for diffs]
Tue May 23 16:37:02 2000 UTC (13 years, 10 months ago) by pw
Branch: RELENG_18
Changes since 1.17.2.2: +24 -35 lines
Diff to previous 1.17.2.2 , to branch point 1.17
This set of revisions brings the RELENG_18 branch up to HEAD in preparation
for an 18c release.

Revision 1.20 - (view) (annotate) - [select for diffs]
Mon Jan 25 12:25:47 1999 UTC (15 years, 2 months ago) by dtc
Branch: MAIN
Changes since 1.19: +24 -35 lines
Diff to previous 1.19
Fixes for constrain-float-type.

Revision 1.17.2.2 - (view) (annotate) - [select for diffs]
Tue Jun 23 11:22:48 1998 UTC (15 years, 10 months ago) by pw
Branch: RELENG_18
CVS Tags: RELEASE_18b
Changes since 1.17.2.1: +2 -2 lines
Diff to previous 1.17.2.1 , to branch point 1.17
This (huge) revision brings the RELENG_18 branch up to the current HEAD.
Note code/unix-glib2.lisp not yet included -- not sure it is ready to go.

Revision 1.19 - (view) (annotate) - [select for diffs]
Fri May 29 06:41:24 1998 UTC (15 years, 10 months ago) by dtc
Branch: MAIN
Changes since 1.18: +2 -2 lines
Diff to previous 1.18
Rather than source transforming instance type tests, convert them to
%instance-typep to be later handled by an IR1 transform. This improves
type propagation and allows tests known a compile time to be optimised
away, and when the IR1 transform is eventually delayed constraint
propagation will get a chance.

Revision 1.17.2.1 - (view) (annotate) - [select for diffs]
Mon Sep 8 00:11:31 1997 UTC (16 years, 7 months ago) by dtc
Branch: RELENG_18
CVS Tags: RELEASE_18a
Changes since 1.17: +16 -13 lines
Diff to previous 1.17
Add a check to constrain-{integer,float}-type to ensure they don't
return an invalid type specifier with the lower bound greater than the
upper bound, return the *empty-type* in this case.

Revision 1.18 - (view) (annotate) - [select for diffs]
Mon Sep 8 00:09:22 1997 UTC (16 years, 7 months ago) by dtc
Branch: MAIN
Changes since 1.17: +16 -13 lines
Diff to previous 1.17
Add a check to constrain-{integer,float}-type to ensure they don't
return an invalid type specifier with the lower bound greater than the
upper bound, return the *empty-type* in this case.

Revision 1.17 - (view) (annotate) - [select for diffs]
Wed Feb 12 22:12:29 1997 UTC (17 years, 2 months ago) by dtc
Branch: MAIN
Branch point for: RELENG_18
Changes since 1.16: +33 -16 lines
Diff to previous 1.16
Latest float propagation routines by Raymond Toy.

Revision 1.16 - (view) (annotate) - [select for diffs]
Sat Jan 18 14:31:31 1997 UTC (17 years, 3 months ago) by ram
Branch: MAIN
Changes since 1.15: +68 -6 lines
Diff to previous 1.15
Werkowskis source kit 1.03.7

Revision 1.15 - (view) (annotate) - [select for diffs]
Mon Oct 31 04:27:28 1994 UTC (19 years, 5 months ago) by ram
Branch: MAIN
Changes since 1.14: +1 -3 lines
Diff to previous 1.14
Fix headed boilerplate.

Revision 1.14 - (view) (annotate) - [select for diffs]
Wed Aug 25 00:14:53 1993 UTC (20 years, 7 months ago) by ram
Branch: MAIN
Changes since 1.13: +2 -2 lines
Diff to previous 1.13
Fix compiler warnings.

Revision 1.13 - (view) (annotate) - [select for diffs]
Wed Jun 3 20:03:37 1992 UTC (21 years, 10 months ago) by ram
Branch: MAIN
Changes since 1.12: +30 -21 lines
Diff to previous 1.12
Changed not to barf if a block has no predecessors.  This really shouldn't
happen, since we do DFO before constraint if it is needed, and that should
flush any blocks with no predecessors (or that are otherwise unreachable), but
it is happening...

Revision 1.12 - (view) (annotate) - [select for diffs]
Sat Mar 21 19:41:31 1992 UTC (22 years, 1 month ago) by wlott
Branch: MAIN
Changes since 1.11: +2 -2 lines
Diff to previous 1.11
Moved *type-predicate* and *predicate-type* into the backend structure.

Revision 1.11 - (view) (annotate) - [select for diffs]
Sun Dec 8 17:24:51 1991 UTC (22 years, 4 months ago) by ram
Branch: MAIN
Changes since 1.10: +10 -8 lines
Diff to previous 1.10
In CONSTRAIN-REF-TYPE, clear out the old NODE-DERIVED-TYPE in the IF case to
prevent type inference anomalies.

Revision 1.10 - (view) (annotate) - [select for diffs]
Wed Feb 20 14:56:51 1991 UTC (23 years, 2 months ago) by ram
Branch: MAIN
Changes since 1.9: +8 -4 lines
Diff to previous 1.9
New file header with RCS stuff.

Revision 1.9 - (view) (annotate) - [select for diffs]
Mon Jul 23 14:11:20 1990 UTC (23 years, 9 months ago) by ram
Branch: MAIN
Changes since 1.8: +1 -1 lines
Diff to previous 1.8
Use NODE-HOME-LAMBDA instead of obsolete BLOCK-LAMBDA.

Revision 1.8 - (view) (annotate) - [select for diffs]
Fri Jul 6 17:06:39 1990 UTC (23 years, 9 months ago) by ram
Branch: MAIN
Changes since 1.7: +2 -2 lines
Diff to previous 1.7
Fixed CONSTRAIN-REF-TYPE to not lose when we substitute one variable for
another due to an EQL constraint.

Revision 1.7.1.1 - (view) (annotate) - [select for diffs] (vendor branch)
Wed Jun 20 21:07:54 1990 UTC (23 years, 10 months ago) by ram
Branch: eval_debug
Changes since 1.7: +1 -1 lines
Diff to previous 1.7 , to next main 1.27
*** empty log message ***

Revision 1.7 - (view) (annotate) - [select for diffs]
Sun Jun 17 20:20:11 1990 UTC (23 years, 10 months ago) by wlott
Branch: MAIN
Branch point for: eval_debug
Changes since 1.6: +2 -2 lines
Diff to previous 1.6
Random typos.
,


Revision 1.6 - (view) (annotate) - [select for diffs]
Sun Jun 17 14:12:27 1990 UTC (23 years, 10 months ago) by ram
Branch: MAIN
Changes since 1.5: +5 -3 lines
Diff to previous 1.5
And let the %TYPEP arg be a CTYPE structure too, since William seems to like
that.

Revision 1.5 - (view) (annotate) - [select for diffs]
Sun Jun 17 13:46:44 1990 UTC (23 years, 10 months ago) by ram
Branch: MAIN
Changes since 1.4: +7 -6 lines
Diff to previous 1.4
Check that the arg to %TYPEP is constant; evidently it isn't always.

Revision 1.4.1.1 - (view) (annotate) - [select for diffs] (vendor branch)
Fri Jun 15 15:59:29 1990 UTC (23 years, 10 months ago) by ram
Changes since 1.4: +1 -1 lines
Diff to previous 1.4 , to next main 1.27
*** empty log message ***

Revision 1.4 - (view) (annotate) - [select for diffs]
Thu Jun 14 14:12:58 1990 UTC (23 years, 10 months ago) by ram
Branch: MAIN
Changes since 1.3: +65 -31 lines
Diff to previous 1.3
Fixed Kill set computation.  We were computing the kill set in the initial
constraint assignment pass, but this didn't work, since new constraints
(that we also kill) could be added by other blocks or in subsequent
invocations of constraint propagation.  Instead, we make the Block-Kill
be a list of the lambda-vars killed, and dynamically determine the
kill set in FLOW-PROPAGATE-CONSTRAINTS.  Also, changed stuff to 
reinitialize the IN and OUT sets on repeated invocations.  I believe that
this is no more correct, but it does make the flow analysis process
more understandable, since the size of these sets will only increase.
Previously these sets could start oversize and decrease if we somehow
lost information between this invocation and the previous one.

Revision 1.3.1.2 - (view) (annotate) - [select for diffs] (vendor branch)
Wed Jun 13 17:36:14 1990 UTC (23 years, 10 months ago) by ram
Changes since 1.3.1.1: +1 -1 lines
Diff to previous 1.3.1.1 , to next main 1.27
*** empty log message ***

Revision 1.3.1.1 - (view) (annotate) - [select for diffs] (vendor branch)
Mon Jun 11 18:28:35 1990 UTC (23 years, 10 months ago) by ram
Changes since 1.3: +0 -0 lines
Diff to previous 1.3
*** empty log message ***

Revision 1.3 - (view) (annotate) - [select for diffs]
Mon Jun 11 13:54:16 1990 UTC (23 years, 10 months ago) by ram
Branch: MAIN
Changes since 1.2: +19 -9 lines
Diff to previous 1.2
Only add test constraints on blocks with a single predecessor.
When we substitute a constant due to an EQL constraint, punt of the loop
so that we don't lose due to assuming that the ref's leaf is a lambda-var.
Only change a IF test to T when there is no type constraint on the 
continuation (e.g. ENDP).

Revision 1.2 - (view) (annotate) - [select for diffs]
Wed Jun 6 14:14:04 1990 UTC (23 years, 10 months ago) by ram
Branch: MAIN
Changes since 1.1: +235 -21 lines
Diff to previous 1.1
Now we recognize constraints from explicit conditionals.

Revision 1.1 - (view) (annotate) - [select for diffs]
Tue Feb 6 11:27:38 1990 UTC (24 years, 2 months ago) by wlott
Branch: MAIN
Initial revision

This form allows you to request diffs between any two revisions of this file. For each of the two "sides" of the diff, select a symbolic revision name using the selection box, or choose 'Use Text Field' and enter a numeric revision.

  Diffs between and
  Type of Diff should be a

Sort log by:

  ViewVC Help
Powered by ViewVC 1.1.5