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

Simplify known bits #335

Open
wants to merge 18 commits into
base: main
Choose a base branch
from
Open

Simplify known bits #335

wants to merge 18 commits into from

Conversation

morriisw
Copy link

  • Added a 'SimplifyKnownBits.scala' file under 'src/main/scala/ir/transforms' that defines the known bits/TNum abstract domain
  • Added a Z3 Python test script called 'tnum_test_z3.py' under the 'scripts' folder to verify the TNum simplification logic that appears in 'SimplifyKnownBits.scala'
  • Made changes to 'simplification-solvers.md' under 'docs/development' to include an explanation of the known bits analysis

@ailrst ailrst force-pushed the simplify-known-bits branch 3 times, most recently from 5754331 to 2b0de8f Compare February 26, 2025 01:51
@ailrst ailrst force-pushed the simplify-known-bits branch 2 times, most recently from f57168d to e8eb03e Compare March 12, 2025 04:07
MorrisWang9 and others added 17 commits March 13, 2025 16:43
…or efficiency and logic simplification. Logic for bitwise operations between TNums remains the same but join method under TNumDomain now only merges the TNum of variables that appear in more than one program state.
…into a separate method called evaluateExprToTNum to allow for recursive matching and evaluation. Create new method called evaluateBinOp that evaluates binary operations and can be called within evaluateExprToTNum method.
…tors. Add evaluateUnOp method under TNumDomain class to handle evaluation of unary operations.
… to merge TNum values of variables that appear in both maps.
…iate between bitvector and boolean types. Change bitwise comparison method TCOMP to return a bitvector equivalent TNumValue instead of a boolean.
@ailrst ailrst force-pushed the simplify-known-bits branch from 0ef10ac to f5e635f Compare March 13, 2025 06:43
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

Successfully merging this pull request may close these issues.

2 participants