[clang] d5bebb3 - [Driver] Allow XRay on Apple Silicon

Fangrui Song via cfe-commits cfe-commits at lists.llvm.org
Tue Jun 20 20:47:35 PDT 2023


Author: Oleksii Lozovskyi
Date: 2023-06-20T20:47:32-07:00
New Revision: d5bebb3fb402c4ba7e5838d267fa840eee8ecdce

URL: https://github.com/llvm/llvm-project/commit/d5bebb3fb402c4ba7e5838d267fa840eee8ecdce
DIFF: https://github.com/llvm/llvm-project/commit/d5bebb3fb402c4ba7e5838d267fa840eee8ecdce.diff

LOG: [Driver] Allow XRay on Apple Silicon

Codegen can handle XRay for AArch64, tell the driver to allow it.

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

Added: 
    

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

Removed: 
    


################################################################################
diff  --git a/clang/lib/Driver/XRayArgs.cpp b/clang/lib/Driver/XRayArgs.cpp
index 427c4ced3cd46..1f397d08237d5 100644
--- a/clang/lib/Driver/XRayArgs.cpp
+++ b/clang/lib/Driver/XRayArgs.cpp
@@ -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()) {

diff  --git a/clang/test/Driver/XRay/xray-instrument.c b/clang/test/Driver/XRay/xray-instrument.c
index 430418446366c..4c6b9b12fe9ab 100644
--- a/clang/test/Driver/XRay/xray-instrument.c
+++ b/clang/test/Driver/XRay/xray-instrument.c
@@ -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
 


        


More information about the cfe-commits mailing list