https://github.com/mtrofin created 
https://github.com/llvm/llvm-project/pull/151214

None

>From 53562e6e670b03a6882bbe7ae8abce19ac44d801 Mon Sep 17 00:00:00 2001
From: Mircea Trofin <mtro...@google.com>
Date: Tue, 29 Jul 2025 09:41:50 -0700
Subject: [PATCH] Ignore FileCheck when profcheck is enabled

---
 llvm/test/lit.cfg.py | 598 ++++++++++++++++++++++---------------------
 1 file changed, 301 insertions(+), 297 deletions(-)

diff --git a/llvm/test/lit.cfg.py b/llvm/test/lit.cfg.py
index 143cc3817bd08..bcfb53c4f1328 100644
--- a/llvm/test/lit.cfg.py
+++ b/llvm/test/lit.cfg.py
@@ -18,7 +18,11 @@
 config.name = "LLVM"
 
 # testFormat: The test format to use to interpret tests.
-config.test_format = lit.formats.ShTest(not llvm_config.use_lit_shell)
+extra_substitutions = extra_substitutions = ([
+    (r"\| not FileCheck .*", "| tee /dev/null"),
+    (r"\| FileCheck .*", "| tee /dev/null")
+  ] if config.enable_profcheck else [])
+config.test_format = lit.formats.ShTest(not llvm_config.use_lit_shell, 
extra_substitutions)
 
 # suffixes: A list of file extensions to treat as test files. This is overriden
 # by individual lit.local.cfg files in the test subdirectories.
@@ -61,27 +65,27 @@
 
 
 def get_asan_rtlib():
-    if (
-        not "Address" in config.llvm_use_sanitizer
-        or not "Darwin" in config.target_os
-        or not "x86" in config.host_triple
-    ):
-        return ""
-    try:
-        import glob
-    except:
-        print("glob module not found, skipping get_asan_rtlib() lookup")
-        return ""
-    # The libclang_rt.asan_osx_dynamic.dylib path is obtained using the 
relative
-    # path from the host cc.
-    host_lib_dir = os.path.join(os.path.dirname(config.host_cc), "../lib")
-    asan_dylib_dir_pattern = (
-        host_lib_dir + "/clang/*/lib/darwin/libclang_rt.asan_osx_dynamic.dylib"
-    )
-    found_dylibs = glob.glob(asan_dylib_dir_pattern)
-    if len(found_dylibs) != 1:
-        return ""
-    return found_dylibs[0]
+  if (
+      not "Address" in config.llvm_use_sanitizer
+      or not "Darwin" in config.target_os
+      or not "x86" in config.host_triple
+  ):
+    return ""
+  try:
+    import glob
+  except:
+    print("glob module not found, skipping get_asan_rtlib() lookup")
+    return ""
+  # The libclang_rt.asan_osx_dynamic.dylib path is obtained using the relative
+  # path from the host cc.
+  host_lib_dir = os.path.join(os.path.dirname(config.host_cc), "../lib")
+  asan_dylib_dir_pattern = (
+      host_lib_dir + "/clang/*/lib/darwin/libclang_rt.asan_osx_dynamic.dylib"
+  )
+  found_dylibs = glob.glob(asan_dylib_dir_pattern)
+  if len(found_dylibs) != 1:
+    return ""
+  return found_dylibs[0]
 
 
 llvm_config.use_default_substitutions()
@@ -108,13 +112,13 @@ def get_asan_rtlib():
 # Windows.  FIXME: the process target triple should be used here, but this is
 # difficult to obtain on Windows.
 if re.search(r"cygwin|windows-gnu|windows-msvc", config.host_triple):
-    lli_args = ["-mtriple=" + config.host_triple + "-elf"]
+  lli_args = ["-mtriple=" + config.host_triple + "-elf"]
 
 llc_args = []
 
 # Similarly, have a macro to use llc with DWARF even when the host is Windows
 if re.search(r"windows-msvc", config.target_triple):
-    llc_args = [" -mtriple=" + config.target_triple.replace("-msvc", "-gnu")]
+  llc_args = [" -mtriple=" + config.target_triple.replace("-msvc", "-gnu")]
 
 # Provide the path to asan runtime lib if available. On darwin, this lib needs
 # to be loaded via DYLD_INSERT_LIBRARIES before libLTO.dylib in case the files
@@ -122,9 +126,9 @@ def get_asan_rtlib():
 ld64_cmd = config.ld64_executable
 asan_rtlib = get_asan_rtlib()
 if asan_rtlib:
-    ld64_cmd = "DYLD_INSERT_LIBRARIES={} {}".format(asan_rtlib, ld64_cmd)
+  ld64_cmd = "DYLD_INSERT_LIBRARIES={} {}".format(asan_rtlib, ld64_cmd)
 if config.osx_sysroot:
-    ld64_cmd = "{} -syslibroot {}".format(ld64_cmd, config.osx_sysroot)
+  ld64_cmd = "{} -syslibroot {}".format(ld64_cmd, config.osx_sysroot)
 
 ocamlc_command = "%s ocamlc -cclib -L%s %s" % (
     config.ocamlfind_executable,
@@ -133,12 +137,12 @@ def get_asan_rtlib():
 )
 ocamlopt_command = "true"
 if config.have_ocamlopt:
-    ocamlopt_command = "%s ocamlopt -cclib -L%s -cclib -Wl,-rpath,%s %s" % (
-        config.ocamlfind_executable,
-        config.llvm_lib_dir,
-        config.llvm_lib_dir,
-        config.ocaml_flags,
-    )
+  ocamlopt_command = "%s ocamlopt -cclib -L%s -cclib -Wl,-rpath,%s %s" % (
+      config.ocamlfind_executable,
+      config.llvm_lib_dir,
+      config.llvm_lib_dir,
+      config.ocaml_flags,
+  )
 
 opt_viewer_cmd = "%s %s/tools/opt-viewer/opt-viewer.py" % (
     sys.executable,
@@ -280,84 +284,84 @@ def get_asan_rtlib():
 
 # Find (major, minor) version of ptxas
 def ptxas_version(ptxas):
-    ptxas_cmd = subprocess.Popen([ptxas, "--version"], stdout=subprocess.PIPE)
-    ptxas_out = ptxas_cmd.stdout.read().decode("ascii")
-    ptxas_cmd.wait()
-    match = re.search(r"release (\d+)\.(\d+)", ptxas_out)
-    if match:
-        return (int(match.group(1)), int(match.group(2)))
-    print("couldn't determine ptxas version")
-    return None
+  ptxas_cmd = subprocess.Popen([ptxas, "--version"], stdout=subprocess.PIPE)
+  ptxas_out = ptxas_cmd.stdout.read().decode("ascii")
+  ptxas_cmd.wait()
+  match = re.search(r"release (\d+)\.(\d+)", ptxas_out)
+  if match:
+    return (int(match.group(1)), int(match.group(2)))
+  print("couldn't determine ptxas version")
+  return None
 
 
 # Enable %ptxas and %ptxas-verify tools.
 # %ptxas-verify defaults to sm_60 architecture. It can be overriden
 # by specifying required one, for instance: %ptxas-verify -arch=sm_80.
 def enable_ptxas(ptxas_executable):
-    version = ptxas_version(ptxas_executable)
-    if version:
-        # ptxas is supposed to be backward compatible with previous
-        # versions, so add a feature for every known version prior to
-        # the current one.
-        ptxas_known_versions = [
-            (9, 0),
-            (9, 1),
-            (9, 2),
-            (10, 0),
-            (10, 1),
-            (10, 2),
-            (11, 0),
-            (11, 1),
-            (11, 2),
-            (11, 3),
-            (11, 4),
-            (11, 5),
-            (11, 6),
-            (11, 7),
-            (11, 8),
-            (12, 0),
-            (12, 1),
-            (12, 2),
-            (12, 3),
-            (12, 4),
-            (12, 5),
-            (12, 6),
-            (12, 8),
-        ]
-
-        def version_int(ver):
-            return ver[0] * 100 + ver[1]
-
-        # ignore ptxas if its version is below the minimum supported
-        # version
-        min_version = ptxas_known_versions[0]
-        if version_int(version) < version_int(min_version):
-            print(
-                "Warning: ptxas version {}.{} is not supported".format(
-                    version[0], version[1]
-                )
-            )
-            return
-
-        for known_version in ptxas_known_versions:
-            if version_int(known_version) <= version_int(version):
-                major, minor = known_version
-                config.available_features.add("ptxas-{}.{}".format(major, 
minor))
-
-    config.available_features.add("ptxas")
-    tools.extend(
-        [
-            ToolSubst("%ptxas", ptxas_executable),
-            ToolSubst("%ptxas-verify", "{} -arch=sm_60 -c 
-".format(ptxas_executable)),
-        ]
-    )
+  version = ptxas_version(ptxas_executable)
+  if version:
+    # ptxas is supposed to be backward compatible with previous
+    # versions, so add a feature for every known version prior to
+    # the current one.
+    ptxas_known_versions = [
+        (9, 0),
+        (9, 1),
+        (9, 2),
+        (10, 0),
+        (10, 1),
+        (10, 2),
+        (11, 0),
+        (11, 1),
+        (11, 2),
+        (11, 3),
+        (11, 4),
+        (11, 5),
+        (11, 6),
+        (11, 7),
+        (11, 8),
+        (12, 0),
+        (12, 1),
+        (12, 2),
+        (12, 3),
+        (12, 4),
+        (12, 5),
+        (12, 6),
+        (12, 8),
+    ]
+
+    def version_int(ver):
+      return ver[0] * 100 + ver[1]
+
+    # ignore ptxas if its version is below the minimum supported
+    # version
+    min_version = ptxas_known_versions[0]
+    if version_int(version) < version_int(min_version):
+      print(
+          "Warning: ptxas version {}.{} is not supported".format(
+              version[0], version[1]
+          )
+      )
+      return
+
+    for known_version in ptxas_known_versions:
+      if version_int(known_version) <= version_int(version):
+        major, minor = known_version
+        config.available_features.add("ptxas-{}.{}".format(major, minor))
+
+  config.available_features.add("ptxas")
+  tools.extend(
+      [
+          ToolSubst("%ptxas", ptxas_executable),
+          ToolSubst("%ptxas-verify", "{} -arch=sm_60 -c 
-".format(ptxas_executable)),
+      ]
+  )
 
 
 ptxas_executable = (
     os.environ.get("LLVM_PTXAS_EXECUTABLE", None) or config.ptxas_executable
 )
 if ptxas_executable:
-    enable_ptxas(ptxas_executable)
+  enable_ptxas(ptxas_executable)
 
 llvm_config.add_tool_substitutions(tools, config.llvm_tools_dir)
 
@@ -366,269 +370,269 @@ def version_int(ver):
 config.targets = frozenset(config.targets_to_build.split())
 
 for arch in config.targets_to_build.split():
-    config.available_features.add(arch.lower() + "-registered-target")
+  config.available_features.add(arch.lower() + "-registered-target")
 
 # Features
 known_arches = ["x86_64", "mips64", "ppc64", "aarch64"]
 if config.host_ldflags.find("-m32") < 0 and any(
     config.llvm_host_triple.startswith(x) for x in known_arches
 ):
-    config.available_features.add("llvm-64-bits")
+  config.available_features.add("llvm-64-bits")
 
 config.available_features.add("host-byteorder-" + sys.byteorder + "-endian")
 if config.target_triple:
-    if re.match(
-        
r"(aarch64_be|arc|armeb|bpfeb|lanai|m68k|mips|mips64|powerpc|powerpc64|sparc|sparcv9|s390x|s390|tce|thumbeb)-.*",
-        config.target_triple,
-    ):
-        config.available_features.add("target-byteorder-big-endian")
-    else:
-        config.available_features.add("target-byteorder-little-endian")
+  if re.match(
+      
r"(aarch64_be|arc|armeb|bpfeb|lanai|m68k|mips|mips64|powerpc|powerpc64|sparc|sparcv9|s390x|s390|tce|thumbeb)-.*",
+      config.target_triple,
+  ):
+    config.available_features.add("target-byteorder-big-endian")
+  else:
+    config.available_features.add("target-byteorder-little-endian")
 
 if sys.platform in ["win32"]:
-    # ExecutionEngine, no weak symbols in COFF.
-    config.available_features.add("uses_COFF")
+  # ExecutionEngine, no weak symbols in COFF.
+  config.available_features.add("uses_COFF")
 else:
-    # Others/can-execute.txt
-    config.available_features.add("can-execute")
+  # Others/can-execute.txt
+  config.available_features.add("can-execute")
 
 # Detect Windows Subsystem for Linux (WSL)
 uname_r = platform.uname().release
 if uname_r.endswith("-Microsoft"):
-    config.available_features.add("wsl1")
+  config.available_features.add("wsl1")
 elif uname_r.endswith("microsoft-standard-WSL2"):
-    config.available_features.add("wsl2")
+  config.available_features.add("wsl2")
 
 # Loadable module
 if config.has_plugins:
-    config.available_features.add("plugins")
+  config.available_features.add("plugins")
 
 if config.build_examples:
-    config.available_features.add("examples")
+  config.available_features.add("examples")
 
 if config.linked_bye_extension:
-    config.substitutions.append(("%llvmcheckext", "CHECK-EXT"))
-    config.substitutions.append(("%loadbye", ""))
-    config.substitutions.append(("%loadnewpmbye", ""))
+  config.substitutions.append(("%llvmcheckext", "CHECK-EXT"))
+  config.substitutions.append(("%loadbye", ""))
+  config.substitutions.append(("%loadnewpmbye", ""))
 else:
-    config.substitutions.append(("%llvmcheckext", "CHECK-NOEXT"))
-    config.substitutions.append(
-        (
-            "%loadbye",
-            "-load={}/Bye{}".format(config.llvm_shlib_dir, 
config.llvm_shlib_ext),
-        )
-    )
-    config.substitutions.append(
-        (
-            "%loadnewpmbye",
-            "-load-pass-plugin={}/Bye{}".format(
-                config.llvm_shlib_dir, config.llvm_shlib_ext
-            ),
-        )
-    )
+  config.substitutions.append(("%llvmcheckext", "CHECK-NOEXT"))
+  config.substitutions.append(
+      (
+          "%loadbye",
+          "-load={}/Bye{}".format(config.llvm_shlib_dir, 
config.llvm_shlib_ext),
+      )
+  )
+  config.substitutions.append(
+      (
+          "%loadnewpmbye",
+          "-load-pass-plugin={}/Bye{}".format(
+              config.llvm_shlib_dir, config.llvm_shlib_ext
+          ),
+      )
+  )
 
 if config.linked_exampleirtransforms_extension:
-    config.substitutions.append(("%loadexampleirtransforms", ""))
+  config.substitutions.append(("%loadexampleirtransforms", ""))
 else:
-    config.substitutions.append(
-        (
-            "%loadexampleirtransforms",
-            "-load-pass-plugin={}/ExampleIRTransforms{}".format(
-                config.llvm_shlib_dir, config.llvm_shlib_ext
-            ),
-        )
-    )
+  config.substitutions.append(
+      (
+          "%loadexampleirtransforms",
+          "-load-pass-plugin={}/ExampleIRTransforms{}".format(
+              config.llvm_shlib_dir, config.llvm_shlib_ext
+          ),
+      )
+  )
 
 # Static libraries are not built if BUILD_SHARED_LIBS is ON.
 if not config.build_shared_libs and not config.link_llvm_dylib:
-    config.available_features.add("static-libs")
+  config.available_features.add("static-libs")
 
 if config.link_llvm_dylib:
-    config.available_features.add("llvm-dylib")
-    config.substitutions.append(
-        (
-            # libLLVM.so.19.0git
-            "%llvmdylib",
-            "{}/libLLVM{}.{}".format(
-                config.llvm_shlib_dir, config.llvm_shlib_ext, 
config.llvm_dylib_version
-            )
-        )
-    )
+  config.available_features.add("llvm-dylib")
+  config.substitutions.append(
+      (
+          # libLLVM.so.19.0git
+          "%llvmdylib",
+          "{}/libLLVM{}.{}".format(
+              config.llvm_shlib_dir, config.llvm_shlib_ext, 
config.llvm_dylib_version
+          )
+      )
+  )
 
 if config.have_tf_aot:
-    config.available_features.add("have_tf_aot")
+  config.available_features.add("have_tf_aot")
 
 if config.have_tflite:
-    config.available_features.add("have_tflite")
+  config.available_features.add("have_tflite")
 
 if config.llvm_inliner_model_autogenerated:
-    config.available_features.add("llvm_inliner_model_autogenerated")
+  config.available_features.add("llvm_inliner_model_autogenerated")
 
 if config.llvm_raevict_model_autogenerated:
-    config.available_features.add("llvm_raevict_model_autogenerated")
+  config.available_features.add("llvm_raevict_model_autogenerated")
 
 
 def have_cxx_shared_library():
-    readobj_exe = lit.util.which("llvm-readobj", config.llvm_tools_dir)
-    if not readobj_exe:
-        print("llvm-readobj not found")
-        return False
+  readobj_exe = lit.util.which("llvm-readobj", config.llvm_tools_dir)
+  if not readobj_exe:
+    print("llvm-readobj not found")
+    return False
 
-    try:
-        readobj_cmd = subprocess.Popen(
-            [readobj_exe, "--needed-libs", readobj_exe], stdout=subprocess.PIPE
-        )
-    except OSError:
-        print("could not exec llvm-readobj")
-        return False
-
-    readobj_out = readobj_cmd.stdout.read().decode("ascii")
-    readobj_cmd.wait()
-
-    regex = re.compile(r"(libc\+\+|libstdc\+\+|msvcp).*\.(so|dylib|dll)")
-    needed_libs = False
-    for line in readobj_out.splitlines():
-        if "NeededLibraries [" in line:
-            needed_libs = True
-        if "]" in line:
-            needed_libs = False
-        if needed_libs and regex.search(line.lower()):
-            return True
+  try:
+    readobj_cmd = subprocess.Popen(
+        [readobj_exe, "--needed-libs", readobj_exe], stdout=subprocess.PIPE
+    )
+  except OSError:
+    print("could not exec llvm-readobj")
     return False
 
+  readobj_out = readobj_cmd.stdout.read().decode("ascii")
+  readobj_cmd.wait()
+
+  regex = re.compile(r"(libc\+\+|libstdc\+\+|msvcp).*\.(so|dylib|dll)")
+  needed_libs = False
+  for line in readobj_out.splitlines():
+    if "NeededLibraries [" in line:
+      needed_libs = True
+    if "]" in line:
+      needed_libs = False
+    if needed_libs and regex.search(line.lower()):
+      return True
+  return False
+
 
 if have_cxx_shared_library():
-    config.available_features.add("cxx-shared-library")
+  config.available_features.add("cxx-shared-library")
 
 if config.libcxx_used:
-    config.available_features.add("libcxx-used")
+  config.available_features.add("libcxx-used")
 
 # LLVM can be configured with an empty default triple
 # Some tests are "generic" and require a valid default triple
 if config.target_triple:
-    config.available_features.add("default_triple")
-    # Direct object generation
-    if not config.target_triple.startswith(("nvptx", "xcore")):
-        config.available_features.add("object-emission")
+  config.available_features.add("default_triple")
+  # Direct object generation
+  if not config.target_triple.startswith(("nvptx", "xcore")):
+    config.available_features.add("object-emission")
 
 if config.have_llvm_driver:
-    config.available_features.add("llvm-driver")
+  config.available_features.add("llvm-driver")
 
 import subprocess
 
 
 def have_ld_plugin_support():
-    if not os.path.exists(
-        os.path.join(config.llvm_shlib_dir, "LLVMgold" + config.llvm_shlib_ext)
-    ):
-        return False
+  if not os.path.exists(
+      os.path.join(config.llvm_shlib_dir, "LLVMgold" + config.llvm_shlib_ext)
+  ):
+    return False
 
-    ld_cmd = subprocess.Popen(
-        [config.gold_executable, "--help"], stdout=subprocess.PIPE, 
env={"LANG": "C"}
-    )
-    ld_out = ld_cmd.stdout.read().decode()
-    ld_cmd.wait()
-
-    if not "-plugin" in ld_out:
-        return False
-
-    # check that the used emulations are supported.
-    emu_line = [l for l in ld_out.split("\n") if "supported emulations" in l]
-    if len(emu_line) != 1:
-        return False
-    emu_line = emu_line[0]
-    fields = emu_line.split(":")
-    if len(fields) != 3:
-        return False
-    emulations = fields[2].split()
-    if "elf_x86_64" not in emulations:
-        return False
-    if "elf32ppc" in emulations:
-        config.available_features.add("ld_emu_elf32ppc")
-
-    ld_version = subprocess.Popen(
-        [config.gold_executable, "--version"], stdout=subprocess.PIPE, 
env={"LANG": "C"}
-    )
-    if not "GNU gold" in ld_version.stdout.read().decode():
-        return False
-    ld_version.wait()
+  ld_cmd = subprocess.Popen(
+      [config.gold_executable, "--help"], stdout=subprocess.PIPE, env={"LANG": 
"C"}
+  )
+  ld_out = ld_cmd.stdout.read().decode()
+  ld_cmd.wait()
 
-    return True
+  if not "-plugin" in ld_out:
+    return False
+
+  # check that the used emulations are supported.
+  emu_line = [l for l in ld_out.split("\n") if "supported emulations" in l]
+  if len(emu_line) != 1:
+    return False
+  emu_line = emu_line[0]
+  fields = emu_line.split(":")
+  if len(fields) != 3:
+    return False
+  emulations = fields[2].split()
+  if "elf_x86_64" not in emulations:
+    return False
+  if "elf32ppc" in emulations:
+    config.available_features.add("ld_emu_elf32ppc")
+
+  ld_version = subprocess.Popen(
+      [config.gold_executable, "--version"], stdout=subprocess.PIPE, 
env={"LANG": "C"}
+  )
+  if not "GNU gold" in ld_version.stdout.read().decode():
+    return False
+  ld_version.wait()
+
+  return True
 
 
 if have_ld_plugin_support():
-    config.available_features.add("ld_plugin")
+  config.available_features.add("ld_plugin")
 
 
 def have_ld64_plugin_support():
-    if not os.path.exists(
-        os.path.join(config.llvm_shlib_dir, "libLTO" + config.llvm_shlib_ext)
-    ):
-        return False
+  if not os.path.exists(
+      os.path.join(config.llvm_shlib_dir, "libLTO" + config.llvm_shlib_ext)
+  ):
+    return False
 
-    if config.ld64_executable == "":
-        return False
+  if config.ld64_executable == "":
+    return False
 
-    ld_cmd = subprocess.Popen([config.ld64_executable, "-v"], 
stderr=subprocess.PIPE)
-    ld_out = ld_cmd.stderr.read().decode()
-    ld_cmd.wait()
+  ld_cmd = subprocess.Popen([config.ld64_executable, "-v"], 
stderr=subprocess.PIPE)
+  ld_out = ld_cmd.stderr.read().decode()
+  ld_cmd.wait()
 
-    if "ld64" not in ld_out or "LTO" not in ld_out:
-        return False
+  if "ld64" not in ld_out or "LTO" not in ld_out:
+    return False
 
-    return True
+  return True
 
 
 if have_ld64_plugin_support():
-    config.available_features.add("ld64_plugin")
+  config.available_features.add("ld64_plugin")
 
 def host_unwind_supports_jit():
-    # Do we expect the host machine to support JIT registration of clang's
-    # default unwind info format for the host (e.g. eh-frames, compact-unwind,
-    # etc.).
-
-    # Linux and the BSDs use DWARF eh-frames and all known unwinders support
-    # register_frame at minimum.
-    if platform.system() in [ "Linux", "FreeBSD", "NetBSD" ]:
-        return True
+  # Do we expect the host machine to support JIT registration of clang's
+  # default unwind info format for the host (e.g. eh-frames, compact-unwind,
+  # etc.).
 
-    # Windows does not support frame info without the ORC runtime.
-    if platform.system() == "Windows":
-        return False
+  # Linux and the BSDs use DWARF eh-frames and all known unwinders support
+  # register_frame at minimum.
+  if platform.system() in [ "Linux", "FreeBSD", "NetBSD" ]:
+    return True
 
-    # On Darwin/x86-64 clang produces both eh-frames and compact-unwind, and
-    # libunwind supports register_frame. On Darwin/arm64 clang produces
-    # compact-unwind only, and JIT'd registration is not available before
-    # macOS 14.0.
-    if platform.system() == "Darwin":
+  # Windows does not support frame info without the ORC runtime.
+  if platform.system() == "Windows":
+    return False
 
-        assert (
-            "arm64" in config.host_triple
-            or "x86_64" in config.host_triple
-        )
+  # On Darwin/x86-64 clang produces both eh-frames and compact-unwind, and
+  # libunwind supports register_frame. On Darwin/arm64 clang produces
+  # compact-unwind only, and JIT'd registration is not available before
+  # macOS 14.0.
+  if platform.system() == "Darwin":
 
-        if "x86_64" in config.host_triple:
-            return True
+    assert (
+        "arm64" in config.host_triple
+        or "x86_64" in config.host_triple
+    )
 
-        # Must be arm64. Check the macOS version.
-        try:
-            osx_version = subprocess.check_output(
-                ["sw_vers", "-productVersion"], universal_newlines=True
-            )
-            osx_version = tuple(int(x) for x in osx_version.split("."))
-            if len(osx_version) == 2:
-                osx_version = (osx_version[0], osx_version[1], 0)
-            if osx_version >= (14, 0):
-                return True
-        except:
-            pass
+    if "x86_64" in config.host_triple:
+      return True
 
-        return False
+    # Must be arm64. Check the macOS version.
+    try:
+      osx_version = subprocess.check_output(
+          ["sw_vers", "-productVersion"], universal_newlines=True
+      )
+      osx_version = tuple(int(x) for x in osx_version.split("."))
+      if len(osx_version) == 2:
+        osx_version = (osx_version[0], osx_version[1], 0)
+      if osx_version >= (14, 0):
+        return True
+    except:
+      pass
 
     return False
 
+  return False
+
 if host_unwind_supports_jit():
-    config.available_features.add("host-unwind-supports-jit")
+  config.available_features.add("host-unwind-supports-jit")
 
 # Ask llvm-config about asserts
 llvm_config.feature_config(
@@ -639,54 +643,54 @@ def host_unwind_supports_jit():
 )
 
 if "darwin" == sys.platform:
-    cmd = ["sysctl", "hw.optional.fma"]
-    sysctl_cmd = subprocess.Popen(cmd, stdout=subprocess.PIPE)
-
-    # Non zero return, probably a permission issue
-    if sysctl_cmd.wait():
-        print(
-            'Warning: sysctl exists but calling "{}" failed, defaulting to no 
fma3.'.format(
-                " ".join(cmd)
-            )
+  cmd = ["sysctl", "hw.optional.fma"]
+  sysctl_cmd = subprocess.Popen(cmd, stdout=subprocess.PIPE)
+
+  # Non zero return, probably a permission issue
+  if sysctl_cmd.wait():
+    print(
+        'Warning: sysctl exists but calling "{}" failed, defaulting to no 
fma3.'.format(
+            " ".join(cmd)
         )
-    else:
-        result = sysctl_cmd.stdout.read().decode("ascii")
-        if "hw.optional.fma: 1" in result:
-            config.available_features.add("fma3")
+    )
+  else:
+    result = sysctl_cmd.stdout.read().decode("ascii")
+    if "hw.optional.fma: 1" in result:
+      config.available_features.add("fma3")
 
 if not hasattr(sys, "getwindowsversion") or sys.getwindowsversion().build >= 
17063:
-    config.available_features.add("unix-sockets")
+  config.available_features.add("unix-sockets")
 
 # .debug_frame is not emitted for targeting Windows x64, aarch64/arm64, AIX, 
or Apple Silicon Mac.
 if not re.match(
     
r"^(x86_64|aarch64|arm64|powerpc|powerpc64).*-(windows-gnu|windows-msvc|aix)",
     config.target_triple,
 ) and not re.match(r"^arm64(e)?-apple-(macos|darwin)", config.target_triple):
-    config.available_features.add("debug_frame")
+  config.available_features.add("debug_frame")
 
 if config.enable_backtrace:
-    config.available_features.add("backtrace")
+  config.available_features.add("backtrace")
 
 if config.enable_threads:
-    config.available_features.add("thread_support")
+  config.available_features.add("thread_support")
 
 if config.have_libxml2:
-    config.available_features.add("libxml2")
+  config.available_features.add("libxml2")
 
 if config.have_curl:
-    config.available_features.add("curl")
+  config.available_features.add("curl")
 
 if config.have_httplib:
-    config.available_features.add("httplib")
+  config.available_features.add("httplib")
 
 if config.have_opt_viewer_modules:
-    config.available_features.add("have_opt_viewer_modules")
+  config.available_features.add("have_opt_viewer_modules")
 
 if config.expensive_checks:
-    config.available_features.add("expensive_checks")
+  config.available_features.add("expensive_checks")
 
 if "MemoryWithOrigins" in config.llvm_use_sanitizer:
-    config.available_features.add("use_msan_with_origins")
+  config.available_features.add("use_msan_with_origins")
 
 
 # Some tools support an environment variable "OBJECT_MODE" on AIX OS, which
@@ -696,7 +700,7 @@ def host_unwind_supports_jit():
 # 32-bit and 64-bit objects by default, set the environment variable
 # "OBJECT_MODE" to 'any' by default on AIX OS.
 if "system-aix" in config.available_features:
-    config.environment["OBJECT_MODE"] = "any"
+  config.environment["OBJECT_MODE"] = "any"
 
 if config.has_logf128:
-    config.available_features.add("has_logf128")
+  config.available_features.add("has_logf128")

_______________________________________________
llvm-branch-commits mailing list
llvm-branch-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits

Reply via email to