]> granicus.if.org Git - clang/commitdiff
[XRAY][MIPS] Add -fxray-instrument for mips/mipsel/mips64/mips64el
authorSagar Thakur <sagar.thakur@imgtec.com>
Wed, 15 Feb 2017 10:41:38 +0000 (10:41 +0000)
committerSagar Thakur <sagar.thakur@imgtec.com>
Wed, 15 Feb 2017 10:41:38 +0000 (10:41 +0000)
Summary: Adds xray instrument option for mips/mipsel/mips64/mips64el.

Reviewed by sdardis, dberris
Differential: D27698

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@295163 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Driver/Tools.cpp
test/CodeGen/xray-attributes-supported-mips.cpp [new file with mode: 0644]
test/Driver/XRay/xray-instrument-cpu.c

index 87153c33fe547cd1122d4ee6f9cf61122d8b8587..bc0796ff2a75d6211914f1b9ea7db6e5c0d7a5d7 100644 (file)
@@ -5065,6 +5065,10 @@ void Clang::ConstructJob(Compilation &C, const JobAction &JA,
       case llvm::Triple::arm:
       case llvm::Triple::aarch64:
       case llvm::Triple::ppc64le:
+      case llvm::Triple::mips:
+      case llvm::Triple::mipsel:
+      case llvm::Triple::mips64:
+      case llvm::Triple::mips64el:
         // Supported.
         break;
       default:
diff --git a/test/CodeGen/xray-attributes-supported-mips.cpp b/test/CodeGen/xray-attributes-supported-mips.cpp
new file mode 100644 (file)
index 0000000..a7d04da
--- /dev/null
@@ -0,0 +1,16 @@
+// RUN: %clang_cc1 %s -fxray-instrument -std=c++11 -x c++ -emit-llvm -o - -triple mips-unknown-linux-gnu | FileCheck %s
+// RUN: %clang_cc1 %s -fxray-instrument -std=c++11 -x c++ -emit-llvm -o - -triple mipsel-unknown-linux-gnu | FileCheck %s
+// RUN: %clang_cc1 %s -fxray-instrument -std=c++11 -x c++ -emit-llvm -o - -triple mips64-unknown-linux-gnu | FileCheck %s
+// RUN: %clang_cc1 %s -fxray-instrument -std=c++11 -x c++ -emit-llvm -o - -triple mips64el-unknown-linux-gnu | FileCheck %s
+
+// Make sure that the LLVM attribute for XRay-annotated functions do show up.
+[[clang::xray_always_instrument]] void foo() {
+// CHECK: define void @_Z3foov() #0
+};
+
+[[clang::xray_never_instrument]] void bar() {
+// CHECK: define void @_Z3barv() #1
+};
+
+// CHECK: #0 = {{.*}}"function-instrument"="xray-always"
+// CHECK: #1 = {{.*}}"function-instrument"="xray-never"
index 8215cc16e169a9ba4451ae5927356586a1fdccd6..ee0e0984b36d8ac0ae9151eae7994a0035e47d88 100644 (file)
@@ -1,4 +1,4 @@
 // RUN: not %clang -o /dev/null -v -fxray-instrument -c %s
-// XFAIL: amd64-, x86_64-, x86_64h-, arm, aarch64, arm64, powerpc64le-
+// XFAIL: amd64-, x86_64-, x86_64h-, arm, aarch64, arm64, powerpc64le-, mips, mipsel, mips64, mips64el
 // REQUIRES: linux
 typedef int a;