This PR contains a few assorted updates and bugfixes:
Enable some optimizations of and around tapir.runtime intrinsics, which suggest locations for starting up or shutting down a parallel runtime.
Prevent tail-recursion elimination from eliminating recursive tail calls that are followed by a sync if there is a sync preceding them in the function. Tail-recursion elimination on such functions is legal, but it can be a pessimization by causing tasks to synchronize earlier than in the original code.
Add property information to CSI hooks for Tapir detach and detach-continuation points to identify detaches that are part of a parallel loop. This change makes it easier for tools, such as Cilksan, to distinguish detach operations associated with loops from ordinary detaches that happen to be inside a loop body.
This PR contains a few assorted updates and bugfixes:
tapir.runtime
intrinsics, which suggest locations for starting up or shutting down a parallel runtime.