[llvm] [clang] Remove experimental from Vector Crypto extensions (PR #69000)

Brandon Wu via cfe-commits cfe-commits at lists.llvm.org
Tue Nov 7 20:34:44 PST 2023


4vtomat wrote:

> > Since it's possible that **ISA spec** and **intrinsics spec** are not synchronized, so the updates add an dummy extension called **zexperimental**, once `-menable-experimental-extensions` is specified, the feature `zexperimental` is automatically added.
> > If `let RequiredFeatures = ["Zexperimental"] ` is added in `.td` file, it will check if `zexperimental` exists, if not, the corresponding intrinsics would not be added, hence causing an **intrinsics undeclared** error.
> 
> Thanks for looking into this. It's perhaps surprising we've gone so long without having the infrastructure to make an extension non-experimental without making its not-yet-finalized intrinsics non-experimental. Introducing a new required feature seems like a reasonable way of doing this, but introducing a dummy extension seems unnecessary (unless I'm missing something?).
> 
> I could see a solution involving a Clang flag (e.g. `-menable-experimental-intrinsics`), or perhaps a solution where the user must use a certain `#define` (I know riscv_vector.h is implemented using a pragma, but presumably that could still query defines). There may be other options too.
> 
> Another piece of info that would be helpful to better understand is what the process is for finalising intrinsic additions (@eopXD might know?). If it's just the case that we have to wait another month before moving an extension from experimental to experimental then maybe extra infro to separate experimental intrinsics from instructions is less interesting. If it's more indeterminate than that, we probably need it.
> 
> I'll put this on the agenda for Thursday's RISC-V LLVM sync-up call in the hope we can resolve it there.

Yeah, we don't need a new extension actually, thanks for pointing out!

https://github.com/llvm/llvm-project/pull/69000


More information about the cfe-commits mailing list