Skip to content

⚡ perform flow graph dsl calculations in type space#946

Open
mjcaisse-intel wants to merge 1 commit into
intel:mainfrom
mjcaisse-intel:type-based-on-head
Open

⚡ perform flow graph dsl calculations in type space#946
mjcaisse-intel wants to merge 1 commit into
intel:mainfrom
mjcaisse-intel:type-based-on-head

Conversation

@mjcaisse-intel

Copy link
Copy Markdown
Contributor

Problem:

  • Some projects that heavily use flow can take considerable time to compile
  • get_edges_t CPO is effectively cubic growth in the front-end: O(N³)

Solution:

  • Don't recursively tuple_cat at each of the expression (>>) levels of the graph
  • We don't need the intermediate tuple values. Materialize the tuple as late as possible but doing the calculations in type space.
  • Replace CPO mechanism with simpler calls

Comment thread include/flow/dsl/walk.hpp
[[nodiscard]] constexpr auto pick_node(Leaves const &leaves) {
using leaves_t = stdx::remove_cvref_t<Leaves>;
using leaf_instance_list =
boost::mp11::mp_apply<boost::mp11::mp_list,

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

suggestion: I don't think the mp_apply is necessary here?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants