[llvm] [IR] Avoid visited set for simple isScalableTy queries (NFC) (PR #221743)

Cullen Rhodes via llvm-commits llvm-commits at lists.llvm.org
Mon Sep 7 07:03:23 PDT 2026


https://github.com/c-rhodes created https://github.com/llvm/llvm-project/pull/221743

Small -0.06% geomean improvement on CTMark aarch64-O0-g.

https://llvm-compile-time-tracker.com/compare.php?from=97cbc1e404b980edc58bfbcabb6f1c61793b624b&to=da2a983fe049d3cd22f63fd3d1ece52aa0823a69&stat=instructions:u

Assisted-by: codex

>From da2a983fe049d3cd22f63fd3d1ece52aa0823a69 Mon Sep 17 00:00:00 2001
From: Cullen Rhodes <cullen.rhodes at arm.com>
Date: Sun, 3 May 2026 21:44:36 +0000
Subject: [PATCH] [IR] Avoid visited set for simple isScalableTy queries (NFC)

Assisted-by: codex
---
 llvm/lib/IR/Type.cpp | 12 ++++++++++++
 1 file changed, 12 insertions(+)

diff --git a/llvm/lib/IR/Type.cpp b/llvm/lib/IR/Type.cpp
index 869409e6979f3..7dd536eff2cea 100644
--- a/llvm/lib/IR/Type.cpp
+++ b/llvm/lib/IR/Type.cpp
@@ -67,6 +67,18 @@ bool Type::isScalableTy(SmallPtrSetImpl<const Type *> &Visited) const {
 }
 
 bool Type::isScalableTy() const {
+  switch (getTypeID()) {
+  case ScalableVectorTyID:
+    return true;
+  case TargetExtTyID:
+    return isScalableTargetExtTy();
+  case ArrayTyID:
+  case StructTyID:
+    break;
+  default:
+    return false;
+  }
+
   SmallPtrSet<const Type *, 4> Visited;
   return isScalableTy(Visited);
 }



More information about the llvm-commits mailing list