================
@@ -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

Reply via email to