serge-sans-paille added a comment.

In D114082#3149631 <https://reviews.llvm.org/D114082#3149631>, @rnk wrote:

>> it is possible to list all internal keys in one place
>
> I think one of the original goals of adding support for string attributes 
> (maybe @void will give some input) was specifically to avoid having one giant 
> list with all the attributes supported by all the backends. String attributes 
> were initially called "target dependent attributes", or something like that. 
> I think we had a `td_attrs` accessor at some point. There was this idea that 
> LLVM should not know about x86-specific attributes. There should be some kind 
> of indirection and delegation to the target backend. LLVM has not always 
> succeeded in following this vision, see for example the target-specific 
> intrinsic enums, which were one giant enum until D71320 
> <https://reviews.llvm.org/D71320>.
>
> I think, even if LLVM IR has to know all of the target-specific internally 
> used attributes, we can try to honor that target independent vision by having 
> separate headers for different target specific attributes. Does that sound 
> reasonable? It's at least consistent with how we handle intrinsics 
> (IntrinsicsX86.h, IntrinsicsAArch64.h etc).

The sub-review I proposed in https://reviews.llvm.org/D114394 does not 
introduce any list, so that should be a decent first step. As a second step, 
many passes already register their attribute in some local header and I can 
just generalize that: no big list but some local explicit definition.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D114082/new/

https://reviews.llvm.org/D114082

_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to