Dataflow: Refactor FlowState to be paired with Node#18633
Dataflow: Refactor FlowState to be paired with Node#18633aschackmull merged 14 commits intogithub:mainfrom
Conversation
1a930cc to
dd0a07e
Compare
|
Commit-by-commit review encouraged, but the second commit really needs to be viewed with |
hvitved
left a comment
There was a problem hiding this comment.
Nice refactor, trivial comments only. Also, performance needs to be fixed.
| /* End: Stage 1 logic. */ | ||
| } | ||
|
|
||
| private module Stage1Common { |
There was a problem hiding this comment.
Should this be moved up before the Stage1 module, perhaps?
There was a problem hiding this comment.
It contains a bit of a mix of input and output predicates relative to the Stage1 module. It's mostly output, though, hence why I put it after.
|
|
||
| private class Cc = boolean; | ||
|
|
||
| /* Begin: Stage 1 logic. */ |
There was a problem hiding this comment.
This comment (and the end comment) is perhaps redundant now?
There was a problem hiding this comment.
Yes, I'll remove them.
| @@ -169,4237 +171,2703 @@ module MakeImpl<LocationSig Location, InputSig<Location> Lang> { | |||
| /** | |||
| * Constructs a data flow computation given a full input configuration. | |||
There was a problem hiding this comment.
QL doc should probably also mention the Stage1 parameter.
|
Wouldn't it be cheaper and simpler to pair it up with the access path instead? I imagine the newtype TAccessPath =
TNil(FlowState state) { ...} or
TCons(Content head, TAccessPath tail) { ... } |
I don't think so. It might be cheaper in terms of number of constructed elements of IPA types, but I definitely don't think it's simpler. Firstly, doing so would be a semantic change in all the cases where we aren't tracking an exact access path. Secondly, the tracking of |
72ca71e to
73d7250
Compare
|
Dca looks good now. |
I think it might simply be due to reduced memory pressure, since we've removed a column from most predicates. Impressive nonetheless. |
That's great news! The stage timings seem to indicate |
|
I just checked |
This refactors the representation of FlowState in the data flow library. Stage 1 is extracted to its own file and then for subsequent stages we either use
NodeExdirectly or a(NodeEx, FlowState)pair as the node type in order to eliminate theFlowStatecolumn.