dimitriv / Ziria

A domain-specific-language and compiler for low-level bitstream processing.
92 stars 18 forks source link

Properly inline functions on the computation level #59

Open valderman opened 9 years ago

valderman commented 9 years ago

Right now, some functions on the computation level are not inlined. This is a slight problem for the parallel backend, as we can't split non-inlined functions into tasks. As a workaround, the parallel backend tracks functions containing a merge barrier (see doc/ParNotes.md in the parallel branch for details about barriers) and mark any call to those functions as barriers themselves, getting a course-grained approximation of the user's parallelism annotations.

The good news is, that whenever someone gets around to properly inlining computation level functions, we'll get better parallelism without any additional effort.