00:02:01 -!- rpg [~rpg@216.243.156.16.real-time.com] has quit [Read error: Operation timed out] 00:09:30 rpg [~rpg@216.243.156.16.real-time.com] has joined #sbcl 00:22:32 -!- rpg [~rpg@216.243.156.16.real-time.com] has quit [Ping timeout: 245 seconds] 00:22:55 stassats` [~stassats@pppoe.178-66-10-42.dynamic.avangarddsl.ru] has joined #sbcl 00:23:00 -!- stassats` [~stassats@pppoe.178-66-10-42.dynamic.avangarddsl.ru] has quit [Changing host] 00:23:00 stassats` [~stassats@wikipedia/stassats] has joined #sbcl 00:23:59 -!- specbot [~specbot@pppoe.178-66-34-163.dynamic.avangarddsl.ru] has quit [Disconnected by services] 00:24:02 specbot [~specbot@pppoe.178-66-10-42.dynamic.avangarddsl.ru] has joined #sbcl 00:26:41 -!- stassats [~stassats@wikipedia/stassats] has quit [Ping timeout: 252 seconds] 00:27:26 rpg [~rpg@216.243.156.16.real-time.com] has joined #sbcl 00:47:45 -!- rpg [~rpg@216.243.156.16.real-time.com] has quit [Ping timeout: 265 seconds] 00:52:27 rpg [~rpg@216.243.156.16.real-time.com] has joined #sbcl 01:33:09 -!- gko [~gko@114-34-168-13.HINET-IP.hinet.net] has quit [Ping timeout: 244 seconds] 01:35:21 prxq_ [~mommer@mnhm-590c004c.pool.mediaWays.net] has joined #sbcl 01:38:33 -!- prxq [~mommer@mnhm-4d012f1c.pool.mediaWays.net] has quit [Ping timeout: 252 seconds] 01:42:56 slyrus [~chatzilla@209.52.84.50] has joined #sbcl 01:53:34 echo-area [~user@182.92.247.2] has joined #sbcl 02:00:38 -!- echo-area [~user@182.92.247.2] has quit [Quit: Be back right away] 02:02:04 echo-area [~user@182.92.247.2] has joined #sbcl 02:13:23 -!- specbot [~specbot@pppoe.178-66-10-42.dynamic.avangarddsl.ru] has quit [Remote host closed the connection] 02:13:34 specbot [~specbot@pppoe.178-66-10-42.dynamic.avangarddsl.ru] has joined #sbcl 02:16:00 -!- rpg [~rpg@216.243.156.16.real-time.com] has quit [Quit: rpg] 02:17:03 pnathan [~Adium@75.87.255.164] has joined #sbcl 02:36:28 -!- echo-area [~user@182.92.247.2] has quit [Ping timeout: 276 seconds] 02:39:04 echo-area [~user@182.92.247.2] has joined #sbcl 02:41:59 -!- Phoodus [~foo@ip72-223-116-248.ph.ph.cox.net] has quit [Read error: Connection reset by peer] 02:42:16 Phoodus [~foo@ip72-223-116-248.ph.ph.cox.net] has joined #sbcl 02:47:52 psilord [~psilord@76.201.149.239] has joined #sbcl 02:59:13 -!- Phoodus [~foo@ip72-223-116-248.ph.ph.cox.net] has quit [Ping timeout: 265 seconds] 03:46:51 attila_lendvai [~attila_le@87.247.12.123] has joined #sbcl 03:46:51 -!- attila_lendvai [~attila_le@87.247.12.123] has quit [Changing host] 03:46:51 attila_lendvai [~attila_le@unaffiliated/attila-lendvai/x-3126965] has joined #sbcl 04:13:34 nikodemus [~nikodemus@87-95-244-7.bb.dnainternet.fi] has joined #sbcl 04:13:35 -!- ChanServ has set mode +o nikodemus 04:22:56 -!- nikodemus [~nikodemus@87-95-244-7.bb.dnainternet.fi] has quit [Quit: This computer has gone to sleep] 04:26:38 -!- pnathan [~Adium@75.87.255.164] has quit [Quit: Leaving.] 04:38:04 pnathan [~Adium@75.87.255.164] has joined #sbcl 04:57:31 -!- Fare [~Fare@173-9-65-97-NewEngland.hfc.comcastbusiness.net] has quit [Ping timeout: 276 seconds] 05:17:51 angavrilov [~angavrilo@217.71.227.190] has joined #sbcl 05:25:03 Phoodus [~foo@wsip-68-107-217-139.ph.ph.cox.net] has joined #sbcl 06:23:08 pnathan1 [~Adium@75.87.255.164] has joined #sbcl 06:26:01 -!- pnathan [~Adium@75.87.255.164] has quit [Ping timeout: 252 seconds] 06:52:32 edgar-rft [~user@HSI-KBW-078-043-123-191.hsi4.kabel-badenwuerttemberg.de] has joined #sbcl 07:21:06 -!- prxq_ [~mommer@mnhm-590c004c.pool.mediaWays.net] has quit [Quit: Leaving] 07:22:10 dropster [~Kim@port284.ds1-oebr.adsl.cybercity.dk] has joined #sbcl 07:47:13 -!- attila_lendvai [~attila_le@unaffiliated/attila-lendvai/x-3126965] has quit [Quit: Leaving.] 08:17:58 homie` [~levgue@xdsl-78-35-179-70.netcologne.de] has joined #sbcl 08:21:09 -!- homie [~levgue@xdsl-78-35-154-203.netcologne.de] has quit [Ping timeout: 248 seconds] 08:35:13 attila_lendvai [~attila_le@87.247.13.86] has joined #sbcl 08:35:13 -!- attila_lendvai [~attila_le@87.247.13.86] has quit [Changing host] 08:35:13 attila_lendvai [~attila_le@unaffiliated/attila-lendvai/x-3126965] has joined #sbcl 08:49:52 -!- attila_lendvai [~attila_le@unaffiliated/attila-lendvai/x-3126965] has quit [Ping timeout: 265 seconds] 09:00:48 saschakb [~saschakb@p4FEA0BCB.dip0.t-ipconnect.de] has joined #sbcl 09:03:48 -!- reb`` [user@nat/google/x-vfaoxndvdoupmsxa] has quit [Ping timeout: 245 seconds] 09:08:01 reb`` [user@nat/google/x-tflczgmkmjzvpudk] has joined #sbcl 09:23:22 -!- slyrus [~chatzilla@209.52.84.50] has quit [Ping timeout: 245 seconds] 09:30:17 attila_lendvai [~attila_le@unaffiliated/attila-lendvai/x-3126965] has joined #sbcl 09:40:28 -!- attila_lendvai [~attila_le@unaffiliated/attila-lendvai/x-3126965] has quit [Ping timeout: 246 seconds] 09:43:17 -!- fe[nl]ix [~quassel@pdpc/supporter/professional/fenlix] has quit [Remote host closed the connection] 09:43:25 fe[nl]ix [~quassel@pdpc/supporter/professional/fenlix] has joined #sbcl 09:53:35 attila_lendvai [~attila_le@87.247.13.86] has joined #sbcl 09:53:35 -!- attila_lendvai [~attila_le@87.247.13.86] has quit [Changing host] 09:53:35 attila_lendvai [~attila_le@unaffiliated/attila-lendvai/x-3126965] has joined #sbcl 09:55:18 -!- Xof__ is now known as Xof 09:55:26 -!- ChanServ has set mode +o Xof 09:58:19 -!- attila_lendvai [~attila_le@unaffiliated/attila-lendvai/x-3126965] has quit [Ping timeout: 264 seconds] 10:01:12 -!- dropster [~Kim@port284.ds1-oebr.adsl.cybercity.dk] has left #sbcl 10:14:25 -!- echo-area [~user@182.92.247.2] has quit [Ping timeout: 252 seconds] 10:22:33 echo-area [~user@182.92.247.2] has joined #sbcl 10:45:00 -!- echo-area [~user@182.92.247.2] has quit [Read error: Connection reset by peer] 11:39:52 antgreen [~user@bas3-toronto06-1177890229.dsl.bell.ca] has joined #sbcl 12:58:03 -!- pnathan1 [~Adium@75.87.255.164] has quit [Quit: Leaving.] 12:59:03 pnathan [~Adium@75.87.255.164] has joined #sbcl 13:00:54 nikodemus [~nikodemus@cs181241043.pp.htv.fi] has joined #sbcl 13:00:54 -!- ChanServ has set mode +o nikodemus 13:12:55 -!- nikodemus [~nikodemus@cs181241043.pp.htv.fi] has quit [Quit: This computer has gone to sleep] 13:17:22 Fare [~Fare@173-9-65-97-NewEngland.hfc.comcastbusiness.net] has joined #sbcl 13:42:24 siccegge` [~user@davinci.siccegge.de] has joined #sbcl 13:42:44 reb``` [user@nat/google/x-hugfguotjigolizd] has joined #sbcl 13:42:45 christop` [~user@oteiza.siccegge.de] has joined #sbcl 13:44:18 -!- siccegge [~user@davinci.siccegge.de] has quit [Ping timeout: 260 seconds] 13:44:52 -!- reb`` [user@nat/google/x-tflczgmkmjzvpudk] has quit [Ping timeout: 260 seconds] 13:44:53 -!- christoph_debian [~user@oteiza.siccegge.de] has quit [Ping timeout: 260 seconds] 13:49:58 slyrus [~chatzilla@209.52.84.50] has joined #sbcl 13:50:18 LiamH [~none@pdp8.nrl.navy.mil] has joined #sbcl 13:54:31 leuler [~user@p54903C04.dip.t-dialin.net] has joined #sbcl 14:06:03 gko [~gko@114-34-168-13.HINET-IP.hinet.net] has joined #sbcl 14:08:29 leuler: pong? 14:10:17 Hello? 14:10:24 Any SBCL'er here? 14:11:19 yes 14:23:19 froydnj: Hi. I see you are becoming more active recently. Great! As the two of us seem to share a passion for micro optimizations I just wanted to find out whether there are potential clashes, as I have some changes nearly commit-ready in that area. 14:24:36 leuler: I doubt your changes conflict; I am nearly out of micro-optimizations :) 14:28:06 Anyway, here are mine, all on x86-64: Make MOVZX write a dword instead of a qword to spare a REX prefix, make %TEST-HEADERS use comparisons directly against memory where possible (as already done on x86), for type tests that compare AL make the previous MOV write EAX instead of RAX in more cases (again for space). 14:29:43 ah, nice 14:30:46 the only one I had was to change the lowtag test code to (for other-pointers) to LEA RAX, [REG+1]; TEST AL, LOWTAG-MASK 14:31:05 which is fewer insns and one byte shorter when REG is a high register 14:32:40 I see x86 already does this 14:32:45 Which function is that in exactly? 14:32:57 x86-64/type-vops.lisp:%test-lowtag 14:34:31 leuler: array bound checking would really benefit from a smart usage of unsigned comparisons. 14:35:37 Re lowtag test code: So that doesn't interfere with what I plan. 14:35:54 I was thinking about picking that up, only for (integer x y) checks 14:36:11 wondered what people thought of doing it in the check-generation code vs. doing it on IR1 14:37:12 I asked a question here yesterday or so, but noone was here to read it :-) 14:37:16 So here goes: 14:37:21 Doing DOCUMENTATION on a SB-PCL::CONDITION-EFFECTIVE-SLOT-DEFINITION yields NIL even if the slot has a decrtioption 14:37:30 Is this a bug? 14:37:42 (it also raises a warning) 14:38:53 pkhuong: %CHECK-BOUND already uses unsigned comparisons for 0 <= index < length 14:39:11 ah, good stuff. 14:43:27 Here's on random idea I had re checking for multiple low/wide tags: we could implement a bit-vector lookup as a literal load in register, followed by a shift, and jump on CF? 14:45:08 %test-headers currently emits a bunch of equality or range tests. 14:45:50 so load specially-crafted bit vector; shift vector, widetag; j{n,}c ? 14:46:22 yes. Which fits just right for widetags because they're separated by a stride of 4. 14:48:09 I am blanking on how this lets you do multiple simultaneous widetag checking 14:48:52 we can have 1 bit per widetag/4 on x86-64 14:49:32 oh, oh, duh 14:51:13 makes it difficult to refactor %test-headers (all the duplicated *-STRING logic makes whn cry) 14:51:57 but also would save quite some code, perhaps 14:52:49 Would the code duplication not be avoidable by a macrolet? 14:54:51 maybe not macrolet, but macros used by %test-headers, perhaps 14:55:26 i.e. %test-headers for each backend contains all the logic for efficient *-STRING widetag checking 14:57:25 So you meant duplication across different backends? I thought you meant inside %test-headers. Also, where is *-STRING treated specially on x86-64? 14:58:09 ah, I see x86-64 doesn't contain the *-STRING stuff 14:58:29 which might not be worth much anyway with (VECTOR NIL) 14:59:13 or just BT (: 15:00:13 I meant just in %test-headers. We might leave some specialised logic, but it's still a relatively easy improvement. 15:02:55 loke: probably, yes 15:04:28 So, that would be: MOV ecx, widetag; SHR cl, 2; MOV rax, pattern; SHR rax, cl? 15:06:05 BT instead of SHR (: 15:06:18 even simpler. 15:07:00 That looks large using many instructions and a 64-bit constant, but should be better from two tags to test on? And *-STRING treated differntly anyway? 15:07:21 Yes to BT instead of SHR. 15:07:41 leuler: not sure if it's better than a range check or not. 15:07:59 my beautiful range check from a lovely handcrafted ordering of widetags 15:08:17 there is maybe even a handcrafted version of this somewhere for STRING 15:08:19 but I'd switch somewhere around two (any) checks or one range check. 15:09:31 Yes, a range check, I see. Are there important cases where more than one range or two single tags are tested for? 15:13:30 a couple for complex, array or string checks 15:13:56 generic/late-type-vops.lisp has a bunch 15:20:46 There are a few tests that look like they need two checks. 15:21:15 two range checks, that it. 15:24:00 Here is one spotted in disassembly: CMP AL, 21; JBE Lxx; CMP AL, 29; JNE Lyy; Lxx: ... This seems to be a range (starting at the low end) and a single value. 15:25:30 probably (type rational) 15:27:08 it'd be nice to pick off random TYPEP of OR types, but that's not going to happen (: 15:27:56 -!- specbot [~specbot@pppoe.178-66-10-42.dynamic.avangarddsl.ru] has quit [Remote host closed the connection] 15:31:55 it'd be nice too if in types like (or struct-foo struct-bar) it could remember the lowtag test between the two types 15:33:39 Xof: that'd be quite the change in arch... 15:47:04 As nice as it is to see the discussion "fray", is there is a conclusion? Does anybody want to start working on pkhuong's idea? Should I commit the %test-headers changes I have anyway as they should be an improvement? Also, froydnj, do you intend to push the LEA change to %test-lowtag? 15:55:56 leuler: I think your changes are worth pushing 15:56:16 I will poke at the LEA change this release cycle or the next 15:58:19 Xof: OK, easy to fix? 15:59:24 -!- saschakb [~saschakb@p4FEA0BCB.dip0.t-ipconnect.de] has quit [Remote host closed the connection] 16:00:41 no idea 16:00:43 haven't looked 16:04:55 froydnj: Thanks. I will push my changes within the next few days. 16:06:21 Actually. 16:06:29 FIxing it was incredibly trivial 16:19:18 -!- reb``` [user@nat/google/x-hugfguotjigolizd] has quit [Remote host closed the connection] 16:24:45 brown` [user@nat/google/x-ujnbllyqwjuqlxcr] has joined #sbcl 16:25:30 -!- brown` is now known as reb` 16:45:44 -!- gko [~gko@114-34-168-13.HINET-IP.hinet.net] has quit [Ping timeout: 265 seconds] 17:17:36 Qworkescence [~quad@unaffiliated/quadrescence] has joined #sbcl 17:39:07 gabnet [~gabnet@ACaen-257-1-85-44.w86-220.abo.wanadoo.fr] has joined #sbcl 17:48:29 prxq [~mommer@mnhm-590c004c.pool.mediaWays.net] has joined #sbcl 17:55:08 -!- gabnet [~gabnet@ACaen-257-1-85-44.w86-220.abo.wanadoo.fr] has quit [Quit: Quitte] 17:56:20 -!- leuler [~user@p54903C04.dip.t-dialin.net] has quit [Quit: ERC Version 5.1.2 $Revision: 1.796.2.6 $ (IRC client for Emacs)] 18:06:49 -!- angavrilov [~angavrilo@217.71.227.190] has quit [Ping timeout: 245 seconds] 18:40:44 Kryztof [~user@81.174.155.115] has joined #sbcl 18:40:44 -!- ChanServ has set mode +o Kryztof 18:52:58 -!- christop` is now known as christoph_debian 19:17:48 puchacz_ [~puchacz@87-194-5-99.bethere.co.uk] has joined #sbcl 19:49:20 -!- siccegge` is now known as siccegge 20:04:16 -!- puchacz_ [~puchacz@87-194-5-99.bethere.co.uk] has quit [Ping timeout: 276 seconds] 20:28:29 pkhuong: do you recall if there was a reason x86-64 float vops no longer support stack or descriptor-reg (non-single-float, of course) scs? 20:34:00 None of them? 20:35:02 If it were only mixed complex/real operations, I'd say alignment. Otherwise, I can't think of anything. 20:38:19 I guess the compare ops do, but the basic arithmetic ops do not 20:38:31 *Kryztof* is sad at the openbsd/ppc situation 20:45:49 -!- homie` [~levgue@xdsl-78-35-179-70.netcologne.de] has quit [Read error: Connection reset by peer] 20:46:29 homie` [~levgue@xdsl-78-35-139-209.netcologne.de] has joined #sbcl 21:35:02 -!- prxq [~mommer@mnhm-590c004c.pool.mediaWays.net] has quit [Quit: Leaving] 21:43:58 -!- LiamH [~none@pdp8.nrl.navy.mil] has quit [Quit: Leaving.] 21:57:06 -!- edgar-rft [~user@HSI-KBW-078-043-123-191.hsi4.kabel-badenwuerttemberg.de] has quit [Quit: ERC Version 5.3 (IRC client for Emacs)] 22:07:21 leuler [~user@p549030BD.dip.t-dialin.net] has joined #sbcl 22:15:19 -!- Qworkescence [~quad@unaffiliated/quadrescence] has quit [Read error: Connection reset by peer] 22:15:39 Qworkescence [~quad@unaffiliated/quadrescence] has joined #sbcl 22:21:12 Regarding %TEST-HEADERS again: I just noticed that Xof's nice tricks with the "handcrafted ordering" of widetags, which x86-64 currently doesn't exploit, don't carry over to x86-64 anyway so simply. 22:21:21 The trick depends upon the widetags of the component types of for example BASE-STRING differing in only one bit. 22:21:24 This breaks down on x86-64 as there are more widetags in use there and the BASE-STRING component's values are offset by preceding widetags in the enum such that they differ in several bits. 22:23:13 Seen positively, this means that I don't need to feel too bad that I did not even try to port the trick to x86-64 when working on %TEST-HEADERS ;-) 23:17:52 -!- Qworkescence [~quad@unaffiliated/quadrescence] has quit [Quit: Leaving] 23:39:34 -!- leuler [~user@p549030BD.dip.t-dialin.net] has quit [Quit: ERC Version 5.1.2 $Revision: 1.796.2.6 $ (IRC client for Emacs)]