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