================ @@ -1034,9 +1034,16 @@ class TargetInfo : public TransferrableTargetInfo, /// set of primary and secondary targets. virtual llvm::SmallVector<Builtin::InfosShard> getTargetBuiltins() const = 0; + enum class ArmStreamingKind { + NotStreaming, + StreamingCompatible, + Streaming, + }; + /// Returns target-specific min and max values VScale_Range. virtual std::optional<std::pair<unsigned, unsigned>> - getVScaleRange(const LangOptions &LangOpts, bool IsArmStreamingFunction, + getVScaleRange(const LangOptions &LangOpts, + ArmStreamingKind IsArmStreamingFunction, ---------------- efriedma-quic wrote:
LangOpts is global. IsArmStreamingFunction is context-dependent: it depends on whether we're currently analyzing a function marked __arm_streaming/etc. We could reorganize the code, maybe... like, move some bits of the implementation into AST. But I'm not sure that really helps. https://github.com/llvm/llvm-project/pull/144611 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits