- Oct 13, 2003
-
-
toy authored
char* o Sun C doesn't like "char *str = *++argptr". Fix that. o Clean up a few warnings.
-
toy authored
doesn't like this.
-
toy authored
-
toy authored
Config.sun4_solaris_gcc.
-
toy authored
of SRA/SRL by 0.
-
toy authored
o Use the SIGNX instruction when doing sign extension of a 32-bit value to 64 bits. o Define some of the v8/v9 "natural" pseudo-instructions.
-
toy authored
-
gerd authored
(declare (optimize (safety 3) (speed 0) (debug 0))) (ash 6916244 (min 42 -185236061640))))) => -185236061640 is not a (or fixnum null) * src/compiler/generic/vm-type.lisp (ash-index): Is integer, not fixnum.
-
gerd authored
(labels ((%f15 () (* (unwind-protect c) (max -5726369 (return-from %f15 3099206))))) c))) => assertion failure in unlink-blocks * src/compiler/ir1util.lisp (delete-lambda): Protect the deletion of the return block against already being marked for deletion. Mark the return block for deletion. From SBCL.
-
gerd authored
'(lambda (a c) (if nil (unwind-protect (max 521739 (unwind-protect c))) (logandc2 3942 a)))) => nil is not of type ref * src/compiler/ir1opt.lisp (find-result-type): Ignore uses whose home lambda or block is deleted. From SBCL.
-
- Oct 12, 2003
-
-
gerd authored
(declare (type (integer 46156191457 126998564334) c)) (truncate c (min -1 0))) => code being generated that falls through to invalid argument count trap. This is caused by a transformer bug causing type derivation inconsistencies that can be seen by setting c::*check-consistency* to true. * src/compiler/srctran.lisp (truncate) <deftransform>: Fix the case of x >= 0, y < 0.
-
- Oct 11, 2003
-
-
gerd authored
=> case failure in continuation-proven-type * src/compiler/ir1opt.lisp (continuation-proven-type): Return *empty-type* for unused continuations.
-
gerd authored
=> assertion failure in insert-let-body * src/compiler/locall.lisp (maybe-let-convert): Don't convert if the call's block doesn't have successors and we are not converting for interpretation.
-
gerd authored
=> assertion failure in delete-block * src/compiler/ir1util.lisp (delete-lambda): Mark blocks of lambda-refs for deletion. Protect the unlink of the bind-block against it being marked for deletion. (delete-block) <entry>: Mark blocks of exits for deletion. Delete the entry from lambda-entries.
-
gerd authored
(flet ((%f13 () (rem 1 (min 0 (return-from %f13 17))))) (%f13)))) => nil is not of type node * src/compiler/locall.lisp (unconvert-tail-calls): Ignore refs whose values aren't used.
-
- Oct 10, 2003
-
-
gerd authored
'(lambda () (flet ((%f2 () 288213285)) (+ (%f2) (* 13 (%f2))))))) => segmentation violation (funcall (compile nil '(lambda () (let ((v9 (labels ((%f13 () nil)) nil))) (let ((v3 (logandc2 97 3))) (* v3 (- 37391897 (logand v3 -66)))))))) => invalid argument count * src/compiler/srctran.lisp (*) <deftransform>: #+nil because it's lying to the compiler, leading to compiler inconsistencies. Reported by Paul Dietz.
-
- Oct 09, 2003
-
-
toy authored
-
toy authored
-
toy authored
pseudo_atomic_InterruptedValue instead of the bare 7's, 4's, and 3's and 1's in the code.
-
toy authored
internals.h so we can use them in the C and assembly code.
-
toy authored
pseudo-atomic-interrupted-value for use in bootstrapping so these are defined when we compile the code for Sparc.
-
toy authored
pseudo-atomic-interrupted-value for use in the code.
-
gerd authored
SUBTYPE.CONS.23, for example. From Christophe Rhodes, port from SBCL.
-
gerd authored
(declare (notinline 1+)) (declare (optimize (speed 0))) (declare (optimize (debug 0))) (unwind-protect (block b5 (1+ (unwind-protect (if a (return-from b5 -30179678) c))))))) => assertion failed (EQUAL (C::BYTE-BLOCK-INFO-START-STACK EXTENSIONS:INFO) * src/compiler/byte-comp.lisp (walk-block): #+nil an assertion. Reported by Paul Dietz.
-
gerd authored
(declare (type (integer -30078003 47403) a)) (unwind-protect (if (ldb-test (byte 6 23) 828450) (logandc1 -1 (min -34 (block b2 a))) a)))) => The assertion (C::CONSTANT-CONTINUATION-P C::CONT) failed, in %unwind-protect/ir2-convert * src/compiler/ir1util.lisp (delete-block): Don't remove block end cleanups unless *converting-for-interpreter*. Reported by Paul Dietz.
-
gerd authored
'(lambda (a b c) (declare (optimize (speed 0) (debug 0))) (logcount (let ((v3 (if a (block b3 a) b))) c)))) 46611128 -69 -133775) => segmentation violation * src/compiler/byte-comp.lisp (output-branch): Always emit conditional branches even if they go to the following instruction, because conditional branches have the side effect of popping the eval stack. Reported by Paul Dietz.
-
- Oct 08, 2003
-
-
toy authored
Use the same code as used for x86. o Clean up the code a bit, adding the functions scavenge_interrupt_handlers and scavenge_control_stack. Move some printing noise into those functions. There are still bugs here that are exercised by Eric Marsden's cl-bench with cpu performance counter library.
-
toy authored
with :linkage-tables: (defun foo () (bar)) * compiler/sparc/alloc.lisp ((make-fdefn)): VOP wasn't properly handling the fixup for undefined_tramp when using linkage-tables. Need to load up the address from the linkage-table. * compiler/generic/new-genesis.lisp (init-foreign-linkage): Need to register undefined_tramp so it exists early. Also did closure_tramp too, just in case.
-
- Oct 06, 2003
-
-
toy authored
-
toy authored
o Moved definition of SPARSE_BLOCK_SIZE from solaris-os.c to here, so we can use it in defining the sizes of the various spaces. o With GENCGC, we can use the space that was allocated for dynamic space 1, so make it 2GB. (Not that I've ever had to use that much space.)
-
gerd authored
to unused lambda-vars. Unused vars are not packed, and so have a tn but a null tn-offset. Some of these cases have been fixed, but not all of them, and since it's not sure if/when all of them will be fixed, add a hack for these cases. * src/compiler/debug-dump.lisp (dump-1-variable): If the tn-offset of a tn is null, set the tn to nil. (compile nil '(lambda (a b) (declare (optimize (speed 3) (debug 1))) (let ((v7 (let ((v2 (block b5 (return-from b5 (if t b -4))))) a))) -65667836))) => error nil is not integer, in dump-1-variable. This is caused by an exit from the return-from being deleted, while leaving the exit's value untouched, which leads to a remaining reference to lambda-var b, which is unused and therefore not being packed. * src/compiler/ir1opt.lisp (maybe-delete-exit): When no node receives the value of the exit, flush the dest of the exit's value.
-
- Oct 05, 2003
-
-
gerd authored
'(lambda (a b c) (declare (notinline logandc2 not)) (declare (optimize (safety 3))) (declare (optimize (speed 0))) (declare (optimize (debug 0))) (let ((v10 (let ((v5 (if (not nil) -4 (logandc2 68392 c)))) c))) a))) => assertion failure, (not (block-delete-p block)) * src/compiler/ir1opt.lisp (recognize-known-call): Treat :inline and :maybe-inline like :notinline if byte-compiling or converting for interpreter. Reported by Paul Dietz.
-
gerd authored
* src/compiler/globaldb.lisp (get-info-value): * src/code/extensions.lisp (define-hash-cache): Use without-interrupts.
-
- Oct 04, 2003
-
-
gerd authored
(flet ((%f16 () (setq c 1))) (+ (%f16) (%f16))))) => assertion failure, c not found in environment Found by Paul Dietz (similar cases). * src/compiler/envanal.lisp (compute-closure): Don't close over unused variables from sets. Not really a port from SBCL because I needed to debug this to the point where the cause was clear; SBCL does the same though.
-
- Oct 03, 2003
-
-
gerd authored
(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.
-
- Oct 02, 2003
-
-
gerd authored
'(lambda (c) (declare (optimize (speed 3) (debug 1))) (flet ((%f18 () -36)) (flet ((%f13 () (let () (block b8 (return-from b8 c))))) (%f18))))) => error nil is not an integer, in dump-1-variable Found by Paul Dietz. This is caused by a lambda-var being passed to dump-1-variable which hasn't been packed, and so has a null tn-offset. A ref to this lambda-var remains at this point because it is referenced from a different component. The ref is deleted when that component is compiled. The problem is that there shouldn't have been two components to begin with, which we prevent by recording additional DFO dependencies for closed-over variables and entries. Port from SBCL, basically. Does not require a bootstrap file, but a full build is necessary due to the renamed clambda structure slot. * src/compiler/dfo.lisp (dfo-walk-call-graph): Process new dfo dependencies. * src/compiler/node.lisp (clambda): Rename slot `calls' to `dfo-dependencies'. * src/compiler/locall.lisp (convert-call, convert-mv-call): Call note-dfo-dependency. (merge-lets): Change for new clambda slot name. (unconvert-tail-calls): Handle the case of non-clambdas in the dfo dependencies. * src/compiler/ir1util.lisp (continuation-home-lambda) (note-dfo-dependency): New functions. * src/compiler/ir1tran.lisp (ir1-convert-variable) (return-from, go, setq): Call note-dfo-dependency. * src/compiler/xref.lisp (lambda-called-p): New function. (prettiest-caller-name): Use lambda-called-p instead of lambda-calls.
-
- Sep 29, 2003
-
-
toy authored
can happen when we scavenge the control stack on non-x86.
-
- Sep 26, 2003