-
Notifications
You must be signed in to change notification settings - Fork 14
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Move beta-related functionality from Clay to OSL #25
Comments
Interesting proposal. I have a mixed feeling about it though. My main problem is a scattering is not forced to be encoded using beta. Checking that a SCoP has beta everywhere is not a simple problem (it looks simple, but believe me, it is not). So it would be useful only for specific user. Do you see enough use for beta outside Clay for such a move ? Also note that beta are nice in Clay, but in general we are talking now about "schedule trees". But I'm not going to develop that anytime soon :-D. |
We need a way to identify statements without use their position in the linked list (it is not robust). If we can not use betas, I propose a statement id in the statement structure (or in the statement extensions). If it is complicated to check and re-generate the beta in the scattering, maybe we can add these functions in OpenScop. |
@Ced Even though checking if a SCoP has beta everywhere is a hard problem, I'd like to have this check at some point for not calling Clay on "wrong" SCoPs. I have introduced a sanity_check function into Clay already. @Ced I agree with @Lnc that beta will be used for mostly identification purposes, in Candl for example to match statements from two SCoPs with each other. The benefit of using a beta rather than an integer ID is that it allows to select a subset of statements by using beta-prefixes or wildcarding of some kind. I believe it is the case with schedule trees also. Ironically, Clay has beta tree implemented, but does not seem to be using it. |
On Mon, Jun 30, 2014 at 9:55 AM, Alexander Zinenko <[email protected]
Because we master the complete chain, maybe it would be more convenient and Here is a paper that explains what we could imagine about the semantics Note that I like to have more semantics about the scattering as much as I
|
I tend to agree that extension for the semantic information is a good solution. My concern is the possible duplication of the data between relation and extension or between multiple extensions (as we already have with body and extbody). I had a need for statement identification to track changes in the code representation. With scattering relation unions it should not be a problem anymore. Candl seems to be the only user of statement identifiers then. |
A significant amount of theoretical work on polyhedral tools is written in terms of beta-prefixes and beta-vectors, while the only tool that seems to have this concept implemented is Clay. It seems reasonable for me to introduce an entity
osl_beta
and move multipleclay_beta_*
functions to OSL so that other tools can use it. For example, finding a statement by its beta is rather useful functionality. For example, Candl expects statements sorted by beta-vectors, but can not do it itself without duplicating Clay functionality. Beta is a scop-related notion, rather than Clay-specific. Introducing more functionality to osl may make it heavier, but I don't think it will make reading/writing any slower since betas are extracted fromosl_*
structures upon request.The text was updated successfully, but these errors were encountered: