00:05:45 to avoid large (mod x) to be put into constants, n can be compared subtracting the difference between it and a full word and seeing if it'll overflow 00:06:09 that leaves determining the sign 00:06:15 Krystof [~user@81.174.155.115] has joined #sbcl 00:06:15 -!- ChanServ has set mode +o Krystof 00:06:47 Bike_ [~Glossina@67-5-236-248.ptld.qwest.net] has joined #sbcl 00:09:19 -!- Bike [~Glossina@67-5-206-225.ptld.qwest.net] has quit [Ping timeout: 256 seconds] 00:10:26 Bike [~Glossina@67-5-242-138.ptld.qwest.net] has joined #sbcl 00:13:25 -!- Bike_ [~Glossina@67-5-236-248.ptld.qwest.net] has quit [Ping timeout: 248 seconds] 00:45:20 |3b| [foobar@cpe-72-177-66-41.austin.res.rr.com] has joined #sbcl 00:50:31 stassats: leftover, yes, sorry 00:50:51 Bike_ [~Glossina@67-5-249-182.ptld.qwest.net] has joined #sbcl 00:50:51 -!- Bike_ [~Glossina@67-5-249-182.ptld.qwest.net] has quit [Client Quit] 00:51:06 Bike_ [~Glossina@67-5-249-182.ptld.qwest.net] has joined #sbcl 00:53:30 i'll chop it off if i'll do a commit 00:54:01 -!- Bike [~Glossina@67-5-242-138.ptld.qwest.net] has quit [Ping timeout: 246 seconds] 00:54:17 Bike [~Glossina@67-5-251-67.ptld.qwest.net] has joined #sbcl 00:54:30 thank you 00:55:11 still no clever way to optimize sb-int:index checking 00:56:24 -!- Bike_ [~Glossina@67-5-249-182.ptld.qwest.net] has quit [Ping timeout: 240 seconds] 00:56:48 What calling convention does sbcl use? 00:56:59 its own 00:57:01 drmeister: lisphacker.com/projects/sbcl-docs/calling-convention.pdf 00:57:54 pkhuong: Thanks - but I get a Not found 00:58:31 I found it - thanks. 01:00:59 stassats: assuming it's a fixnum? 01:01:16 nope, a complete test 01:01:42 best I see is that you can test the sign bit and fixnum-tag-mask with a single (huge) constant 01:01:58 and then add/look for overflow 01:02:23 i can do best dl x 1, cmp x -8, test x x 01:02:35 best i can do 01:02:44 dl? 01:02:48 err, test dl 1 01:05:16 the size is the same as with test x [RIP+xxx] 01:05:38 s/test/cmp/ 01:05:50 performance is hard to measure 01:08:34 but you still have to test for fixnumness. 01:09:17 right, i meant this plus the fixnum test 01:10:05 If you can't assume it's a fixnum/word, I'd go with test x, (logior [sign-bit] fixnum-tag-mask)/ mov tmp, 4/ add tmp, x/ jo 01:10:31 nah, it will be marginal improvements anyway 01:10:36 yeah. 01:10:41 might be slightly smaller. 01:11:01 -!- Bike [~Glossina@67-5-251-67.ptld.qwest.net] has quit [Ping timeout: 248 seconds] 01:11:15 it's already better than also comparing for >0 01:11:18 there's a point if you can assume the input is a fixnum or a word, though (which would make sense to have) 01:12:47 Bike [~Glossina@71-214-87-60.ptld.qwest.net] has joined #sbcl 01:13:03 (the (mod 10) x) strangely doesn't go through the same path as declarations 01:13:44 it's transformed straight into (unless (and (fixnump x) (<= 0 x z)) error) 01:14:31 there are multiple mechanisms for typep, and I don't know if anyone has a global picture of when each is triggered. 01:14:54 and if (<= 0 x z) could be picked up alone 01:15:48 there's declare, the, and typep 01:16:05 i think the goes through typep + error 01:16:57 *stassats* goes to look at more disassemble output of his program to see what else can be improved 01:20:24 and re error coalescing, couldn't it use CALL instead of JMP to get source locations? 01:21:49 oh well, call is not conditional 01:42:18 the ARM port will be friendlier to that sort of hack 01:53:50 *stassats* wonders how hard could it be to experiment with alignment for tagging 01:54:16 linux/fbsd only 01:54:33 good enough for me 01:57:32 and our tagging scheme has one too many bits for it to really work well 01:57:49 it would be fine to detect non-fixnums when indexing in vectors, I guess. 01:57:50 can it be used selectively? 01:58:08 do we normally do unaligned access? 01:58:57 no. 01:59:17 but you'll have false negative where bad tags will results in off by a word. 01:59:20 -s 02:03:57 -!- loke_ [~loke@203.127.16.194] has quit [Remote host closed the connection] 02:17:56 kanru [~kanru@118-163-10-190.HINET-IP.hinet.net] has joined #sbcl 02:37:45 -!- christoph4 [~christoph@ppp-188-174-6-30.dynamic.mnet-online.de] has quit [Read error: Operation timed out] 02:41:28 loke [~loke@203.127.16.194] has joined #sbcl 02:49:57 echo-area [~user@182.92.247.2] has joined #sbcl 02:52:30 christoph4 [~christoph@host-188-174-197-95.customer.m-online.net] has joined #sbcl 03:06:52 ehaliewicz [~user@50-0-51-11.dsl.static.sonic.net] has joined #sbcl 03:36:21 danlentz_ [~danlentz@c-68-37-70-235.hsd1.nj.comcast.net] has joined #sbcl 03:38:59 pkhuong_ [~pkhuong@modemcable086.239-37-24.mc.videotron.ca] has joined #sbcl 03:39:36 Quadresce_ [~quad@unaffiliated/quadrescence] has joined #sbcl 03:41:39 -!- danlentz [~danlentz@c-68-37-70-235.hsd1.nj.comcast.net] has quit [Read error: Connection reset by peer] 03:41:39 -!- danlentz_ is now known as danlentz 03:41:40 -!- pkhuong [~pkhuong@modemcable086.239-37-24.mc.videotron.ca] has quit [Remote host closed the connection] 03:41:40 -!- Quadrescence [~quad@unaffiliated/quadrescence] has quit [Read error: No buffer space available] 03:55:38 foreignFunction [~niksaak@ip-4761.sunline.net.ua] has joined #sbcl 04:06:52 -!- Quadresce_ is now known as Quadrescence 04:23:22 -!- stassats [~stassats@wikipedia/stassats] has quit [Remote host closed the connection] 04:29:24 attila_lendvai [~attila_le@unaffiliated/attila-lendvai/x-3126965] has joined #sbcl 04:31:02 -!- pkhuong_ is now known as pkhuong 04:50:28 teggi [~teggi@123.20.108.24] has joined #sbcl 05:00:46 -!- Quadrescence [~quad@unaffiliated/quadrescence] has quit [Quit: Leaving] 05:41:59 -!- attila_lendvai [~attila_le@unaffiliated/attila-lendvai/x-3126965] has quit [Ping timeout: 260 seconds] 05:57:57 -!- ehaliewicz [~user@50-0-51-11.dsl.static.sonic.net] has quit [Ping timeout: 248 seconds] 06:11:58 ASau` [~user@p5797ECFA.dip0.t-ipconnect.de] has joined #sbcl 06:14:38 prxq [~mommer@mnhm-4d010771.pool.mediaWays.net] has joined #sbcl 06:15:19 -!- ASau [~user@p5797EA1A.dip0.t-ipconnect.de] has quit [Read error: Operation timed out] 06:16:36 attila_lendvai [~attila_le@unaffiliated/attila-lendvai/x-3126965] has joined #sbcl 06:22:56 -!- drmeister [~drmeister@pool-71-185-168-200.phlapa.fios.verizon.net] has quit [Remote host closed the connection] 06:24:34 -!- kanru [~kanru@118-163-10-190.HINET-IP.hinet.net] has quit [Remote host closed the connection] 06:34:42 kanru [~kanru@118-163-10-190.HINET-IP.hinet.net] has joined #sbcl 06:36:48 -!- kanru [~kanru@118-163-10-190.HINET-IP.hinet.net] has quit [Remote host closed the connection] 06:54:23 kanru [~kanru@118-163-10-190.HINET-IP.hinet.net] has joined #sbcl 06:55:12 -!- kanru [~kanru@118-163-10-190.HINET-IP.hinet.net] has quit [Remote host closed the connection] 06:55:38 kanru [~kanru@118-163-10-190.HINET-IP.hinet.net] has joined #sbcl 06:58:24 pkhuong: one thing I wonder about that is if the new logands / mask-signed-fields all get optimized in the same compiler go-round, or if each one needs a subsequent go 06:58:42 thinking about something horrible that I probably can't construct easily but is something like 06:59:35 (logand #xffffffff (the (integer . .) (logior (the (integer . .) (logandc2 (the (integer . .) .) .)) .))) 06:59:40 where a huge number of nested casts happen 07:00:40 -!- ASau` is now known as ASau 07:34:05 Krystof: pretty sure each cast needs its own 07:34:33 at least until we stop playing sign bit tricks 07:35:02 right, but does it happen all in one compiler pass, or does it happen at the next reoptimize? 07:35:15 with the new one? All in one pass. 07:36:16 good then 07:36:26 If there's one use we didn't handle (by recursing, for combinations), the LVAR gets explicitly cut. 07:36:53 with the base case restriction. 07:37:00 I agree that each cast will need its own cuttage 07:39:35 the other exception is if we know that the use is small enough 07:40:03 eg. (logand #xfff... (the (mod 1024) ...)) 07:53:35 robgssp` [~user@cpe-24-93-28-218.rochester.res.rr.com] has joined #sbcl 07:55:54 -!- robgssp [~user@cpe-24-93-28-218.rochester.res.rr.com] has quit [Ping timeout: 264 seconds] 08:12:08 awesome. cut-to-width probably never fired on multiple-use LVARs, because their dest would tend to have a union result type, rather than a single integer type (: 08:24:19 -!- loke [~loke@203.127.16.194] has quit [Remote host closed the connection] 08:45:34 wasn't that the kind of complicated CASE-based thing that emarsden came up with? 08:55:54 -!- yacks [~py@180.151.36.168] has quit [Ping timeout: 264 seconds] 09:02:30 yacks [~py@180.151.36.168] has joined #sbcl 09:10:08 benkard [~benkard@dhcp-138-246-85-138.dynamic.eduroam.mwn.de] has joined #sbcl 09:23:51 luis` [~luis@nhop.r42.eu] has joined #sbcl 09:30:10 -!- daimrod [daimrod@sbrk.org] has quit [*.net *.split] 09:30:10 -!- luis [~luis@nhop.r42.eu] has quit [*.net *.split] 09:30:10 -!- cow-orker [~foobar@pogostick.net] has quit [*.net *.split] 09:30:10 -!- arrdem [~arrdem@dhcp-53-132.ece.utexas.edu] has quit [*.net *.split] 09:30:29 -!- antoszka [~antoszka@unaffiliated/antoszka] has quit [Ping timeout: 255 seconds] 09:30:51 arrdem [~arrdem@dhcp-53-132.ece.utexas.edu] has joined #sbcl 09:30:51 daimrod [daimrod@sbrk.org] has joined #sbcl 09:30:51 cow-orker [~foobar@pogostick.net] has joined #sbcl 09:31:48 antoszka [~antoszka@unaffiliated/antoszka] has joined #sbcl 09:36:55 rudi [~rudi@1x-193-157-197-93.uio.no] has joined #sbcl 09:56:39 -!- benkard [~benkard@dhcp-138-246-85-138.dynamic.eduroam.mwn.de] has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz] 10:03:47 loke [~loke@203.127.16.194] has joined #sbcl 10:08:59 Hydan [~hydan@ip-89-103-110-5.net.upcbroadband.cz] has joined #sbcl 10:20:38 -!- echo-area [~user@182.92.247.2] has quit [Remote host closed the connection] 10:40:10 -!- daimrod [daimrod@sbrk.org] has quit [*.net *.split] 10:40:10 -!- cow-orker [~foobar@pogostick.net] has quit [*.net *.split] 10:40:11 -!- arrdem [~arrdem@dhcp-53-132.ece.utexas.edu] has quit [*.net *.split] 10:45:08 arrdem [~arrdem@dhcp-53-132.ece.utexas.edu] has joined #sbcl 10:45:08 daimrod [daimrod@sbrk.org] has joined #sbcl 10:45:08 cow-orker [~foobar@pogostick.net] has joined #sbcl 11:11:59 -!- attila_lendvai [~attila_le@unaffiliated/attila-lendvai/x-3126965] has quit [Quit: Leaving.] 11:17:37 -!- luis` is now known as luis 11:49:07 -!- scymtym_ [~user@ip-5-147-122-209.unitymediagroup.de] has quit [Ping timeout: 264 seconds] 12:15:32 -!- scymtym [~user@2001:638:504:2093:226:b9ff:fe7d:3e1f] has quit [Remote host closed the connection] 12:17:05 scymtym [~user@2001:638:504:2093:226:b9ff:fe7d:3e1f] has joined #sbcl 12:17:22 segv- [~mb@95-91-243-237-dynip.superkabel.de] has joined #sbcl 12:30:44 -!- daimrod [daimrod@sbrk.org] has quit [*.net *.split] 12:30:44 -!- cow-orker [~foobar@pogostick.net] has quit [*.net *.split] 12:30:45 -!- arrdem [~arrdem@dhcp-53-132.ece.utexas.edu] has quit [*.net *.split] 12:30:52 yeah, not sure what happened to the types there. Probably got merged because they were contiguous. 12:32:46 cow-orker [~foobar@pogostick.net] has joined #sbcl 12:34:24 arrdem [~arrdem@dhcp-53-132.ece.utexas.edu] has joined #sbcl 12:34:24 daimrod [daimrod@sbrk.org] has joined #sbcl 12:39:26 drmeister [~drmeister@pool-71-185-168-200.phlapa.fios.verizon.net] has joined #sbcl 12:41:49 -!- drmeister [~drmeister@pool-71-185-168-200.phlapa.fios.verizon.net] has quit [Remote host closed the connection] 12:54:09 drmeister [~drmeister@166.137.105.207] has joined #sbcl 13:10:20 antoszka_ [~antoszka@unaffiliated/antoszka] has joined #sbcl 13:16:11 -!- foreignFunction [~niksaak@ip-4761.sunline.net.ua] has quit [Read error: Connection reset by peer] 13:16:48 foreignFunction [~niksaak@ip-4761.sunline.net.ua] has joined #sbcl 13:16:49 luis` [~luis@nhop.r42.eu] has joined #sbcl 13:19:34 -!- antoszka [~antoszka@unaffiliated/antoszka] has quit [Ping timeout: 260 seconds] 13:20:31 -!- flip214 [~marek@unaffiliated/flip214] has quit [Ping timeout: 256 seconds] 13:20:59 flip214 [~marek@86.59.100.100] has joined #sbcl 13:22:35 Hydan` [~hydan@ip-89-103-110-5.net.upcbroadband.cz] has joined #sbcl 13:24:26 Ralt_ [Ralt@2a01:7e00::f03c:91ff:feae:6c69] has joined #sbcl 13:29:30 -!- luis [~luis@nhop.r42.eu] has quit [Ping timeout: 261 seconds] 13:30:45 -!- maxm [~user@unaffiliated/maxm] has quit [*.net *.split] 13:32:02 stassats [~stassats@pppoe.178-66-92-139.dynamic.avangarddsl.ru] has joined #sbcl 13:32:16 -!- drmeister [~drmeister@166.137.105.207] has quit [Remote host closed the connection] 13:32:27 -!- kanru [~kanru@118-163-10-190.HINET-IP.hinet.net] has quit [Ping timeout: 261 seconds] 13:34:28 -!- Ralt [Ralt@2a01:7e00::f03c:91ff:feae:6c69] has quit [Ping timeout: 260 seconds] 13:34:29 -!- Hydan [~hydan@ip-89-103-110-5.net.upcbroadband.cz] has quit [Ping timeout: 263 seconds] 13:34:32 -!- Ralt_ is now known as Ralt 13:34:37 attila_lendvai [~attila_le@95.56.73.25] has joined #sbcl