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

Upgrade rules for static and dynamic scopes #837

Closed
wants to merge 2 commits into from
Closed

Conversation

mr-tz
Copy link
Collaborator

@mr-tz mr-tz commented Oct 13, 2023

Similar to #816 based initially on a script.

Plan to fix most rules manually in here moving forward after inline discussions below.

scope: basic block
scopes:
static: basic block
dynamic: call # TODO check if scope thread instead
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
dynamic: call # TODO check if scope thread instead
dynamic: thread

scope: basic block
scopes:
static: basic block
dynamic: call # TODO check if scope thread instead
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
dynamic: call # TODO check if scope thread instead
dynamic: call

scope: function
scopes:
static: function
dynamic: unspecified # TODO upgrade manually, contains unsupported feature property for dynamic scope
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
dynamic: unspecified # TODO upgrade manually, contains unsupported feature property for dynamic scope
dynamic: call

scope: function
scopes:
static: function
dynamic: unspecified # TODO upgrade manually, contains unsupported feature mnemonic for dynamic scope
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
dynamic: unspecified # TODO upgrade manually, contains unsupported feature mnemonic for dynamic scope
dynamic: unsupported

scope: basic block
scopes:
static: basic block
dynamic: call # TODO check if scope thread instead
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
dynamic: call # TODO check if scope thread instead
dynamic: thread

scope: basic block
scopes:
static: basic block
dynamic: unspecified # TODO upgrade manually, contains match
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
dynamic: unspecified # TODO upgrade manually, contains match
dynamic: unsupported

scope: function
scopes:
static: function
dynamic: unspecified # TODO upgrade manually, contains Subscope
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
dynamic: unspecified # TODO upgrade manually, contains Subscope
dynamic: unsupported

scope: function
scopes:
static: function
dynamic: unspecified # TODO upgrade manually, contains Subscope
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this one is a bit more tricky

scope: function
scopes:
static: function
dynamic: unspecified # TODO upgrade manually, contains match
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
dynamic: unspecified # TODO upgrade manually, contains match
dynamic: thread

scope: basic block
scopes:
static: basic block
dynamic: call # TODO check if scope thread instead
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
dynamic: call # TODO check if scope thread instead
dynamic: call

scope: function
scopes:
static: function
dynamic: unspecified # TODO upgrade manually, contains Subscope
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
dynamic: unspecified # TODO upgrade manually, contains Subscope
dynamic: unsupported

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

should we add comments on why this is for each rule?

scope: function
scopes:
static: function
dynamic: unspecified # TODO upgrade manually, contains Subscope
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
dynamic: unspecified # TODO upgrade manually, contains Subscope
dynamic: unsupported # requires low-level mnemonic features

scope: basic block
scopes:
static: basic block
dynamic: unspecified # TODO upgrade manually, contains unsupported feature mnemonic for dynamic scope
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
dynamic: unspecified # TODO upgrade manually, contains unsupported feature mnemonic for dynamic scope
dynamic: unsupported # requires low-level mnemonic features

scope: basic block
scopes:
static: basic block
dynamic: call # TODO check if scope thread instead
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
dynamic: call # TODO check if scope thread instead
dynamic: call

scope: function
scopes:
static: function
dynamic: unspecified # TODO upgrade manually, contains match
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
dynamic: unspecified # TODO upgrade manually, contains match
dynamic: unsupported # requires `contain loop` match, but could be rewritten for dynamic without this

scope: basic block
scopes:
static: basic block
dynamic: call # TODO check if scope thread instead
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
dynamic: call # TODO check if scope thread instead
dynamic: call

scope: function
scopes:
static: function
dynamic: unspecified # TODO upgrade manually, contains unsupported feature mnemonic for dynamic scope
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
dynamic: unspecified # TODO upgrade manually, contains unsupported feature mnemonic for dynamic scope
dynamic: unsupported # requires low-level mnemonic features

scope: function
scopes:
static: function
dynamic: unspecified # TODO upgrade manually, contains Subscope
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
dynamic: unspecified # TODO upgrade manually, contains Subscope
dynamic: unsupported # requires low-level mnemonic features

scope: file
scopes:
static: file
dynamic: unspecified # TODO upgrade manually, contains match
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
dynamic: unspecified # TODO upgrade manually, contains match
dynamic: unsupported # match requires low-level mnemonic features

scope: basic block
scopes:
static: basic block
dynamic: call # TODO check if scope thread instead
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
dynamic: call # TODO check if scope thread instead
dynamic: thread

scope: function
scopes:
static: function
dynamic: unspecified # TODO upgrade manually, contains match
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
dynamic: unspecified # TODO upgrade manually, contains match
dynamic: thread

scope: function
scopes:
static: function
dynamic: unspecified # TODO upgrade manually, contains Subscope
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
dynamic: unspecified # TODO upgrade manually, contains Subscope
dynamic: unsupported # requires low-level features

scope: function
scopes:
static: function
dynamic: unspecified # TODO upgrade manually, contains match
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
dynamic: unspecified # TODO upgrade manually, contains match
dynamic: thread

scope: file
scopes:
static: file
dynamic: unspecified # TODO upgrade manually, contains unsupported feature class for dynamic scope
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
dynamic: unspecified # TODO upgrade manually, contains unsupported feature class for dynamic scope
dynamic: unsupported # requires class feature

scope: function
scopes:
static: function
dynamic: unspecified # TODO upgrade manually, contains unsupported feature mnemonic for dynamic scope
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
dynamic: unspecified # TODO upgrade manually, contains unsupported feature mnemonic for dynamic scope
dynamic: unsupported # requires low-level mnemonic features

scope: function
scopes:
static: function
dynamic: unspecified # TODO upgrade manually, contains Subscope
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
dynamic: unspecified # TODO upgrade manually, contains Subscope
dynamic: unsupported # requires low-level mnemonic features

scope: function
scopes:
static: function
dynamic: unspecified # TODO upgrade manually, contains match
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
dynamic: unspecified # TODO upgrade manually, contains match
dynamic: thread

scope: basic block
scopes:
static: basic block
dynamic: call # TODO check if scope thread instead
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
dynamic: call # TODO check if scope thread instead
dynamic: thread

scope: function
scopes:
static: function
dynamic: thread
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
dynamic: thread
dynamic: call

scope: file
scopes:
static: file
dynamic: unspecified # TODO upgrade manually, contains match
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
dynamic: unspecified # TODO upgrade manually, contains match
dynamic: file

scope: function
scopes:
static: function
dynamic: unspecified # TODO upgrade manually, contains Subscope
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
dynamic: unspecified # TODO upgrade manually, contains Subscope
dynamic: thread

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

  • TODO: double check operand numbers work

scope: function
scopes:
static: function
dynamic: unspecified # TODO upgrade manually, contains Subscope
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
dynamic: unspecified # TODO upgrade manually, contains Subscope
dynamic: thread

scope: file
scopes:
static: file
dynamic: unspecified # TODO upgrade manually, contains match
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
dynamic: unspecified # TODO upgrade manually, contains match
dynamic: file

scope: function
scopes:
static: function
dynamic: unspecified # TODO upgrade manually, contains unsupported feature mnemonic for dynamic scope
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
dynamic: unspecified # TODO upgrade manually, contains unsupported feature mnemonic for dynamic scope
dynamic: unsupported # contains unsupported feature mnemonic

scope: function
scopes:
static: function
dynamic: thread
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
dynamic: thread
dynamic: call

scope: basic block
scopes:
static: basic block
dynamic: call # TODO check if scope thread instead
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
dynamic: call # TODO check if scope thread instead
dynamic: call

scope: function
scopes:
static: function
dynamic: unspecified # TODO upgrade manually, contains match
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
dynamic: unspecified # TODO upgrade manually, contains match
dynamic: thread

scope: function
scopes:
static: function
dynamic: unspecified # TODO upgrade manually, contains match
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
dynamic: unspecified # TODO upgrade manually, contains match
dynamic: thread

scope: file
scopes:
static: file
dynamic: unspecified # TODO upgrade manually, contains match
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
dynamic: unspecified # TODO upgrade manually, contains match
dynamic: file

scope: basic block
scopes:
static: basic block
dynamic: call # TODO check if scope thread instead
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
dynamic: call # TODO check if scope thread instead
dynamic: call

scope: function
scopes:
static: function
dynamic: unspecified # TODO upgrade manually, contains Subscope
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
dynamic: unspecified # TODO upgrade manually, contains Subscope
dynamic: unsupported # requires low-level mnemonic features

scope: function
scopes:
static: function
dynamic: unspecified # TODO upgrade manually, contains Subscope
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
dynamic: unspecified # TODO upgrade manually, contains Subscope
dynamic: unsupported # requires low-level mnemonic features

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

although just the RtlComputeCrc32 api would work here

scope: function
scopes:
static: function
dynamic: unspecified # TODO upgrade manually, contains match
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
dynamic: unspecified # TODO upgrade manually, contains match
dynamic: unsupported # matches rely on low-level features

scope: function
scopes:
static: function
dynamic: unspecified # TODO upgrade manually, contains unsupported feature bytes for dynamic scope
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
dynamic: unspecified # TODO upgrade manually, contains unsupported feature bytes for dynamic scope
dynamic: unsupported # contains unsupported feature bytes

scope: function
scopes:
static: function
dynamic: unspecified # TODO upgrade manually, contains match
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
dynamic: unspecified # TODO upgrade manually, contains match
dynamic: unsupported # requires low-level mnemonic features

scope: function
scopes:
static: function
dynamic: unspecified # TODO upgrade manually, contains Subscope
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
dynamic: unspecified # TODO upgrade manually, contains Subscope
dynamic: unsupported # requires low-level mnemonic features

scope: function
scopes:
static: function
dynamic: unspecified # TODO upgrade manually, contains Subscope
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
dynamic: unspecified # TODO upgrade manually, contains Subscope
dynamic: unsupported # requires low-level mnemonic features

scope: function
scopes:
static: function
dynamic: unspecified # TODO upgrade manually, contains match
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
dynamic: unspecified # TODO upgrade manually, contains match
dynamic: unsupported # requires low-level mnemonic features

scope: function
scopes:
static: function
dynamic: unspecified # TODO upgrade manually, contains unsupported feature bytes for dynamic scope
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
dynamic: unspecified # TODO upgrade manually, contains unsupported feature bytes for dynamic scope
dynamic: unsupported # contains unsupported feature bytes

scope: function
scopes:
static: function
dynamic: unspecified # TODO upgrade manually, contains unsupported feature mnemonic for dynamic scope
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
dynamic: unspecified # TODO upgrade manually, contains unsupported feature mnemonic for dynamic scope
dynamic: unsupported # requires low-level mnemonic features

scope: basic block
scopes:
static: basic block
dynamic: call # TODO check if scope thread instead
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
dynamic: call # TODO check if scope thread instead
dynamic: call

scope: basic block
scopes:
static: basic block
dynamic: call # TODO check if scope thread instead
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
dynamic: call # TODO check if scope thread instead
dynamic: call

scope: function
scopes:
static: function
dynamic: thread
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
dynamic: thread
dynamic: call

scope: function
scopes:
static: function
dynamic: thread
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
dynamic: thread
dynamic: call

scope: basic block
scopes:
static: basic block
dynamic: call # TODO check if scope thread instead
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
dynamic: call # TODO check if scope thread instead
dynamic: call

scope: function
scopes:
static: function
dynamic: thread
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
dynamic: thread
dynamic: call

scope: function
scopes:
static: function
dynamic: thread
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
dynamic: thread
dynamic: call

scope: function
scopes:
static: function
dynamic: thread
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
dynamic: thread
dynamic: call

scope: function
scopes:
static: function
dynamic: thread
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
dynamic: thread
dynamic: call

scope: function
scopes:
static: function
dynamic: thread
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
dynamic: thread
dynamic: call

scope: function
scopes:
static: function
dynamic: thread
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
dynamic: thread
dynamic: call

scope: function
scopes:
static: function
dynamic: thread
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
dynamic: thread
dynamic: call

scope: function
scopes:
static: function
dynamic: thread
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
dynamic: thread
dynamic: unsupported # requires .NET features

scope: function
scopes:
static: function
dynamic: thread
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
dynamic: thread
dynamic: call

scope: basic block
scopes:
static: basic block
dynamic: call # TODO check if scope thread instead
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
dynamic: call # TODO check if scope thread instead
dynamic: unsupported # requires .NET features

scope: function
scopes:
static: function
dynamic: thread
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
dynamic: thread
dynamic: unsupported # requires .NET features

scope: function
scopes:
static: function
dynamic: thread
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
dynamic: thread
dynamic: unsupported # requires .NET features

@mr-tz
Copy link
Collaborator Author

mr-tz commented Oct 25, 2023

seems like all the comments/suggestions broke the web UI 😑
image

working on a new script to update rules based on what I learned doing it manually

@mr-tz
Copy link
Collaborator Author

mr-tz commented Oct 26, 2023

superseded by #839

@mr-tz mr-tz closed this Oct 26, 2023
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