nikic wrote:

> Reason for using operand bundle -- The original discussion for this change is 
> captured here: https://reviews.llvm.org/D105909 - My takeaway from the 
> discussion is that the type id metadata was dropped by optimizations leading 
> to not so clean implementation using metadata.

To avoid dropping call metadata during optimizations you need to implement 
combineMetadata handling for it -- and design the metadata to be amenable to 
preservation during optimizations. In particular, rather than a single !type, 
you'd want a list of !types, such that when two indirect calls are merged (e.g. 
by SimplifyCFG) it is possible to preserve the callee type information.

> Dropping the OB -- Yes. Dropping it will not affect correctness.

If dropping it doesn't affect correctness, I don't think the use of operand 
bundles is appropriate.

> "type" as a name -- Do you have recommendations for name? -- here's some that 
> comes to my mind - "type_hash", "fn_type_hash".

Is the content of this OB the same as CFI `!type` metadata on function 
definitions? If so, I guess the use of "type" terminology is okay, though I'd 
at least make it the  `callee_type`.

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

Reply via email to