00:11:27 -!- davazp [~user@178.167.226.111.threembb.ie] has quit [Quit: ERC Version 5.3 (IRC client for Emacs)] 00:19:01 -!- slyrus [~chatzilla@adsl-99-183-240-185.dsl.pltn13.sbcglobal.net] has quit [Ping timeout: 252 seconds] 00:33:17 -!- milosn_ is now known as milosn 00:45:05 -!- Quadrescence [~quad@unaffiliated/quadrescence] has quit [Quit: Leaving] 00:45:48 LiamH [~none@pool-173-73-133-61.washdc.east.verizon.net] has joined #sbcl 00:46:24 Quadrescence [~quad@unaffiliated/quadrescence] has joined #sbcl 00:47:13 slyrus [~chatzilla@adsl-99-183-240-185.dsl.pltn13.sbcglobal.net] has joined #sbcl 00:52:34 -!- slyrus [~chatzilla@adsl-99-183-240-185.dsl.pltn13.sbcglobal.net] has quit [Ping timeout: 252 seconds] 02:00:12 -!- LiamH [~none@pool-173-73-133-61.washdc.east.verizon.net] has quit [Quit: Leaving.] 02:30:42 -!- Quadrescence [~quad@unaffiliated/quadrescence] has quit [Quit: This computer has gone to sleep] 02:38:36 -!- christoph4 [~christoph@ppp-188-174-120-176.dynamic.mnet-online.de] has quit [Read error: Operation timed out] 02:53:03 christoph4 [~christoph@ppp-188-174-128-100.dynamic.mnet-online.de] has joined #sbcl 04:33:34 teggi [~teggi@123.20.127.25] has joined #sbcl 04:36:19 attila_lendvai [~attila_le@92.47.189.92] has joined #sbcl 04:36:19 -!- attila_lendvai [~attila_le@92.47.189.92] has quit [Changing host] 04:36:19 attila_lendvai [~attila_le@unaffiliated/attila-lendvai/x-3126965] has joined #sbcl 05:46:35 -!- ivan`` [~ivan@unaffiliated/ivan/x-000001] has quit [Ping timeout: 246 seconds] 05:49:39 ivan`` [~ivan@unaffiliated/ivan/x-000001] has joined #sbcl 05:53:47 bege_ [~bege@S0106001d7e5132b0.ed.shawcable.net] has joined #sbcl 05:53:51 capisce_ [~srodal@cm-84.215.35.251.getinternet.no] has joined #sbcl 05:54:42 -!- capisce [~srodal@cm-84.215.35.251.getinternet.no] has quit [Write error: Broken pipe] 05:54:57 -!- bege [~bege@S0106001d7e5132b0.ed.shawcable.net] has quit [Remote host closed the connection] 05:56:34 -!- foreignFunction [~niksaak@ip-4761.sunline.net.ua] has quit [Quit: Leaving.] 06:08:04 sdemarre [~serge@91.176.240.203] has joined #sbcl 06:56:53 -!- yacks [~py@180.151.36.168] has quit [Quit: Leaving] 07:27:25 -!- pchrist [~spirit@gentoo/developer/pchrist] has quit [Quit: leaving] 07:38:50 pchrist [~spirit@gentoo/developer/pchrist] has joined #sbcl 08:25:46 -!- capisce_ is now known as capisce 08:37:44 -!- attila_lendvai [~attila_le@unaffiliated/attila-lendvai/x-3126965] has quit [Quit: Leaving.] 08:59:50 stassats` [~stassats@wikipedia/stassats] has joined #sbcl 09:12:56 -!- teggi [~teggi@123.20.127.25] has quit [Remote host closed the connection] 09:14:35 yacks [~py@180.151.36.168] has joined #sbcl 09:21:24 what does "L4: L5: L6:265F0005" in the MIPS disassembly mean? 09:21:35 three labels for one location? 09:34:05 -!- wbooze [~wbooze@xdsl-78-35-172-217.netcologne.de] has quit [Quit: none] 09:36:03 wbooze [~wbooze@xdsl-78-35-172-217.netcologne.de] has joined #sbcl 09:40:08 -!- edgar-rft [~GOD@HSI-KBW-149-172-63-75.hsi13.kabel-badenwuerttemberg.de] has quit [Quit: bleeding...] 09:51:26 prxq [~mommer@mnhm-590c2d74.pool.mediaWays.net] has joined #sbcl 10:04:43 -!- wbooze [~wbooze@xdsl-78-35-172-217.netcologne.de] has quit [Ping timeout: 264 seconds] 10:05:31 wbooze [~wbooze@xdsl-78-35-158-47.netcologne.de] has joined #sbcl 10:59:01 -!- sdemarre [~serge@91.176.240.203] has quit [Read error: Operation timed out] 11:02:36 manual fiddling with how to better deal with boxing and unboxing fixnums is doomed 11:02:53 (AND UNSIGNED-BYTE FIXNUM) generates worse code for (+ x y) than just FIXNUM 11:03:32 and there's already 7 fast-+... 11:13:22 scymtym [~user@ip-5-147-122-209.unitymediagroup.de] has joined #sbcl 11:24:09 jarod_ch_ [~jarod_che@115.192.187.212] has joined #sbcl 11:35:48 Yeah... either cleverer selection in IR2 (have to matche several templates at once), or maybe we can fold them all in a single VOP and hand-roll some logic. 11:38:22 -!- jarod_ch_ [~jarod_che@115.192.187.212] has quit [Quit: Textual IRC Client: http://www.textualapp.com/] 11:45:44 (logand (+ (the fixnum x) 7) -7) gets into AND RDX, -7, but (logand (+ (the index x) 7) -7) into AND RDX, [RIP+93] ; #x7FFFFFFFFFFFFFF9 11:45:52 sigh... 11:46:25 even with head? 11:46:28 yep 11:47:15 *stassats`* had to recompile HEAD on the laptop, because older revisions produced even more bizarre code in some cases 11:48:16 computing alignment prefixes and suffixes is hard... 11:56:49 though, the + in (logand (+ x 7) -8) can overflow, (* (ceiling x 8) 8) is better 11:59:51 stassats [~stassats@wikipedia/stassats] has joined #sbcl 12:00:48 foreignFunction [~niksaak@ip-4761.sunline.net.ua] has joined #sbcl 12:01:22 -!- stassats` [~stassats@wikipedia/stassats] has quit [Ping timeout: 252 seconds] 12:15:19 stassats: something like http://paste.lisp.org/display/137317 :\ 12:18:15 stassats: + different names for the VOPs 12:20:00 if only it were limited just to +, then maybe that would be a good approach 12:22:31 stassats: they can be generated for +/-/* 12:24:22 *stassats* would love some critique on this ascii-array-p https://github.com/stassats/sbcl/blob/621c9363db8c54c1f65e518c12c8d13f7d0f6578/src/code/external-formats/enc-basic.lisp#L38 12:25:14 and ascii-sap-p 12:26:58 I find logandc2 slightly clearer for alignment 12:28:18 and I'd test the tail at the end 12:29:01 right, i grouped them for easier commenting/uncommenting 12:29:28 also, our allocation is always rounded to 2 words, so data is always full words (zero padded). 12:29:40 without start and end, no alignment needs to be accounted for, so, maybe for things like external-formats (i.e. for streams) it can be simplified 12:29:43 It might be simpler to generate masks to handle start/end 12:29:53 and always read aligned words 12:30:00 i tried that approach, it proved to be too complex 12:31:16 when start and end don't contain the middle portion of the array that is aligned, making masks is complicated 12:32:36 the approach i tried was shifting the mask or a word from the array, depending on start/end and endianness 12:33:22 with start and end not spanning the full word, it needs to be clipped at both ends 12:34:00 leuler [~user@p548F8C91.dip0.t-ipconnect.de] has joined #sbcl 12:35:24 for stream external-formats, it can omit prefix and suffix, and for foreign strings, prefix checking 12:35:55 if it will make it faster, that is 12:37:10 first, i need to produce at least something that works 12:38:21 I'd prefer (zerop (mod start sb-vm:n-word-bytes)) over logtest. Then the "divisible" comment can be dropped. I admit that it generates slightly worse code (one machine instruction more, and an unnecessary one even). 12:39:13 i tried going backwards through the array in the actual decoding, since after the ascii test data in the cache will be in that order, but backward array iteration seems to be slower 12:39:46 leuler: maybe (zerop (mod start sb-vm:n-word-bytes)) should get optimized 12:41:20 (zerop (mod ...)) appears to be a common pattenr 12:41:38 Would that be possible within the current framework? 12:42:14 literal (zerop (mod ...)), yes, not in a nice way, though 12:42:38 in the transforms 12:45:28 one place i've seen that done is src/compiler/ir1opt.lisp:2070 12:45:38 (values-list (list x y z)) to (values x y z) 13:15:05 -!- foreignFunction [~niksaak@ip-4761.sunline.net.ua] has quit [Read error: Operation timed out] 13:21:24 foreignFunction [~niksaak@ip-4761.sunline.net.ua] has joined #sbcl 13:22:49 sdemarre [~serge@91.176.240.203] has joined #sbcl 13:27:12 attila_lendvai [~attila_le@92.47.189.92] has joined #sbcl 13:27:12 -!- attila_lendvai [~attila_le@92.47.189.92] has quit [Changing host] 13:27:12 attila_lendvai [~attila_le@unaffiliated/attila-lendvai/x-3126965] has joined #sbcl 13:36:05 -!- scymtym [~user@ip-5-147-122-209.unitymediagroup.de] has quit [Ping timeout: 248 seconds] 14:30:37 Quadrescence [~quad@unaffiliated/quadrescence] has joined #sbcl 14:41:27 -!- arrdem [~arrdem@dhcp-53-132.ece.utexas.edu] has quit [Read error: Operation timed out] 14:51:26 arrdem [~arrdem@dhcp-53-132.ece.utexas.edu] has joined #sbcl 15:45:49 vop costs resulting in bad code again 15:47:08 (< (aref ub8-vector i) 128) is translated into MOVE-FROM-WORD/FIXNUM + FAST-IF-<-C/FIXNUM, instead of just FAST-IF-<-C/UNSIGNED, because its cost are lower 15:49:00 is this :cost selection method totally bogus or what? or is it just misused? 15:54:52 maybe combining two VOPs should always be more costlier than one, regardless of the individual costs? 16:01:16 -!- sdemarre [~serge@91.176.240.203] has quit [Remote host closed the connection] 16:03:34 -!- yacks [~py@180.151.36.168] has quit [Remote host closed the connection] 16:04:01 jsnell [~jsnell@ash.snellman.net] has joined #sbcl 16:14:54 *stassats* tries to imagine the least painful way of replacing the compiler 16:17:12 -!- jsnell_ [~jsnell@ash.snellman.net] has quit [*.net *.split] 16:19:51 least painful is to outsource it to already good compiler, ie the scheme way 16:20:09 that's not good enough 16:22:01 considering that sbcl already has a decent compiler, just that it can be better 16:22:33 imho start wit collecting data 16:23:11 like you want to find out do those cost things for vops make sense. Can you answer it? if yes, use the tools. if not, write the tool to answer question like that. 16:24:59 take a dedicated test case (lets say fixnum crunching) 16:25:15 see if you can manually optimize VOP selection, so it generates perfect code 16:25:56 maybe there should be an instr selection test suite 16:25:57 if you could do it manually, then problem is vop selection, and maybe you need a new "vop selection" framework/rules/etc, instead of the costs 16:55:11 -!- wbooze [~wbooze@xdsl-78-35-158-47.netcologne.de] has quit [Remote host closed the connection] 17:20:32 wbooze [~wbooze@xdsl-78-35-158-47.netcologne.de] has joined #sbcl 17:37:34 -!- stassats [~stassats@wikipedia/stassats] has quit [Ping timeout: 245 seconds] 18:08:24 davazp [~user@31.200.186.216] has joined #sbcl 18:20:22 -!- leuler [~user@p548F8C91.dip0.t-ipconnect.de] has quit [Quit: ERC Version 5.1.2 $Revision: 1.796.2.6 $ (IRC client for Emacs)] 18:31:11 a single scalar cost doesn't give enough information to the selection pass. It might have been OK a long time ago, when someone had all the VOPs and move costs in their head, but not anymore. 18:46:39 -!- attila_lendvai [~attila_le@unaffiliated/attila-lendvai/x-3126965] has quit [Quit: Leaving.] 18:49:54 leoc [~leoc.git@p5DDBBFCC.dip0.t-ipconnect.de] has joined #sbcl 19:26:48 -!- foreignFunction [~niksaak@ip-4761.sunline.net.ua] has quit [Quit: Leaving.] 19:28:25 foreignFunction [~niksaak@ip-4761.sunline.net.ua] has joined #sbcl 19:44:20 stassats [~stassats@wikipedia/stassats] has joined #sbcl 20:31:43 -!- davazp [~user@31.200.186.216] has quit [Ping timeout: 264 seconds] 20:33:43 -!- foreignFunction [~niksaak@ip-4761.sunline.net.ua] has quit [Quit: Leaving.] 20:38:18 ASau` [~user@p5797EFC0.dip0.t-ipconnect.de] has joined #sbcl 20:41:35 -!- ASau [~user@p5797EF4C.dip0.t-ipconnect.de] has quit [Ping timeout: 252 seconds] 20:42:07 davazp [~user@31.200.186.216] has joined #sbcl 21:31:19 -!- leoc [~leoc.git@p5DDBBFCC.dip0.t-ipconnect.de] has quit [Ping timeout: 245 seconds] 21:33:48 Bike_ [~Glossina@71-222-53-193.ptld.qwest.net] has joined #sbcl 21:34:27 -!- Bike_ [~Glossina@71-222-53-193.ptld.qwest.net] has quit [Client Quit] 21:34:45 Bike_ [~Glossina@71-222-53-193.ptld.qwest.net] has joined #sbcl 21:34:45 -!- Bike [~Glossina@71-214-85-197.ptld.qwest.net] has quit [Disconnected by services] 21:35:32 -!- Bike_ is now known as Bike 21:39:01 -!- prxq [~mommer@mnhm-590c2d74.pool.mediaWays.net] has quit [Remote host closed the connection] 21:56:55 -!- ASau` is now known as ASau 22:31:07 -!- wbooze [~wbooze@xdsl-78-35-158-47.netcologne.de] has quit [Ping timeout: 252 seconds] 22:38:55 -!- Bike [~Glossina@71-222-53-193.ptld.qwest.net] has quit [Ping timeout: 256 seconds] 22:40:36 Bike [~Glossina@75-175-78-112.ptld.qwest.net] has joined #sbcl 23:42:13 -!- stassats [~stassats@wikipedia/stassats] has quit [Ping timeout: 240 seconds] 23:53:28 -!- davazp [~user@31.200.186.216] has quit [Remote host closed the connection]