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

Improve elimination for locally known cases #332

Open
jasoncarr0 opened this issue Aug 15, 2019 · 0 comments
Open

Improve elimination for locally known cases #332

jasoncarr0 opened this issue Aug 15, 2019 · 0 comments
Labels

Comments

@jasoncarr0
Copy link
Contributor

jasoncarr0 commented Aug 15, 2019

From examination of the IR in many, there are frequent cases where the inputs to a simple testing block are known, and the test could be skipped. Known case will handle some cases, but only when the block has no statements, and it has no support for numbers.

So we want some of the following:

  • Handle known numbers, and associated primitives, e.g. arithmetic and overflow
  • Allow the inclusion of statements which will be sufficiently simple once reduced for this case.

I think it would suffice to do the following: perform abstract interpretation for partial constants (finite sets of constructors, numbers), at each Goto or Case, passing through each statement, simplifying them for this case, until blocked or hitting an unknown case, then replacing the jump with the longest prefix of trivial (constants, constructors, moves, arithmetic, etc) statements which were passed over.

Termination checking (#331) would benefit such a change

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

2 participants