The API around attributes changed in LLVM 14. Rather than blindly upgrade the FactGenerator to continue to type-check, I realized that
Attribute handling was probably already incomplete - I'm sure LLVM 10-13 added new attributes that I hadn't yet updated the schema and FactGenerator to account for.
I wasn't really sure how attributes impacted the analysis.
I decided to try to delete everything related to attributes instead. The idea is that if we don't use them, they're just slowing everything down and adding a maintenance burden, even while we know that the current support isn't comprehensive (and thus not useful to e.g., other clients of the FactGenerator).
This appears to pass all of the tests, including the golden tests and EXTRA_TESTS. It's certainly possible that the analysis changes would impact the output on programs that do use the byval attribute and that we don't have enough coverage of these in the test suite. However, it seems comparably likely that some aspect of the LLVM language changed in a way that made this code not work the way it was intended to when it was originally written. See #104.
The API around attributes changed in LLVM 14. Rather than blindly upgrade the FactGenerator to continue to type-check, I realized that
I decided to try to delete everything related to attributes instead. The idea is that if we don't use them, they're just slowing everything down and adding a maintenance burden, even while we know that the current support isn't comprehensive (and thus not useful to e.g., other clients of the FactGenerator).
This appears to pass all of the tests, including the golden tests and
EXTRA_TESTS
. It's certainly possible that the analysis changes would impact the output on programs that do use thebyval
attribute and that we don't have enough coverage of these in the test suite. However, it seems comparably likely that some aspect of the LLVM language changed in a way that made this code not work the way it was intended to when it was originally written. See #104.See also #26.