Skip to content
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

[ Issue 1:] Natural Loops in the source code #1

Open
BabarZKhan opened this issue Apr 13, 2021 · 0 comments
Open

[ Issue 1:] Natural Loops in the source code #1

BabarZKhan opened this issue Apr 13, 2021 · 0 comments

Comments

@BabarZKhan
Copy link
Owner

BabarZKhan commented Apr 13, 2021

What do we mean by natural loops?

A natural loop is de fined by two essential properties:

  1. It must have a single-entry node, called the header. This entry node dominates all nodes in the loop, or it would not be the sole entry to the loop.

  2. There must be a back edge that enters the loop header. Otherwise, it is not possible for the flow of control to return to the header directly from the \loop"; i.e., there really is no loop.

One problem Kiwi suffers from is that the information about natural loops in the source code is lost in the C#. The main developer DJ Greaves have attempted to resurrect it, but it does not work properly for certain simple nested for loops. He has proposed it to fix this with an exhaustive search on the CIL CFG accompanied by simulation to regenerate the progression of induction variables. It could then make a much better effort on standard HLS benchmarks, such as small systems of bi-quads. Alternatively, better intrinsic support for the parallel C# structures and LINQ structures will stop the information being lost in the C# compiler since, when these are used, these nearly all go through directly to invocations of library iterator methods.

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

No branches or pull requests

1 participant