================
@@ -53,3 +53,6 @@ LLVM_FIXED_MD_KIND(MD_DIAssignID, "DIAssignID", 38)
 LLVM_FIXED_MD_KIND(MD_coro_outside_frame, "coro.outside.frame", 39)
 LLVM_FIXED_MD_KIND(MD_mmra, "mmra", 40)
 LLVM_FIXED_MD_KIND(MD_noalias_addrspace, "noalias.addrspace", 41)
+// TODO: this will likelly be placed somewhere else,
+// so we don't mix dxil/hlsl/spirv and clang metadata
+LLVM_FIXED_MD_KIND(MD_dxil_controlflow_hints, "dx.controlflow.hints", 42)
----------------
nikic wrote:

We already have `!unpredictable` and `!prof` metadata serving a fairly similar 
purpose from an optimization perspective. I'd be concerned about adding another 
generic metadata that has overlapping purpose -- essentially "flatten" should 
be treated like `!unpredictable` and "branch" like a strongly predicted `!prof` 
where we don't know in which direction the prediction is. There was a proposal 
for `!consistent` metadata 
(https://discourse.llvm.org/t/rfc-consistent-branches-support-in-llvm/74889) to 
encode that. At the time there was no consensus to introduce it.

So if you wanted to keep this generic, I'd consider the direction of 
`!unpredictable` and `!consistent`. But if all you're doing is passing through 
to the backend, then just doing target-specific metadata is fine (though you 
really shouldn't be touching any files in IR when doing that).

https://github.com/llvm/llvm-project/pull/116331
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to