[Driver] Allow XRay on Apple Silicon
authorOleksii Lozovskyi <me@ilammy.net>
Wed, 21 Jun 2023 03:47:32 +0000 (20:47 -0700)
committerFangrui Song <i@maskray.me>
Wed, 21 Jun 2023 03:47:32 +0000 (20:47 -0700)
Codegen can handle XRay for AArch64, tell the driver to allow it.

Differential Revision: https://reviews.llvm.org/D145849

clang/lib/Driver/XRayArgs.cpp
clang/test/Driver/XRay/xray-instrument.c

index 427c4ce..1f397d0 100644 (file)
@@ -32,9 +32,14 @@ XRayArgs::XRayArgs(const ToolChain &TC, const ArgList &Args) {
     return;
   XRayInstrument = Args.getLastArg(options::OPT_fxray_instrument);
   if (Triple.isMacOSX()) {
-    if (Triple.getArch() != llvm::Triple::x86_64) {
+    switch (Triple.getArch()) {
+    case llvm::Triple::aarch64:
+    case llvm::Triple::x86_64:
+      break;
+    default:
       D.Diag(diag::err_drv_unsupported_opt_for_target)
           << XRayInstrument->getSpelling() << Triple.str();
+      break;
     }
   } else if (Triple.isOSBinFormatELF()) {
     switch (Triple.getArch()) {
index 4304184..4c6b9b1 100644 (file)
@@ -1,4 +1,5 @@
 // RUN: %clang -### --target=aarch64-pc-freebsd -fxray-instrument -c %s -o /dev/null 2>&1 | FileCheck %s
+// RUN: %clang -### --target=arm64-apple-macos -fxray-instrument -c %s -o /dev/null 2>&1 | FileCheck %s
 // RUN: %clang -### --target=x86_64-apple-darwin -fxray-instrument -c %s -o /dev/null 2>&1 | FileCheck %s
 // RUN: %clang -### --target=x86_64-pc-windows -fxray-instrument -c %s -o /dev/null 2>&1 | FileCheck %s --check-prefix=ERR