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

Type seemingly interchangeable between map_fd and number for some benchmarks #5

Open
a-hamza-r opened this issue Jul 1, 2023 · 1 comment

Comments

@a-hamza-r
Copy link

For some benchmarks, the register type seemingly is {map_fd, number}, possibly due to a join operation over control flow. However, later it can be seen (in PREVAIL) that the type is resolved to map_fd and number on different successor branches without explicit conversion. Since the type domain is unable to track multiple regions/provenance, it is not possible to keep track of both {map_fd, number}. This might be needed in future, but for now it is okay to be less precise.

@a-hamza-r
Copy link
Author

As an example, consider benchmark prototype-kernel/xdp_ddos01_blacklist_kern for section xdp_prog. Basic blocks 106:107 and 106:108 both have pre-invariant that r2 is {map_fd, number}. However, 106:107 has post-invariant as r2.type=map_fd, while for 106:108, r2.type=number without explicit conversions.

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