[clang] [AArch64][SME] Warn when using a streaming builtin from a non-streaming function (PR #74064)

Sander de Smalen via cfe-commits cfe-commits at lists.llvm.org
Thu Dec 14 00:18:57 PST 2023


sdesmalen-arm wrote:

> On my system, this increases the compilation time of SemaChecking.cpp from 7 seconds to 2 minutes 46 seconds (using clang as a host compiler). That seems excessive. Let's please find a way to not make compilation so slow, and let's consider reverting this until a faster approach is found.

I see the same with GCC. It seems that changing the generated table from:
```
case SVE::BI__builtin_sve_svaba_n_s16: 
  BuiltinType = ArmStreamingCompatible;
  break;
case SVE::BI__builtin_sve_svaba_n_s32: 
  BuiltinType = ArmStreamingCompatible;
  break;
case SVE::BI__builtin_sve_svaba_n_s64: 
  BuiltinType = ArmStreamingCompatible;
  break;
...
```
to
```
case SVE::BI__builtin_sve_svacge_n_f16:
case SVE::BI__builtin_sve_svacge_n_f32:
case SVE::BI__builtin_sve_svacge_n_f64:
...
  BuiltinType = ArmStreamingCompatible;
  break;
```
resolves most of the issue without changing behaviours.

Additionally, it might be good to make the most common streaming-mode for this file the default (which for arm_sve.h is streaming-compatible), so that the table only has to capture the intrinsics which are explicitly non-streaming or streaming.

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


More information about the cfe-commits mailing list