01:29:30  * unixpicklequit (Quit: My Mac has gone to sleep. ZZZzzz…)
01:35:23  * xaxxonjoined
02:25:31  * Tweth-V-PDSjoined
02:28:14  * Tweth-U-PDSquit (Ping timeout: 258 seconds)
02:39:42  * bradleymeckquit (Quit: bradleymeck)
05:29:09  * s1341joined
06:54:47  <s1341>caitp: can you tell me when FAST/SLOW_SLOPPY_ARGUMENTS_ELEMENTS is used?
08:58:17  * etnbrdjoined
09:11:56  * plutoniixjoined
09:12:33  * plutoniixquit (Max SendQ exceeded)
09:13:52  <s1341>also caitp, in the new pipeline, are the ic/<arch>/handler-compiler-<arch>.cc files in use? It seems to me that the turbofan/ignition way is to do data driven ICs with the feedback register?
09:15:10  * plutoniixjoined
09:23:34  * wadeyquit (Ping timeout: 246 seconds)
09:24:25  * wadeyjoined
09:29:28  <trungl-bot>Tree closed by [email protected]: closed - maintenance
09:35:08  * plutoniixquit (Ping timeout: 240 seconds)
09:42:05  * plutoniixjoined
10:00:33  * plutoniixquit (Read error: Connection reset by peer)
10:02:31  * plutoniixjoined
10:02:31  * plutoniixquit (Read error: Connection reset by peer)
10:03:39  * plutoniixjoined
10:05:40  <trungl-bot>Tree opened by [email protected]: open
10:10:41  <trungl-bot>Tree closed by [email protected]: closed (/builders/V8%20Android%20GN%20%28dbg%29/builds/7606 from b5b87aecf1a1a591d65cac5406dec787b6eb08e7)
10:13:43  <trungl-bot>Tree opened by [email protected]: open
10:15:14  * plutoniixquit (Read error: Connection reset by peer)
10:16:11  * plutoniixjoined
10:21:19  * plutoniixquit (Read error: Connection reset by peer)
10:22:17  * plutoniixjoined
10:26:08  * mylesborinsquit (Quit: farewell for now)
10:26:38  * mylesborinsjoined
10:36:48  * plutoniixquit (Read error: Connection reset by peer)
10:38:11  * plutoniixjoined
10:39:42  * plutoniixquit (Read error: Connection reset by peer)
10:42:32  * plutoniixjoined
10:44:10  * plutoniixquit (Read error: Connection reset by peer)
10:45:25  * plutoniixjoined
11:03:02  * plutoniixquit (Read error: Connection reset by peer)
11:04:27  * plutoniixjoined
11:06:19  * platicusquit (Remote host closed the connection)
11:06:19  * jwolfequit (Remote host closed the connection)
11:07:09  * jwolfejoined
11:07:13  * platicusjoined
11:15:31  * plutoniixquit (Read error: Connection reset by peer)
11:17:09  * plutoniixjoined
11:21:21  * plutoniixquit (Read error: Connection reset by peer)
11:22:58  * plutoniixjoined
11:24:56  * plutoniixquit (Read error: Connection reset by peer)
11:26:22  * plutoniixjoined
11:36:26  * plutoniixquit (Read error: Connection reset by peer)
11:37:28  * plutoniixjoined
11:38:25  * plutoniixquit (Read error: Connection reset by peer)
11:39:53  * plutoniixjoined
11:41:48  * plutoniixquit (Read error: Connection reset by peer)
11:42:23  * plutoniixjoined
11:44:37  * plutoniixquit (Read error: Connection reset by peer)
11:45:37  * plutoniixjoined
11:47:34  * plutoniixquit (Read error: Connection reset by peer)
11:48:53  * plutoniixjoined
11:57:16  * plutoniixquit (Read error: Connection reset by peer)
11:58:04  * plutoniixjoined
12:11:47  * plutoniixquit (Read error: Connection reset by peer)
12:12:47  * plutoniixjoined
12:19:25  <s1341>rmcilroy: you around?
12:19:52  <s1341>rmcilroy: I have some questions about turbofan...
12:21:28  * plutoniixquit (Read error: Connection reset by peer)
12:24:10  * plutoniixjoined
12:29:22  * plutoniixquit (Read error: Connection reset by peer)
12:30:23  * plutoniixjoined
12:33:14  * plutoniixquit (Read error: Connection reset by peer)
12:33:24  * bradleymeckjoined
12:34:11  * plutoniixjoined
12:34:15  * bradleymeckquit (Client Quit)
12:43:34  * bradleymeckjoined
12:50:56  * bradleymeckquit (Quit: bradleymeck)
12:55:37  * plutoniixquit (Read error: Connection reset by peer)
12:56:45  * plutoniixjoined
13:01:51  * plutoniixquit (Read error: Connection reset by peer)
13:02:39  * plutoniixjoined
13:03:54  * plutoniixquit (Read error: Connection reset by peer)
13:04:37  * plutoniixjoined
13:05:59  * plutoniixquit (Read error: Connection reset by peer)
13:06:42  * plutoniixjoined
13:07:15  <rmcilroy>s1341, I'm around
13:10:12  * plutoniixquit (Read error: Connection reset by peer)
13:10:42  <s1341>rmcilroy:
13:10:59  <s1341>so i'm looking at js-builtins-reducer
13:11:11  <s1341>and I have a fundamental question...
13:11:29  <s1341>what are a nodes Value and Effect?
13:12:00  * plutoniixjoined
13:12:24  <rmcilroy>Turbofan is a sea-of-nodes compiler
13:12:56  <rmcilroy>so it doesn't have a traditional CFG graph form, but instead has multiple different edge types in the graph
13:13:06  <rmcilroy>Value, Effect and Control
13:13:12  <s1341>ok.
13:13:19  <s1341>So what are each of those edge types for?
13:13:28  <s1341>(is there documentation for this anywhere?)
13:14:01  <rmcilroy>just looking
13:15:21  <rmcilroy>This is the original paper written about sea of nodes:
13:15:21  <rmcilroy>http://grothoff.org/christian/teaching/2007/3353/papers/click95simple.pdf
13:15:49  <rmcilroy>In essence value edges are data-flow edges, control edges are control flow edges
13:16:08  <rmcilroy>the effect edges are something we have to ensure that observable side-effects happen in the right order
13:16:22  <rmcilroy>(not sure if that was in the paper above)
13:17:01  <rmcilroy>Where observable effects might be memory writes into objects, calls or throwing exceptions
13:17:59  * bradleymeckjoined
13:18:31  * plutoniixquit (Read error: Connection reset by peer)
13:18:57  <s1341>Ok.
13:19:08  <s1341>can you have multiple effect inputs?
13:19:12  * plutoniixjoined
13:19:27  <s1341>btw: found this: https://docs.google.com/presentation/d/1Z9iIHojKDrXvZ27gRX51UxHD-bKf1QcPzSijntpMJBM/
13:21:03  * plutoniixquit (Read error: Connection reset by peer)
13:21:52  * plutoniixjoined
13:24:06  * plutoniixquit (Read error: Connection reset by peer)
13:24:54  * plutoniixjoined
13:26:59  * plutoniixquit (Read error: Connection reset by peer)
13:28:48  * plutoniixjoined
13:29:23  * plutoniixquit (Read error: Connection reset by peer)
13:30:27  * plutoniixjoined
13:33:30  * plutoniixquit (Read error: Connection reset by peer)
13:34:24  * plutoniixjoined
13:36:36  * plutoniixquit (Read error: Connection reset by peer)
13:37:08  * plutoniixjoined
13:38:01  <s1341>I still don't think I understand the effect edges.
13:38:12  <s1341>value and control seem pretty clear, but what is effect for?
13:38:15  <s1341>rmcilroy: ?
13:39:24  * plutoniixquit (Read error: Connection reset by peer)
13:40:12  * plutoniixjoined
13:41:28  <rmcilroy>re: multiple effect edges - effectPhi's can have multiple effect edges since they merge the effect chain from multiple branches
13:41:33  <rmcilroy>(i.e., after an if/else)
13:41:49  <rmcilroy>You can think of the effect edges as the in-order list of effectful operations
13:42:18  * plutoniixquit (Read error: Connection reset by peer)
13:42:25  <rmcilroy>when the graph is initially build these are basically wired up to every node in the graph in order since almost every operation in JS could be effectful
13:42:33  <rmcilroy>(e.g., due to valueOf or similar)
13:42:55  <rmcilroy>but when we speculatively lower to more low-level operations we can unlink nodes from the effect chain
13:43:21  <rmcilroy>(e.g., if we know addition is on pure numbers, then the addition operation won't have any external effect outside the current function)
13:43:22  * plutoniixjoined
13:45:11  * plutoniixquit (Read error: Connection reset by peer)
13:46:39  * plutoniixjoined
13:50:47  <s1341>so the effect chain is the graph of side-effectful operations?
13:51:51  * plutoniixquit (Read error: Connection reset by peer)
13:51:54  <rmcilroy>Yes
13:52:29  <s1341>ok. so the current effect and value nodes could be the same.
13:53:50  <s1341>How is a LoadField effectful?
13:53:54  * plutoniixjoined
13:56:00  <rmcilroy>The property could be an accessor, so calls arbitrary JS code
13:56:04  * plutoniixquit (Read error: Connection reset by peer)
13:56:41  <s1341>Oh. so LoadField is actually property/elements access, not raw LoadObjectField?
13:57:08  <caitp>I think the LoadField simplified op is unrelated to that
13:57:24  * plutoniixjoined
13:57:38  <caitp>the js-op LoadProperty would be concerned with that, though
13:57:41  <s1341>caitp so simplified()->LoadField is closer to LoadObjectField?
13:57:54  <caitp>I believe so
13:58:05  <s1341>so how can it be effectful?
13:58:24  <rmcilroy>Ahh yeah I was thinking of LoadProperty
13:58:30  <caitp>It's not effectful in the sense of modifying other state, but it just sort of tracks the order of the operation
13:59:19  <s1341>so it needs to be aware of order relative to other operations which ARE effectful?
13:59:21  <rmcilroy>Right, it's also for ensuring loads / stores to memory happen in the same order
13:59:39  <s1341>ok. starting to get a handle on this ;)
13:59:58  * plutoniixquit (Read error: Connection reset by peer)
14:03:35  * plutoniixjoined
14:05:52  * unixpicklejoined
14:06:30  * plutoniixquit (Read error: Connection reset by peer)
14:07:11  * plutoniixjoined
14:07:36  <s1341>what is GetMapWitness ?
14:08:32  * plutoniixquit (Read error: Connection reset by peer)
14:08:48  <caitp>I guess you're looking at JSBuiltinReducer?
14:09:19  * plutoniixjoined
14:09:26  <s1341>caitp: yup.
14:09:38  <caitp>you can think of it as the compiler providing you with a monomorphic Map of an input (or maybe just the receiver?)
14:09:58  <caitp>if it determines the call to be monomorphic, but there are some flakes with that sometimes
14:10:42  <s1341>how do you mean?
14:11:08  * plutoniixquit (Read error: Connection reset by peer)
14:11:26  * jochen__quit (Ping timeout: 255 seconds)
14:11:31  * jochen___joined
14:11:39  <caitp>I'd have to dig up the bug, but there are some test flakes periodically where a call that monomorphically gets a UInt16Array sees the same inputs as other separate calls
14:11:42  <s1341>how can the reducer know the type of a receiver?
14:12:01  <s1341>i mean, isn't that something which is only known at runtime?
14:12:46  <caitp>the IC subsystem tracks some of this stuff
14:13:08  <s1341>specifically NodeProperties.GetType
14:13:17  <s1341>specifically NodeProperties::GetType *
14:13:38  <caitp>well that's a different thing
14:14:56  * plutoniixjoined
14:15:37  <s1341>caitp?
14:16:00  * scottmgquit (Ping timeout: 255 seconds)
14:16:30  <caitp>you'd want to look at typer.h/cc for info about GetType
14:16:53  <caitp>and... src/types.h I think?
14:17:04  * scottmgjoined
14:17:08  <caitp>src/compiler/types.h now
14:20:48  <s1341>how does it decide the types of nodes?
14:21:02  * plutoniixquit (Read error: Connection reset by peer)
14:24:06  * plutoniixjoined
14:25:10  <s1341>Is it true to say that nodes are always operations. Constants/Parameters aren't nodes?
14:25:38  <caitp>I don't think so
14:26:40  * plutoniixquit (Read error: Connection reset by peer)
14:27:28  * plutoniixjoined
14:32:13  * plutoniixquit (Read error: Connection reset by peer)
14:32:47  * plutoniixjoined
14:34:40  * plutoniixquit (Read error: Connection reset by peer)
14:35:20  * plutoniixjoined
14:40:48  * unixpicklequit (Quit: My Mac has gone to sleep. ZZZzzz…)
14:44:10  * plutoniixquit (Read error: Connection reset by peer)
14:45:07  * plutoniixjoined
14:49:53  * plutoniixquit (Read error: Connection reset by peer)
14:51:00  * plutoniixjoined
14:56:46  * plutoniixquit (Read error: Connection reset by peer)
14:57:47  * plutoniixjoined
15:02:45  * plutoniixquit (Read error: Connection reset by peer)
15:03:17  * plutoniixjoined
15:03:53  <trungl-bot>Tree closed by [email protected]: closed (/builders/V8%20Linux64/builds/17082 from e28f7fc90daf5b2b28e40fa6239e8a8e766b96e6)
15:08:26  * plutoniixquit (Read error: Connection reset by peer)
15:09:57  * plutoniixjoined
15:12:58  <trungl-bot>Tree closed by [email protected]: closed (infra problem)
15:15:32  <caitp>hmm
15:21:00  <trungl-bot>Tree opened by [email protected]: open
15:21:00  * plutoniixquit (Read error: Connection reset by peer)
15:22:39  * plutoniixjoined
15:24:02  * unixpicklejoined
15:34:01  * plutoniixquit (Read error: Connection reset by peer)
15:35:36  * plutoniixjoined
15:41:55  * plutoniixquit (Read error: Connection reset by peer)
15:43:27  * plutoniixjoined
15:50:55  * plutoniixquit (Read error: Connection reset by peer)
15:51:12  * RT|Chatzillaquit (Quit: ChatZilla 0.9.86.1 [Firefox 2.0.0.22pre/2010030309])
15:51:38  * plutoniixjoined
15:54:59  * plutoniixquit (Read error: Connection reset by peer)
15:55:25  * plutoniixjoined
15:57:58  * plutoniixquit (Read error: Connection reset by peer)
15:58:30  * plutoniixjoined
16:00:19  * plutoniixquit (Read error: Connection reset by peer)
16:00:57  * plutoniixjoined
16:02:36  * plutoniixquit (Read error: Connection reset by peer)
16:03:39  * plutoniixjoined
16:06:14  * plutoniixquit (Read error: Connection reset by peer)
16:07:33  * plutoniixjoined
16:08:22  * plutoniixquit (Read error: Connection reset by peer)
16:09:50  * plutoniixjoined
16:10:24  * plutoniixquit (Read error: Connection reset by peer)
16:11:46  * plutoniixjoined
16:12:09  * plutoniixquit (Read error: Connection reset by peer)
16:22:25  * bradleymeckquit (Quit: bradleymeck)
16:24:53  * unixpicklequit (Quit: My Mac has gone to sleep. ZZZzzz…)
16:48:01  * bradleymeckjoined
17:10:34  * s1341quit (Quit: Connection closed for inactivity)
17:17:45  * seventhjoined
17:26:57  * bradleymeckquit (Quit: bradleymeck)
17:47:50  * xaxxonquit (Ping timeout: 256 seconds)
18:48:05  * s1341joined
18:51:57  * seventhquit (Ping timeout: 240 seconds)
18:55:32  * seventhjoined
19:04:14  * bradleymeckjoined
19:25:17  <jwolfe>builtins-utils.h has a TO_THIS_STRING macro which includes an implementaion of the js macro CHECK_OBJECT_COERCIBLE. It looks like there are several places in the cpp builtins where we're effectively doing a CHECK_OBJECT_COERCIBLE like the TO_THIS_STRING macro is doing, but it's not in any macro. is it cool if i make a CL to extract those to a CPP macro CHECK_OBJECT_COERCIBLE?
19:32:56  * trungl-botquit (Ping timeout: 246 seconds)
19:41:05  * trungl-botjoined
19:44:54  * trungl-botquit (Remote host closed the connection)
19:46:26  * trungl-botjoined
19:56:44  * seventhquit (Quit: ...)
19:57:32  * unixpicklejoined
21:00:34  * s1341quit (Quit: Connection closed for inactivity)
21:13:34  * Guest59quit (Ping timeout: 260 seconds)
21:20:46  * Guest59joined
21:37:40  * unixpicklequit (Quit: My Mac has gone to sleep. ZZZzzz…)
21:58:15  * bradleymeckquit (Quit: bradleymeck)
22:14:24  * RT|Chatzillajoined