jrtc27 wrote:

> > I have always been unconvinced that these are a good idea to have / add 
> > significant value over using inline assembly. IIRC Arm has them but nobody 
> > uses them?
> 
> Is this a comment about the general concept of builtins to produce specific 
> instructions or about these specific ones? For these ones, the patch isn't 
> something I materialized out of thin air just because I think it's nice to 
> have - it was in response to the very use case I described (from a library 
> writer). They had something like:
> 
> ```
> void __attribute__((always_inline)) set_csr(unsigned CSRNum, unsigned Val) {
> __asm__ volatile ...
> ```
> 
> Which works great if you're optimizing, but doesn't with -O0. Of course they 
> could write it as a macro, but that has all the pitfalls of function-style 
> macros.
> 
> Of course, if the consensus is to not provide these because of some reason, 
> I'm fine with that - I would just like to understand the reason for the 
> opposition to this.

If it’s not a constant integer for inline assembly then how would it magically 
be a constant integer for an intrinsic? The IR’s going to be the same with an 
alloca/store/load, no?

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

Reply via email to