Commit graph

26723 commits

Author SHA1 Message Date
Stas Boukarev ec111830aa Inline (the fixnum (* x y)) 2025-09-04 02:58:17 +03:00
Stas Boukarev 0e7d8d574d Inline (the fixnum (* x fixnum))
Either fully, if X is an integer, or only the fixnum case.
2025-09-04 02:31:07 +03:00
Stas Boukarev ba1256ce8f Allow %primitive to be used on conditional VOPs. 2025-09-03 21:35:25 +03:00
Stas Boukarev 9ce2d4e0c4 Avoid boxing in (the fixnum (truncate signed signed))
Issue an error directly for the bad unsigned word value.
2025-09-03 21:35:25 +03:00
Douglas Katzman 10e4956715 Add type decls to do-packed-varints 2025-09-03 14:34:28 -04:00
Douglas Katzman 3349f46065 Move atomic-push outside scope of TLS lock on thread exit
A per-thread lock can not possibly guard sb-sprof::**sprof-data*.
Also, move LISPTHREAD() macro where perform_backtrace can see it.
2025-09-03 09:39:50 -04:00
Stas Boukarev c8d41e7943 Ensure that (ceiling signed-word signed-word) is transformed.
Don't rely on the truncate type deriver, look at the surrounding
truly-the as well.
2025-09-03 07:16:49 +03:00
Stas Boukarev 09cf721f14 Don't transforming ceiling for 2^k on signed-word
It can overflow the word, rely on the transform to truncate instead.
2025-09-03 07:16:49 +03:00
Stas Boukarev bc900ffd3d Don't pretend to be able to restart compile-time type errors. 2025-09-03 01:13:43 +03:00
Douglas Katzman 2ce54539b1 Fix typo in unfixnumize_tid macro 2025-09-02 17:34:59 -04:00
Stas Boukarev 0c9408f84d x86-64, signed-byte-64-p-move-to-word: accept unsigned-reg result.
Fixes lp#2121880
2025-09-02 23:32:37 +03:00
Douglas Katzman d9ced28312 Remove tid from primitive object 2025-09-02 16:24:41 -04:00
Douglas Katzman 99a46a4b8c Account for possibly untagged tid slot of sb-thread:thread 2025-09-02 16:01:16 -04:00
Douglas Katzman ffc3ec0fbb Remove incorrect line
If it were to remain, it would have needed make_fixnum,
but as the remark says, it is a redundant assignment.
2025-09-02 14:56:39 -04:00
Douglas Katzman 11fc027b21 Read thread's kernel thread ID from lisp without a mutex 2025-09-02 14:41:16 -04:00
Stas Boukarev decc429bcd Pick a more appropriate sc-offset-immediate type.
Fixes lp#2097152
2025-09-02 21:09:04 +03:00
Douglas Katzman ff9064c9c8 Add sb_GetTID for NetBSD
patch by Masatoshi SANO
2025-09-02 13:14:05 -04:00
Douglas Katzman cd95e5ac61 Express more pessimism 2025-09-02 12:07:16 -04:00
Douglas Katzman 11414bbc90 Remove #if'ed out function 2025-09-02 09:31:59 -04:00
Stas Boukarev a832e6887c Reorder transforms. 2025-09-02 07:55:18 +03:00
Stas Boukarev 624fa777ba delay-ir1-transform: prefer :constraint to :ir1-phases
:constraint was ignored if :ir1-phases was done first.
2025-09-02 07:29:15 +03:00
Stas Boukarev c38f487f69 Transform (the fixnum (truncate integer 2))
Can be done using signed-word arithmetic.
2025-09-02 05:35:56 +03:00
Stas Boukarev 1c82528eac Avoid warnings from the FLOAT transform. 2025-09-02 05:35:56 +03:00
Stas Boukarev 174c5ac261 Turn (the integer (the (real 0 5))) into (the (integer 0 5)) 2025-09-02 01:20:23 +03:00
Douglas Katzman 0ea74b3dac Avoid aliens in memmove by restricting args to be SAPs
on x86-64 it shaves off more than half the machine code.
2025-09-01 15:44:50 -04:00
Douglas Katzman 3b5041d5a5 build-all-cores 2025-09-01 15:41:30 -04:00
Stas Boukarev 3732f97498 Adjust a test some more. 2025-09-01 22:30:25 +03:00
Stas Boukarev c4ab267d3a Adjust a test.
Try not to leave threads behind.
2025-09-01 21:50:44 +03:00
Douglas Katzman 940ece0aaf Add decls to sb-unix:unix-read
Contains no alien manipulations now, just the calls to read() and
os_get_errno() for 40% reduction in asm code size.
2025-09-01 13:46:52 -04:00
Stas Boukarev 3eb549d69e cut-to-width: erase the derived type of a cast.
Which won't much its new values.
2025-09-01 20:43:50 +03:00
Douglas Katzman 1f279ebd29 Require non-NULL thread arg in protect_{thing}_page 2025-09-01 12:34:15 -04:00
Douglas Katzman f112bf8dee Delete irrelevant logic
There are no hardwired space for x86-64 which was the only platform
where ALLOCATE_LOW was meaningful (and still is for fixedobj space)
2025-09-01 12:25:51 -04:00
Douglas Katzman dff0d4242d Remove once-used never-changed variable
Back in rev e365f2f7a9 it might have made sense (being used on both sides
of an #if) but even then it didn't make a ton of sense.
2025-09-01 11:15:49 -04:00
Stas Boukarev 2da1ea9584 cut-to-width: cut casts with multiple uses. 2025-09-01 18:11:41 +03:00
Douglas Katzman 8ee91012a1 Move a ppc64 hack near other ppc64-specific code 2025-09-01 10:58:43 -04:00
Stas Boukarev 237d391b85 Move stuff from cast-externally-checkable-p into transforms. 2025-09-01 04:12:55 +03:00
Stas Boukarev 0165087f49 Remove :important t as an option to deftransform
It's not used anywhere, shouldn't be used anywhere. No code merits an
efficiency note without being asked.
2025-09-01 03:48:40 +03:00
Douglas Katzman 69b22eeca9 Streamline UNIX-WRITE a litte
(ADDR (DEREF ...)) is a very roundabout way of computing the same result
that SAP+ does, except the former allocate a local alien at runtime.
Despite the new code always binding *PINNED-OBJECTS* on the precise backends,
it's smaller and quicker, especially as 20x more calls to UNIX-WRITE get
an array instead of a SAP in typical use, meaning a pin had to occur.
(Profiling shows array of base-char and UB8 as the commonest cases)
2025-08-31 16:20:54 -04:00
Douglas Katzman 98d71ca070 Stop calling clock-gettime to gather data that users never see
It was an attempt to track changes in regression test timing which
segregate compile vs execution times.
2025-08-31 15:58:11 -04:00
Stas Boukarev 0be32b400b Correct the usage of delete-cast in transforms.
Can't delete just any cast coming into a transform. While often it
will be an automatically inserted cast for the function, it also might
be a more specific user-supplied one.
2025-08-31 21:59:30 +03:00
Stas Boukarev ff56ef20a6 Replace the overflow-ash-t-signed VOP with lisp code.
Which can generate the same code. Unlike the other overflow-t
transforms, it doesn't actually perform any flag checking for overflow
so there's no benefit in it being a VOP.
2025-08-31 21:58:49 +03:00
Douglas Katzman afb2967d9f Fix build with #+sb-show 2025-08-31 12:41:14 -04:00
Douglas Katzman 0ee871396f Allow minor variance of cl:*features* in snapshot-diff 2025-08-31 12:37:04 -04:00
Douglas Katzman c45469ea77 Fix compilation of standalone ldb if #+permgen 2025-08-31 12:16:39 -04:00
Douglas Katzman 11504281e3 Conditionalize bogus stub
which if lacking a vop compiles to an infinite loop
2025-08-31 12:08:26 -04:00
Stas Boukarev f3257aa890 Allow immediate arguments for the error VOPs. 2025-08-30 21:02:21 +03:00
Stas Boukarev 03b730cde7 splice-fun-args: don't get confused by multiple value lvars.
Reported by Eric Marsden.
2025-08-30 20:57:13 +03:00
Stas Boukarev 145ec9ac62 Resolve cross-build reproduciblity. 2025-08-30 16:49:19 +03:00
Stas Boukarev 7c81a6098a Transform (the fixnum (ash x -1))
(ash (signed-byte 64) -1) can be inlined.
2025-08-30 06:50:51 +03:00
Stas Boukarev 37f7e8eed4 Allow encoding negative immediate numbers in error breaks. 2025-08-30 06:50:47 +03:00