-
Notifications
You must be signed in to change notification settings - Fork 13.2k
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
//@ needs-llvm-components
accepts invalid LLVM components
#138145
Comments
Doesn't the list of valid llvm components change w/ the underlying llvm? Like you can build a local llvm that do not have what CI llvm has |
I'm imagining this would be a list of components somewhere in compiletest rather than querying LLVM, the set is pretty small and static. The built LLVM can have components turned on or off but it will always be a subset of that list; if the component isn't available on the current LLVM version then we ignore the test, but if the component isn't available at all then it would be better to error. That might not be accurate if "component" ever refers to something other than an architecture family, but I don't see any indication of that or use in our tests. It seems like it corresponds to the options from |
Hi. I found a similar attempt to check invalid component names in lint, but it was later reverted in #125949. |
No you're right, this will indeed fail in CI if the component does not exist. But as in, CI will require that all tests with the components that CI LLVM is built with is run. I suppose one may be able to query llvm-config --components to validate that the component exists, or somehow pull out the targets to build list elsewhere to share. |
Oh awesome, I didn't realize this did get checked in CI. It would still be nice to have something for development; could we bless the output from llvm-config to a file when |
Possibly? It'd somehow need to be not tracked to prevent you from accidentally checking that in. |
For example, a codegen test:
riscv64
isn't a real LLVM component (onlyriscv
). However, the test never errors; instead it always gets ignored. It seems pretty likely that there are at least a few in-tree tests that never get run because of a typo here.It should be reasonably easy to keep a list of valid LLVM components and validate against that in compiletest.
The text was updated successfully, but these errors were encountered: