[Loopinfo] recursive conversion to metadata #31347
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Follow-up on #31095, instead of pattern-matching against a limited set of patterns allow for a full description of a metadata tree.
Run into this because LLVM required a
MDNode
around theMDString
forllvm.loop.unroll.full
. This PR allows us to write that as:Expr(:loopinfo, ("llvm.loop.unroll.full",))
Right now one can work around that particular one by using
Expr(:loopinfo, ("llvm.loop.unroll.full", true))
, the second element of the tuple gets ignored.Also a good opportunity to add more tests.
I would like to eventually enable,
e.g. using compile-time constants (and not parse time constants) as part of the build expression, but that requires a bigger rework of the node, to allow SSAValues.
cc: @lcw