Skip to content

[llvm-exegesis][AArch64] Disable pauth and ldgm as unsupported instructions #132346

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 11 commits into from
Apr 9, 2025

Conversation

lakshayk-nv
Copy link
Contributor

@lakshayk-nv lakshayk-nv commented Mar 21, 2025

[llvm-exegesis][AArch64] Disable pauth and ldgm as unsupported instructions.
Skipping AUT and LDGM opcode variants which currently throws "illegal instruction".

  • Checking opcodes specifically for LDGM and AUT opcode instruction variants.
  • Gracefully exiting with " : Unsupported opcode: isPointerAuth/isUncheckedAccess"
  • Added corresponding test cases to check exit message.

1) Checking opcodes specifically for LDGM and AUT opcode instruction variants.
2) Gracefully exiting with "<opcode-name> : Unsupported opcode: isPointerAuth/isUncheckedAccess"
3) Added corresponding test cases to check exit message.
@llvmbot
Copy link
Member

llvmbot commented Mar 21, 2025

@llvm/pr-subscribers-tools-llvm-exegesis

Author: None (lakshayk-nv)

Changes

Skipping AUT and LDGM opcode variants which currently throws "illegal instruction".

  • Checking opcodes specifically for LDGM and AUT opcode instruction variants.
  • Gracefully exiting with " : Unsupported opcode: isPointerAuth/isUncheckedAccess"
  • Added corresponding test cases to check exit message.

Full diff: https://github.com/llvm/llvm-project/pull/132346.diff

2 Files Affected:

  • (added) llvm/test/tools/llvm-exegesis/AArch64/err_skip_illegal_Instruction.s (+8)
  • (modified) llvm/tools/llvm-exegesis/lib/Target.cpp (+10)
diff --git a/llvm/test/tools/llvm-exegesis/AArch64/err_skip_illegal_Instruction.s b/llvm/test/tools/llvm-exegesis/AArch64/err_skip_illegal_Instruction.s
new file mode 100644
index 0000000000000..74fe5a7c3a60a
--- /dev/null
+++ b/llvm/test/tools/llvm-exegesis/AArch64/err_skip_illegal_Instruction.s
@@ -0,0 +1,8 @@
+REQUIRES: aarch64-registered-target
+
+## Check for skipping of illegal instruction errors (AUT and LDGM)
+RUN: llvm-exegesis -mcpu=neoverse-v2 -mode=latency --dump-object-to-disk=%d --min-instructions=1 --opcode-name=AUTIA --benchmark-phase=assemble-measured-code 2>&1
+CHECK: AUTIA: Unsupported opcode: isPointerAuth/isUncheckedAccess
+
+RUN: llvm-exegesis -mcpu=neoverse-v2 -mode=latency --dump-object-to-disk=%d --min-instructions=1 --opcode-name=LDGM --benchmark-phase=assemble-measured-code 2>&1
+CHECK: LDGM: Unsupported opcode: isPointerAuth/isUncheckedAccess
\ No newline at end of file
diff --git a/llvm/tools/llvm-exegesis/lib/Target.cpp b/llvm/tools/llvm-exegesis/lib/Target.cpp
index 68d19514bedb2..245d1db5d21e8 100644
--- a/llvm/tools/llvm-exegesis/lib/Target.cpp
+++ b/llvm/tools/llvm-exegesis/lib/Target.cpp
@@ -35,6 +35,14 @@ const ExegesisTarget *ExegesisTarget::lookup(Triple TT) {
   return nullptr;
 }
 
+static bool isPointerAuthOpcode(unsigned Opcode) {
+  return (Opcode >= 1648 && Opcode <= 1667); // AUT instruction class range
+}
+
+static bool isUncheckedAccessOpcode(unsigned Opcode) {
+  return Opcode == 4694; // LDGM instruction
+}
+
 const char *
 ExegesisTarget::getIgnoredOpcodeReasonOrNull(const LLVMState &State,
                                              unsigned Opcode) const {
@@ -45,6 +53,8 @@ ExegesisTarget::getIgnoredOpcodeReasonOrNull(const LLVMState &State,
     return "Unsupported opcode: isBranch/isIndirectBranch";
   if (InstrDesc.isCall() || InstrDesc.isReturn())
     return "Unsupported opcode: isCall/isReturn";
+  if (isPointerAuthOpcode(Opcode) || isUncheckedAccessOpcode(Opcode))
+    return "Unsupported opcode: isPointerAuth/isUncheckedAccess";
   return nullptr;
 }
 

@@ -35,6 +35,14 @@ const ExegesisTarget *ExegesisTarget::lookup(Triple TT) {
return nullptr;
}

static bool isPointerAuthOpcode(unsigned Opcode) {
return (Opcode >= 1648 && Opcode <= 1667); // AUT instruction class range
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

These numbers are not stable and could change as new instructions are added - you will need to check the opcodes directly (AArch64::AUT etc).

I would expect they were useful instructions to check the throughput of though, if there was a way to do that.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

These numbers are not stable and could change as new instructions are added - you will need to check the opcodes directly (AArch64::AUT etc).

I would expect they were useful instructions to check the throughput of though, if there was a way to do that.

Agree on the usefulness, but was thinking to leave this for another day and mark them as unsupported for now. The problem is that the snippet might need to look a bit different, as some of these need to come in pairs. If used in isolation, you might run into a useless "Illegal instruction" kernel/linux error. This confused me as that made it look like the pauth extension wasn't enabled in the kernel, but turned out be a user error, e.g. checking a pointer before it was signed, that kind of stuff. So the idea is to worry about this later, avoid crashing snippets, and figure out what to do with this later.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

And fully agreed on checking the opcodes by the way, this needs to be a switch statement on all the pauth opcodes.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

More generally, I am now wondering how this is supposed to work for optional extensions that may not need to be implemented on the platform where llvm-exegesis is run. I guess it needs to query the host for the supported extension, is anything like that already in place?

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Which ones fail for you? I tried AUTDA and it seemed to do OK when I tried it. My understanding was that they corrupted bits in the return address, which only faults when they are used. FEAT_FPAC might enable more faulting of the instructions directly.

(In general, this being a developer tool, I wasn't sure of the benefit or downside of marking an instruction as unsupported as opposed to just trying it and seeing if it worked. Disabling it has the downside that no-one can use it even if it could work. But I can see how that might make analyzing many instructions more.. messy).

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hey @davemgreen , this is on Grace, which has the all the required extensions (and kernel modules).
I am able to successfully run the code example from the pointer auth learning path. I see pauth instructions and everything runs fine.

Here's is a small reproducer that runs fine:

extern "C" void kernel();
asm(R"(
.global kernel
kernel:
    paciasp
    autiasp
    ret
)");
int main(void) {
  kernel();
  return 0;
}

If you modify this, removes the signing and only authenticate this:

asm(R"(
.global kernel
kernel:
    autiasp
    ret
)");

Then you'll get an illegal instruction exception. At least, on Grace this is the observed behaviour. That's why I wrote these instructions need to come in pairs, but you're saying that the behaviour can be different on different platforms. Hmmmm, not ideal. But I think we do have a problem reliably testing these things, and on top of all of this, I don't think this is the right snippet to test it latency/throughput:

 0000000000000000 <foo>:
 0: f81f0ff6      str     x22, [sp, #-0x10]!
 4: d280000a      mov     x10, #0x0               // =0
 8: d2800016      mov     x22, #0x0               // =0. 
 c: dac11aca      autda   x10, x22
10: f84107f6      ldr     x22, [sp], #0x10
14: d65f03c0      ret

So, what do you think about disabling for now?
Or would you like to see a Grace specific workaround to disable this for now?

Copy link
Collaborator

@sjoerdmeijer sjoerdmeijer Mar 24, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sorry forgot to add this: I don't know what that FEAT_FPAC things is.
I don't think it is advertised in the linux kernel features, maybe it is a bit of a different name, but don't think I see something that looks like it. Maybe I am missing something because I didn't research it too long. But if this is extension for raising the exception, then it looks like Grace has that like you wrote.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

My understanding of it is that when the AUT instructions were originally added they purely modified the values of registers, corrupting the top bits which then cause the return to fault when the register is used. So on a machine like Grace I which does not have FEAT_FPAC they work OK. It seems to produce a file that looks like this, and produces a sensible looking latency result similar to the optimization guide:

       0:       f81f0ff4        str     x20, [sp, #-16]!                        
       4:       d280000d        mov     x13, #0x0                       // #0   
       8:       d2800014        mov     x20, #0x0                       // #0   
       c:       dac11a8d        autda   x13, x20                                
      10:       dac11a8d        autda   x13, x20                                
...
    9c44:       dac11a8d        autda   x13, x20               
    9c48:       dac11a8d        autda   x13, x20               
    9c4c:       f84107f4        ldr     x20, [sp], #16         
    9c50:       d65f03c0        ret                            

AUTIASP also works fine for me, as x30 (LR) is spilled and reloaded around the snippet.

FEAT_FPAC changes the instructions so that they fault immediately when the check fails. So a cpu with that feature (#132368 ;)) might then hit the segfault you are seeing.

So maybe we can check that the current CPU has FEAT_FPAC, and disable them only then?

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Or - perhaps Grace does have FEAT_FPAC (but we don't mark it as such in LLVM) and the system I am running on doesn't fault due to some way it is setup? I would imagine there was some way to disable the faulting at at least the OS level.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

So maybe we can check that the current CPU has FEAT_FPAC, and disable them only then?

Okidoki, thanks, that indeed seems the best thing to do.

Don't know if it's easy to query a CPU for features in llvm exegesis, but I guess that's the first thing to investigate now for @lakshayk-nv.

@@ -0,0 +1,8 @@
REQUIRES: aarch64-registered-target
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

REQUIRES/RUN/CHECK lines should still be in comments even if this file isn't loaded anywhere (or at least I prefer it that way to be consistent with other tests).

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done, Thanks!

REQUIRES: aarch64-registered-target

## Check for skipping of illegal instruction errors (AUT and LDGM)
RUN: llvm-exegesis -mcpu=neoverse-v2 -mode=latency --dump-object-to-disk=%d --min-instructions=1 --opcode-name=AUTIA --benchmark-phase=assemble-measured-code 2>&1
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This never actually pipes anything into FileCheck, so you're not actually checking anything?

Also, --dump-object-to-disk here seems unnecessary.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done, Removed unnecessary flags.
Thanks!

CHECK: AUTIA: Unsupported opcode: isPointerAuth/isUncheckedAccess

RUN: llvm-exegesis -mcpu=neoverse-v2 -mode=latency --dump-object-to-disk=%d --min-instructions=1 --opcode-name=LDGM --benchmark-phase=assemble-measured-code 2>&1
CHECK: LDGM: Unsupported opcode: isPointerAuth/isUncheckedAccess
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nit: newline at end of file.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done.

}

static bool isUncheckedAccessOpcode(unsigned Opcode) {
return Opcode == 4694; // LDGM instruction
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Same here regarding the opcode number.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done.

- Replace hardcoded opcode ranges with AArch64::* enum values for pointer auth and
unchecked access instructions.
- Add required AArch64 headers and update tests.
- Style changes for corresponding testcases.
Copy link

github-actions bot commented Mar 24, 2025

✅ With the latest revision this PR passed the C/C++ code formatter.

Copy link
Contributor

@boomanaiden154 boomanaiden154 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Does this compile if LLVM_TARGETS_TO_BUILD does not include AArch64? Not sure if the two headers included here have any tablegen transitive deps...

I think I would probably prefer if these functions were implemented in AArch64/Target.cpp. I don't think there's a hook that exists currently for that, but it shouldn't be hard to add and invoke inside getIgnoredOpcodeReasonOrNull.

@@ -0,0 +1,8 @@
# REQUIRES: aarch64-registered-target
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nitpick about the filename err_skip_illegal_Instruction.s: they are not illegal instructions per se, it's more that they are unsupported (at the moment), and also one word is capitalised and the other aren't so is a bit inconsistent. My suggestion would be skip_unsupported_instructions.s or something like that.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I originally named it err_skip_illegal_Instruction.s to indicate it's a test case for error skipping behavior, but you're right that skip_unsupported_instructions.s would be more accurate since these instructions are unsupported rather than illegal. I will push required changes.

Btw, Can you weigh in for checking other skipped errors (isPseudo, isReturn etc.).
Does it make sense to check them also in this testfile, (just for completeness) ?

@@ -35,6 +37,37 @@ const ExegesisTarget *ExegesisTarget::lookup(Triple TT) {
return nullptr;
}

static bool isPointerAuthOpcode(unsigned Opcode) {
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Another nitpick, I wanted to suggest that we create one isUnsupportedOpcode() function that could use these new helper functions, but then realised that is function getIgnoredOpcodeReasonOrNull(). We might as well use that function then, here would be my suggestion and as you see I also split up the first couple of if-statements as I don't like error messages that say "it can be this or that":

    const char *
    ExegesisTarget::getIgnoredOpcodeReasonOrNull(const LLVMState &State,
                                             unsigned Opcode) const {
        const MCInstrDesc &InstrDesc = State.getIC().getInstr(Opcode).Description;

        if (InstrDesc.isPseudo())
          return "Unsupported opcode: isPseudo";
        if ( InstrDesc.usesCustomInsertionHook())
          return "Unsupported opcode: usesCustomInserter";
        if (InstrDesc.isBranch())
          return "Unsupported opcode: isBranch";
        if (InstrDesc.isIndirectBranch())
          return "Unsupported opcode: isIndirectBranch";
        if (InstrDesc.isCall())
          return "Unsupported opcode: isCall";
        if (InstrDesc.isReturn())
          return "Unsupported opcode: isReturn";

         switch (Opcode) {
         default:
           return nullptr;

         // FIXME: Pointer Authentication instructions.
         // We would like to measure these instructions, but they can behave differently on
         // different platforms, and maybe the snippets need to look different for these instructions,
         // so let's disable this for now. 
         case AArch64::AUTDA:
         case AArch64::AUTDB:
         case AArch64::AUTDZA:
         case AArch64::AUTDZB:
         case AArch64::AUTIA:
         case AArch64::AUTIA1716:
         case AArch64::AUTIASP:
         case AArch64::AUTIAZ:
         case AArch64::AUTIB:
         case AArch64::AUTIB1716:
         case AArch64::AUTIBSP:
         case AArch64::AUTIBZ:
         case AArch64::AUTIZA:
         case AArch64::AUTIZB:
           return ""Unsupported opcode: isPointerAuth";

         // Load tag multiple instruction
         case AArch64::LDGM:
           return "Unsupported opcode: load tag multiple";
       }
       return nullptr;
    }

@sjoerdmeijer
Copy link
Collaborator

sjoerdmeijer commented Mar 25, 2025

And similar suggestion for the subject of the merge request and the commit message (as they are not illegal instructions):

[llvm-exegesis][AArch64] Resolving Illegal Instruction Error

=>

[llvm-exegesis][AArch64] Disable pauth and ldgm as unsupported instructions

Or something along those lines.

@lakshayk-nv lakshayk-nv changed the title [llvm-exegesis] [AArch64] Resolving Illegal Instruction Error [llvm-exegesis][AArch64] Disable pauth and ldgm as unsupported instructions Mar 25, 2025
…ctions.

1) Change location of isPointerAuth and isLoadTagMultiple function across file for correct implementation
2) Style nits changes in test cases.
@davemgreen
Copy link
Collaborator

According to https://docs.kernel.org/arch/arm64/pointer-authentication.html, the authentication can be disable with something like

prctl(PR_PAC_SET_ENABLED_KEYS,
      PR_PAC_APIAKEY | PR_PAC_APIBKEY | PR_PAC_APDAKEY | PR_PAC_APDBKEY,
      0, 0, 0);

On the systems I tried it on (a couple of neoverse-v2 machines), it allowed the instructions to execute and give sensible latency/throughputs. There is a chance it would make them run at a different speed, but that doesn't appear to be the case on the system I tried. That might be a better alternative than preventing any timing of the instructions.

- Included necessary headers for PR_PAC_* constants and modified the getIgnoredOpcodeReasonOrNull function to disabling pointer authentication.
- Adjusted formatting.
@@ -335,6 +335,9 @@ class ExegesisTarget {
const OpcodeAvailabilityChecker IsOpcodeAvailable;
};

bool isPointerAuth(unsigned Opcode);
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

These do not make sense to have in the normal target given they are specific to AArch64. It would be better (in my opinion) to add a method similar to getIgnoredOpcodeReasonOrNull that can be overrided by targets and then gets invoked in getIgnoredOpcodeReasonsOrNull.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, That implementation was bad.
Updated implementation, Now overriding getIgnoredOpcodeReasonOrNull() , which checks isPointerAuth() and isLoadTagMultiple() additionally for AArch64.

Thanks :)

…ication and load tag multiple

- Moved isPointerAuth and isLoadTagMultiple functions to AArch64/Target.cpp for better organization.
- Updated getIgnoredOpcodeReasonOrNull to handle pointer authentication and load tag multiple opcodes correctly.
- Removed redundant definitions from Target.cpp and Target.h.
@lakshayk-nv
Copy link
Contributor Author

According to https://docs.kernel.org/arch/arm64/pointer-authentication.html, the authentication can be disable with something like

prctl(PR_PAC_SET_ENABLED_KEYS,
      PR_PAC_APIAKEY | PR_PAC_APIBKEY | PR_PAC_APDAKEY | PR_PAC_APDBKEY,
      0, 0, 0);

On the systems I tried it on (a couple of neoverse-v2 machines), it allowed the instructions to execute and give sensible latency/throughputs. There is a chance it would make them run at a different speed, but that doesn't appear to be the case on the system I tried. That might be a better alternative than preventing any timing of the instructions.

Thanks, disabled authentication using prctl :)

Copy link
Collaborator

@davemgreen davemgreen left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks - looking good. You might need to limit the test to linux too, if it isn't expected to be able to run or give the same output on osx/windows.

…Linux

- Added platform-specific handling for pointer authentication instructions, enabling the disabling of PAC keys on Linux.
- Ensured that unsupported opcodes return an appropriate message on non-Linux platforms.
return "Unsupported opcode: isBranch/isIndirectBranch";
if (InstrDesc.isCall() || InstrDesc.isReturn())
return "Unsupported opcode: isCall/isReturn";
if (InstrDesc.isPseudo())
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

All the changes in this file seem to be formatting changes that are now irrelevant to the PR? They should probably be reverted.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

split up the first couple of if-statements as I don't like error messages that say "it can be this or that":

Sjoerd suggested 'unclubbing' the unsupported error message to specify the exact reason. Thus, keeping this and formatter's changes for this file only.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I would prefer these changes go in a separate patch.

@@ -268,8 +268,7 @@ class ExegesisTarget {

// Creates a snippet generator for the given mode.
std::unique_ptr<SnippetGenerator>
createSnippetGenerator(Benchmark::ModeE Mode,
const LLVMState &State,
createSnippetGenerator(Benchmark::ModeE Mode, const LLVMState &State,
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Same here regarding formatting.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Reverted back formatting changes, Thanks!

@@ -281,7 +281,7 @@ static cl::opt<std::string> MAttr(
static ExitOnError ExitOnErr("llvm-exegesis error: ");

// Helper function that logs the error(s) and exits.
template <typename... ArgTs> static void ExitWithError(ArgTs &&... Args) {
template <typename... ArgTs> static void ExitWithError(ArgTs &&...Args) {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Same for this file for formatting.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done, Thanks :)

// differently on different platforms, and maybe the snippets need to look
// different for these instructions,
// Platform-specific handling: On Linux, we disable authentication, may
// interfere with measurements. On non-Linux platforms, disable opcodes for
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Just a note: Exegesis doesn't really support benchmarking on non-Linux platforms.

Copy link
Collaborator

@davemgreen davemgreen left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM for the AArch64 parts, if you remove the changes from llvm/tools/llvm-exegesis/lib/Target.cpp. They look like they would be good as a separate commit.

@madhur13490 madhur13490 merged commit 559540d into llvm:main Apr 9, 2025
11 checks passed
@madhur13490
Copy link
Contributor

Merged on behalf of @lakshayk-nv

@llvm-ci
Copy link
Collaborator

llvm-ci commented Apr 9, 2025

LLVM Buildbot has detected a new failure on builder llvm-clang-x86_64-gcc-ubuntu running on sie-linux-worker3 while building llvm at step 5 "build-unified-tree".

Full details are available at: https://lab.llvm.org/buildbot/#/builders/174/builds/15884

Here is the relevant piece of the build log for the reference
Step 5 (build-unified-tree) failure: build (failure)
...
8.030 [90/12/138] Linking CXX executable unittests/tools/llvm-cfi-verify/CFIVerifyTests
8.046 [90/11/139] Linking CXX executable tools/clang/unittests/Sema/SemaTests
8.181 [90/10/140] Linking CXX executable unittests/Transforms/Utils/UtilsTests
8.291 [90/9/141] Linking CXX executable tools/clang/unittests/Tooling/Syntax/SyntaxTests
8.517 [90/8/142] Linking CXX executable unittests/Transforms/Scalar/ScalarTests
8.531 [90/7/143] Linking CXX executable unittests/Analysis/AnalysisTests
8.646 [90/6/144] Linking CXX executable unittests/IR/IRTests
8.820 [90/5/145] Linking CXX executable unittests/Passes/Plugins/PluginsTests
8.946 [90/4/146] Linking CXX executable bin/clang-tidy
10.560 [90/3/147] Building CXX object tools/llvm-exegesis/lib/AArch64/CMakeFiles/LLVMExegesisAArch64.dir/Target.cpp.o
FAILED: tools/llvm-exegesis/lib/AArch64/CMakeFiles/LLVMExegesisAArch64.dir/Target.cpp.o 
/opt/ccache/bin/g++ -DGTEST_HAS_RTTI=0 -DLLVM_BUILD_STATIC -D_DEBUG -D_GLIBCXX_ASSERTIONS -D_GNU_SOURCE -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -I/home/buildbot/buildbot-root/llvm-clang-x86_64-gcc-ubuntu/build/tools/llvm-exegesis/lib/AArch64 -I/home/buildbot/buildbot-root/llvm-clang-x86_64-gcc-ubuntu/llvm-project/llvm/tools/llvm-exegesis/lib/AArch64 -I/home/buildbot/buildbot-root/llvm-clang-x86_64-gcc-ubuntu/build/include -I/home/buildbot/buildbot-root/llvm-clang-x86_64-gcc-ubuntu/llvm-project/llvm/include -I/home/buildbot/buildbot-root/llvm-clang-x86_64-gcc-ubuntu/llvm-project/llvm/lib/Target/AArch64 -I/home/buildbot/buildbot-root/llvm-clang-x86_64-gcc-ubuntu/build/lib/Target/AArch64 -fPIC -fno-semantic-interposition -fvisibility-inlines-hidden -Werror=date-time -Wall -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wno-missing-field-initializers -pedantic -Wno-long-long -Wimplicit-fallthrough -Wno-uninitialized -Wno-nonnull -Wno-class-memaccess -Wno-redundant-move -Wno-pessimizing-move -Wno-noexcept-type -Wdelete-non-virtual-dtor -Wsuggest-override -Wno-comment -Wno-misleading-indentation -fdiagnostics-color -ffunction-sections -fdata-sections -O3 -DNDEBUG  -fno-exceptions -funwind-tables -fno-rtti -UNDEBUG -std=c++17 -MD -MT tools/llvm-exegesis/lib/AArch64/CMakeFiles/LLVMExegesisAArch64.dir/Target.cpp.o -MF tools/llvm-exegesis/lib/AArch64/CMakeFiles/LLVMExegesisAArch64.dir/Target.cpp.o.d -o tools/llvm-exegesis/lib/AArch64/CMakeFiles/LLVMExegesisAArch64.dir/Target.cpp.o -c /home/buildbot/buildbot-root/llvm-clang-x86_64-gcc-ubuntu/llvm-project/llvm/tools/llvm-exegesis/lib/AArch64/Target.cpp
/home/buildbot/buildbot-root/llvm-clang-x86_64-gcc-ubuntu/llvm-project/llvm/tools/llvm-exegesis/lib/AArch64/Target.cpp: In member function ‘virtual const char* llvm::exegesis::{anonymous}::ExegesisAArch64Target::getIgnoredOpcodeReasonOrNull(const llvm::exegesis::LLVMState&, unsigned int) const’:
/home/buildbot/buildbot-root/llvm-clang-x86_64-gcc-ubuntu/llvm-project/llvm/tools/llvm-exegesis/lib/AArch64/Target.cpp:195:17: error: ‘PR_PAC_SET_ENABLED_KEYS’ was not declared in this scope
  195 |       if (prctl(PR_PAC_SET_ENABLED_KEYS,
      |                 ^~~~~~~~~~~~~~~~~~~~~~~
15.235 [90/2/148] Building CXX object lib/CodeGen/AsmPrinter/CMakeFiles/LLVMAsmPrinter.dir/AsmPrinter.cpp.o
16.253 [90/1/149] Building CXX object lib/LTO/CMakeFiles/LLVMLTO.dir/LTO.cpp.o
ninja: build stopped: subcommand failed.

madhur13490 added a commit to madhur13490/llvm-project that referenced this pull request Apr 9, 2025
…d instructions (llvm#132346)"

This reverts commit 559540d as it
has cause build failures in llvm-clang-x86_64-gcc-ubuntu
madhur13490 added a commit that referenced this pull request Apr 9, 2025
#134971)

…d instructions (#132346)"

This reverts commit 559540d as it has
cause build failures in llvm-clang-x86_64-gcc-ubuntu
@llvm-ci
Copy link
Collaborator

llvm-ci commented Apr 9, 2025

LLVM Buildbot has detected a new failure on builder llvm-clang-x86_64-expensive-checks-debian running on gribozavr4 while building llvm at step 5 "build-unified-tree".

Full details are available at: https://lab.llvm.org/buildbot/#/builders/16/builds/17044

Here is the relevant piece of the build log for the reference
Step 5 (build-unified-tree) failure: build (failure)
...
21.274 [600/16/3505] Running utility command for ocaml_llvm_Mips
21.274 [600/15/3506] Running utility command for ocaml_llvm_WebAssembly
21.281 [600/14/3507] Building OCaml documentation for llvm_RISCV
21.281 [599/14/3508] Running utility command for ocaml_llvm_ARM
21.285 [599/13/3509] Building OCaml documentation for llvm_Hexagon
21.291 [598/13/3510] Running utility command for ocaml_llvm_RISCV
21.294 [598/12/3511] Building OCaml documentation for llvm_AArch64
21.296 [597/12/3512] Running utility command for ocaml_llvm_Hexagon
21.303 [597/11/3513] Running utility command for ocaml_llvm_AArch64
21.436 [597/10/3514] Building CXX object tools/llvm-exegesis/lib/AArch64/CMakeFiles/LLVMExegesisAArch64.dir/Target.cpp.o
FAILED: tools/llvm-exegesis/lib/AArch64/CMakeFiles/LLVMExegesisAArch64.dir/Target.cpp.o 
CCACHE_CPP2=yes CCACHE_HASHDIR=yes /usr/bin/ccache /usr/bin/clang++ -DEXPENSIVE_CHECKS -DGTEST_HAS_RTTI=0 -DLLVM_BUILD_STATIC -D_DEBUG -D_GLIBCXX_ASSERTIONS -D_GLIBCXX_DEBUG -D_GNU_SOURCE -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -I/b/1/llvm-clang-x86_64-expensive-checks-debian/build/tools/llvm-exegesis/lib/AArch64 -I/b/1/llvm-clang-x86_64-expensive-checks-debian/llvm-project/llvm/tools/llvm-exegesis/lib/AArch64 -I/b/1/llvm-clang-x86_64-expensive-checks-debian/build/include -I/b/1/llvm-clang-x86_64-expensive-checks-debian/llvm-project/llvm/include -I/b/1/llvm-clang-x86_64-expensive-checks-debian/llvm-project/llvm/lib/Target/AArch64 -I/b/1/llvm-clang-x86_64-expensive-checks-debian/build/lib/Target/AArch64 -U_GLIBCXX_DEBUG -fPIC -fvisibility-inlines-hidden -Werror=date-time -Werror=unguarded-availability-new -Wall -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wmissing-field-initializers -pedantic -Wno-long-long -Wc++98-compat-extra-semi -Wimplicit-fallthrough -Wcovered-switch-default -Wno-noexcept-type -Wnon-virtual-dtor -Wdelete-non-virtual-dtor -Wsuggest-override -Wstring-conversion -Wmisleading-indentation -Wctad-maybe-unsupported -fdiagnostics-color -ffunction-sections -fdata-sections -O3 -DNDEBUG  -fno-exceptions -funwind-tables -fno-rtti -UNDEBUG -std=c++17 -MD -MT tools/llvm-exegesis/lib/AArch64/CMakeFiles/LLVMExegesisAArch64.dir/Target.cpp.o -MF tools/llvm-exegesis/lib/AArch64/CMakeFiles/LLVMExegesisAArch64.dir/Target.cpp.o.d -o tools/llvm-exegesis/lib/AArch64/CMakeFiles/LLVMExegesisAArch64.dir/Target.cpp.o -c /b/1/llvm-clang-x86_64-expensive-checks-debian/llvm-project/llvm/tools/llvm-exegesis/lib/AArch64/Target.cpp
/b/1/llvm-clang-x86_64-expensive-checks-debian/llvm-project/llvm/tools/llvm-exegesis/lib/AArch64/Target.cpp:195:17: error: use of undeclared identifier 'PR_PAC_SET_ENABLED_KEYS'
      if (prctl(PR_PAC_SET_ENABLED_KEYS,
                ^
1 error generated.
23.290 [597/9/3515] Building CXX object lib/LTO/CMakeFiles/LLVMLTO.dir/LTO.cpp.o
23.570 [597/8/3516] Building AMDGPUGenAsmWriter.inc...
23.794 [597/7/3517] Building X86GenAsmMatcher.inc...
24.974 [597/6/3518] Building AMDGPUGenGlobalISel.inc...
26.105 [597/5/3519] Building AMDGPUGenDAGISel.inc...
26.116 [597/4/3520] Building AMDGPUGenInstrInfo.inc...
27.327 [597/3/3521] Building AMDGPUGenRegisterBank.inc...
29.549 [597/2/3522] Building AMDGPUGenRegisterInfo.inc...
38.217 [597/1/3523] Building AMDGPUGenAsmMatcher.inc...
ninja: build stopped: subcommand failed.

@llvm-ci
Copy link
Collaborator

llvm-ci commented Apr 9, 2025

LLVM Buildbot has detected a new failure on builder clang-x86_64-debian-fast running on gribozavr4 while building llvm at step 5 "build-unified-tree".

Full details are available at: https://lab.llvm.org/buildbot/#/builders/56/builds/22975

Here is the relevant piece of the build log for the reference
Step 5 (build-unified-tree) failure: build (failure)
...
38.924 [473/17/5745] Running utility command for ocaml_llvm_RISCV
38.930 [473/16/5746] Running utility command for ocaml_llvm_WebAssembly
38.931 [473/15/5747] Running utility command for ocaml_llvm_VE
38.944 [473/14/5748] Running utility command for ocaml_llvm_X86
38.957 [473/13/5749] Running utility command for ocaml_llvm_Hexagon
38.993 [473/12/5750] Running utility command for ocaml_llvm_AArch64
39.009 [473/11/5751] Building AMDGPUGenGlobalISel.inc...
39.117 [473/10/5752] Building OCaml documentation for llvm_executionengine
39.154 [472/10/5753] Running utility command for ocaml_llvm_executionengine
40.578 [472/9/5754] Building CXX object tools/llvm-exegesis/lib/AArch64/CMakeFiles/LLVMExegesisAArch64.dir/Target.cpp.o
FAILED: tools/llvm-exegesis/lib/AArch64/CMakeFiles/LLVMExegesisAArch64.dir/Target.cpp.o 
CCACHE_CPP2=yes CCACHE_HASHDIR=yes /usr/bin/ccache /usr/bin/clang++ -DGTEST_HAS_RTTI=0 -DLLVM_BUILD_STATIC -D_DEBUG -D_GLIBCXX_ASSERTIONS -D_GNU_SOURCE -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -I/b/1/clang-x86_64-debian-fast/llvm.obj/tools/llvm-exegesis/lib/AArch64 -I/b/1/clang-x86_64-debian-fast/llvm.src/llvm/tools/llvm-exegesis/lib/AArch64 -I/b/1/clang-x86_64-debian-fast/llvm.obj/include -I/b/1/clang-x86_64-debian-fast/llvm.src/llvm/include -I/b/1/clang-x86_64-debian-fast/llvm.src/llvm/lib/Target/AArch64 -I/b/1/clang-x86_64-debian-fast/llvm.obj/lib/Target/AArch64 -std=c++11 -Wdocumentation -Wno-documentation-deprecated-sync -fPIC -fvisibility-inlines-hidden -Werror=date-time -Werror=unguarded-availability-new -Wall -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wmissing-field-initializers -pedantic -Wno-long-long -Wc++98-compat-extra-semi -Wimplicit-fallthrough -Wcovered-switch-default -Wno-noexcept-type -Wnon-virtual-dtor -Wdelete-non-virtual-dtor -Wsuggest-override -Wstring-conversion -Wmisleading-indentation -Wctad-maybe-unsupported -fdiagnostics-color -ffunction-sections -fdata-sections -O3 -DNDEBUG  -fno-exceptions -funwind-tables -fno-rtti -UNDEBUG -std=c++17 -MD -MT tools/llvm-exegesis/lib/AArch64/CMakeFiles/LLVMExegesisAArch64.dir/Target.cpp.o -MF tools/llvm-exegesis/lib/AArch64/CMakeFiles/LLVMExegesisAArch64.dir/Target.cpp.o.d -o tools/llvm-exegesis/lib/AArch64/CMakeFiles/LLVMExegesisAArch64.dir/Target.cpp.o -c /b/1/clang-x86_64-debian-fast/llvm.src/llvm/tools/llvm-exegesis/lib/AArch64/Target.cpp
In file included from /b/1/clang-x86_64-debian-fast/llvm.src/llvm/tools/llvm-exegesis/lib/AArch64/Target.cpp:8:
In file included from /b/1/clang-x86_64-debian-fast/llvm.src/llvm/tools/llvm-exegesis/lib/AArch64/../Target.h:19:
In file included from /b/1/clang-x86_64-debian-fast/llvm.src/llvm/tools/llvm-exegesis/lib/AArch64/../BenchmarkResult.h:18:
In file included from /b/1/clang-x86_64-debian-fast/llvm.src/llvm/tools/llvm-exegesis/lib/AArch64/../LlvmState.h:25:
In file included from /b/1/clang-x86_64-debian-fast/llvm.src/llvm/include/llvm/Target/TargetMachine.h:19:
In file included from /b/1/clang-x86_64-debian-fast/llvm.src/llvm/include/llvm/MC/MCStreamer.h:30:
/b/1/clang-x86_64-debian-fast/llvm.src/llvm/include/llvm/TargetParser/ARMTargetParser.h:267:12: warning: parameter 'Arch' not found in the function declaration [-Wdocumentation]
/// \param Arch the architecture name (e.g., "armv7s"). If it is an empty
           ^~~~
/b/1/clang-x86_64-debian-fast/llvm.src/llvm/include/llvm/TargetParser/ARMTargetParser.h:267:12: note: did you mean 'MArch'?
/// \param Arch the architecture name (e.g., "armv7s"). If it is an empty
           ^~~~
           MArch
In file included from /b/1/clang-x86_64-debian-fast/llvm.src/llvm/tools/llvm-exegesis/lib/AArch64/Target.cpp:8:
In file included from /b/1/clang-x86_64-debian-fast/llvm.src/llvm/tools/llvm-exegesis/lib/AArch64/../Target.h:19:
In file included from /b/1/clang-x86_64-debian-fast/llvm.src/llvm/tools/llvm-exegesis/lib/AArch64/../BenchmarkResult.h:18:
In file included from /b/1/clang-x86_64-debian-fast/llvm.src/llvm/tools/llvm-exegesis/lib/AArch64/../LlvmState.h:25:
In file included from /b/1/clang-x86_64-debian-fast/llvm.src/llvm/include/llvm/Target/TargetMachine.h:19:
/b/1/clang-x86_64-debian-fast/llvm.src/llvm/include/llvm/MC/MCStreamer.h:631:14: warning: parameter 'Sym' not found in the function declaration [-Wdocumentation]
  /// \param Sym - The symbol on the .ref directive.
             ^~~
/b/1/clang-x86_64-debian-fast/llvm.src/llvm/include/llvm/MC/MCStreamer.h:631:14: note: did you mean 'Symbol'?
  /// \param Sym - The symbol on the .ref directive.
             ^~~
             Symbol
In file included from /b/1/clang-x86_64-debian-fast/llvm.src/llvm/tools/llvm-exegesis/lib/AArch64/Target.cpp:8:
In file included from /b/1/clang-x86_64-debian-fast/llvm.src/llvm/tools/llvm-exegesis/lib/AArch64/../Target.h:20:
In file included from /b/1/clang-x86_64-debian-fast/llvm.src/llvm/tools/llvm-exegesis/lib/AArch64/../BenchmarkRunner.h:18:
In file included from /b/1/clang-x86_64-debian-fast/llvm.src/llvm/tools/llvm-exegesis/lib/AArch64/../Assembler.h:24:
In file included from /b/1/clang-x86_64-debian-fast/llvm.src/llvm/include/llvm/CodeGen/MachineFunction.h:26:
In file included from /b/1/clang-x86_64-debian-fast/llvm.src/llvm/include/llvm/CodeGen/MachineBasicBlock.h:21:
In file included from /b/1/clang-x86_64-debian-fast/llvm.src/llvm/include/llvm/CodeGen/MachineInstr.h:25:
/b/1/clang-x86_64-debian-fast/llvm.src/llvm/include/llvm/CodeGen/MachineOperand.h:307:14: warning: parameter 'IntrinsicInfo' not found in the function declaration [-Wdocumentation]
  /// \param IntrinsicInfo - same as \p TRI.
             ^~~~~~~~~~~~~
/b/1/clang-x86_64-debian-fast/llvm.src/llvm/tools/llvm-exegesis/lib/AArch64/Target.cpp:195:17: error: use of undeclared identifier 'PR_PAC_SET_ENABLED_KEYS'
      if (prctl(PR_PAC_SET_ENABLED_KEYS,

@llvm-ci
Copy link
Collaborator

llvm-ci commented Apr 9, 2025

LLVM Buildbot has detected a new failure on builder llvm-x86_64-debian-dylib running on gribozavr4 while building llvm at step 5 "build-unified-tree".

Full details are available at: https://lab.llvm.org/buildbot/#/builders/60/builds/24236

Here is the relevant piece of the build log for the reference
Step 5 (build-unified-tree) failure: build (failure)
...
29.919 [2563/13/4704] Linking CXX static library lib/libLLVMARMCodeGen.a
29.919 [2563/12/4705] Linking CXX static library lib/libLLVMPowerPCCodeGen.a
29.924 [2562/12/4706] Linking CXX static library lib/libLLVMExegesisPowerPC.a
29.926 [2562/11/4707] Linking CXX static library lib/libLLVMRISCVCodeGen.a
29.928 [2561/11/4708] Linking CXX static library lib/libLLVMHexagonCodeGen.a
29.931 [2561/10/4709] Linking CXX static library lib/libLLVMExegesisRISCV.a
29.939 [2561/9/4710] Linking CXX static library lib/libLLVMX86CodeGen.a
29.941 [2560/9/4711] Linking CXX static library lib/libLLVMAArch64CodeGen.a
29.944 [2560/8/4712] Linking CXX static library lib/libLLVMExegesisX86.a
30.146 [2560/7/4713] Building CXX object tools/llvm-exegesis/lib/AArch64/CMakeFiles/LLVMExegesisAArch64.dir/Target.cpp.o
FAILED: tools/llvm-exegesis/lib/AArch64/CMakeFiles/LLVMExegesisAArch64.dir/Target.cpp.o 
CCACHE_CPP2=yes CCACHE_HASHDIR=yes /usr/bin/ccache /usr/bin/clang++ -DGTEST_HAS_RTTI=0 -DLLVM_BUILD_STATIC -D_DEBUG -D_GLIBCXX_ASSERTIONS -D_GNU_SOURCE -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -I/b/1/llvm-x86_64-debian-dylib/build/tools/llvm-exegesis/lib/AArch64 -I/b/1/llvm-x86_64-debian-dylib/llvm-project/llvm/tools/llvm-exegesis/lib/AArch64 -I/b/1/llvm-x86_64-debian-dylib/build/include -I/b/1/llvm-x86_64-debian-dylib/llvm-project/llvm/include -I/b/1/llvm-x86_64-debian-dylib/llvm-project/llvm/lib/Target/AArch64 -I/b/1/llvm-x86_64-debian-dylib/build/lib/Target/AArch64 -fPIC -fvisibility-inlines-hidden -Werror=date-time -Werror=unguarded-availability-new -Wall -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wmissing-field-initializers -pedantic -Wno-long-long -Wc++98-compat-extra-semi -Wimplicit-fallthrough -Wcovered-switch-default -Wno-noexcept-type -Wnon-virtual-dtor -Wdelete-non-virtual-dtor -Wsuggest-override -Wstring-conversion -Wmisleading-indentation -Wctad-maybe-unsupported -fdiagnostics-color -ffunction-sections -fdata-sections -O3 -DNDEBUG  -fno-exceptions -funwind-tables -fno-rtti -UNDEBUG -std=c++17 -MD -MT tools/llvm-exegesis/lib/AArch64/CMakeFiles/LLVMExegesisAArch64.dir/Target.cpp.o -MF tools/llvm-exegesis/lib/AArch64/CMakeFiles/LLVMExegesisAArch64.dir/Target.cpp.o.d -o tools/llvm-exegesis/lib/AArch64/CMakeFiles/LLVMExegesisAArch64.dir/Target.cpp.o -c /b/1/llvm-x86_64-debian-dylib/llvm-project/llvm/tools/llvm-exegesis/lib/AArch64/Target.cpp
/b/1/llvm-x86_64-debian-dylib/llvm-project/llvm/tools/llvm-exegesis/lib/AArch64/Target.cpp:195:17: error: use of undeclared identifier 'PR_PAC_SET_ENABLED_KEYS'
      if (prctl(PR_PAC_SET_ENABLED_KEYS,
                ^
1 error generated.
30.593 [2560/6/4714] Building AMDGPUGenAsmMatcher.inc...
30.875 [2560/5/4715] Building CXX object lib/LTO/CMakeFiles/LLVMLTO.dir/LTO.cpp.o
31.089 [2560/4/4716] Building AMDGPUGenInstrInfo.inc...
31.738 [2560/3/4717] Building AMDGPUGenGlobalISel.inc...
32.309 [2560/2/4718] Building AMDGPUGenRegisterBank.inc...
35.904 [2560/1/4719] Building AMDGPUGenRegisterInfo.inc...
ninja: build stopped: subcommand failed.

var-const pushed a commit to ldionne/llvm-project that referenced this pull request Apr 17, 2025
…ctions (llvm#132346)

[llvm-exegesis][AArch64] Disable pauth and ldgm as unsupported
instructions.
Skipping AUT and LDGM opcode variants which currently throws "illegal
instruction".
- Checking opcodes specifically for LDGM and AUT opcode instruction
variants.
- Gracefully exiting with " : Unsupported opcode:
isPointerAuth/isUncheckedAccess"
- Added corresponding test cases to check exit message.
var-const pushed a commit to ldionne/llvm-project that referenced this pull request Apr 17, 2025
llvm#134971)

…d instructions (llvm#132346)"

This reverts commit 559540d as it has
cause build failures in llvm-clang-x86_64-gcc-ubuntu
sjoerdmeijer pushed a commit that referenced this pull request Apr 28, 2025
…ctions fixed (#136868)

[llvm-exegesis][AArch64] Recommit: Disable pauth and ldgm as unsupported instructions.

Skipping AUT and LDGM opcode variants which currently throws "illegal
instruction".

Last pull request
[#132346](#132346) got reviewed
and merged but builder bot got failed. This was due to undefined
`PR_PAC_SET_ENABLED_KEYS` utilized were not defined in x86 arch,
resulting in build failure.

This is followup to merge the changes with following changes to fixup
the build failure.

Changes: 
- Fixed up the problem with arch specific check for `prctl` library
import
- Defining `PR_PAC_SET_ENABLED_KEYS` if undefined.
IanWood1 pushed a commit to IanWood1/llvm-project that referenced this pull request May 6, 2025
…ctions fixed (llvm#136868)

[llvm-exegesis][AArch64] Recommit: Disable pauth and ldgm as unsupported instructions.

Skipping AUT and LDGM opcode variants which currently throws "illegal
instruction".

Last pull request
[llvm#132346](llvm#132346) got reviewed
and merged but builder bot got failed. This was due to undefined
`PR_PAC_SET_ENABLED_KEYS` utilized were not defined in x86 arch,
resulting in build failure.

This is followup to merge the changes with following changes to fixup
the build failure.

Changes: 
- Fixed up the problem with arch specific check for `prctl` library
import
- Defining `PR_PAC_SET_ENABLED_KEYS` if undefined.
IanWood1 pushed a commit to IanWood1/llvm-project that referenced this pull request May 6, 2025
…ctions fixed (llvm#136868)

[llvm-exegesis][AArch64] Recommit: Disable pauth and ldgm as unsupported instructions.

Skipping AUT and LDGM opcode variants which currently throws "illegal
instruction".

Last pull request
[llvm#132346](llvm#132346) got reviewed
and merged but builder bot got failed. This was due to undefined
`PR_PAC_SET_ENABLED_KEYS` utilized were not defined in x86 arch,
resulting in build failure.

This is followup to merge the changes with following changes to fixup
the build failure.

Changes: 
- Fixed up the problem with arch specific check for `prctl` library
import
- Defining `PR_PAC_SET_ENABLED_KEYS` if undefined.
IanWood1 pushed a commit to IanWood1/llvm-project that referenced this pull request May 6, 2025
…ctions fixed (llvm#136868)

[llvm-exegesis][AArch64] Recommit: Disable pauth and ldgm as unsupported instructions.

Skipping AUT and LDGM opcode variants which currently throws "illegal
instruction".

Last pull request
[llvm#132346](llvm#132346) got reviewed
and merged but builder bot got failed. This was due to undefined
`PR_PAC_SET_ENABLED_KEYS` utilized were not defined in x86 arch,
resulting in build failure.

This is followup to merge the changes with following changes to fixup
the build failure.

Changes: 
- Fixed up the problem with arch specific check for `prctl` library
import
- Defining `PR_PAC_SET_ENABLED_KEYS` if undefined.
llvm-sync bot pushed a commit to arm/arm-toolchain that referenced this pull request May 6, 2025
…rted instructions fixed (#136868)

[llvm-exegesis][AArch64] Recommit: Disable pauth and ldgm as unsupported instructions.

Skipping AUT and LDGM opcode variants which currently throws "illegal
instruction".

Last pull request
[#132346](llvm/llvm-project#132346) got reviewed
and merged but builder bot got failed. This was due to undefined
`PR_PAC_SET_ENABLED_KEYS` utilized were not defined in x86 arch,
resulting in build failure.

This is followup to merge the changes with following changes to fixup
the build failure.

Changes:
- Fixed up the problem with arch specific check for `prctl` library
import
- Defining `PR_PAC_SET_ENABLED_KEYS` if undefined.
Ankur-0429 pushed a commit to Ankur-0429/llvm-project that referenced this pull request May 9, 2025
…ctions fixed (llvm#136868)

[llvm-exegesis][AArch64] Recommit: Disable pauth and ldgm as unsupported instructions.

Skipping AUT and LDGM opcode variants which currently throws "illegal
instruction".

Last pull request
[llvm#132346](llvm#132346) got reviewed
and merged but builder bot got failed. This was due to undefined
`PR_PAC_SET_ENABLED_KEYS` utilized were not defined in x86 arch,
resulting in build failure.

This is followup to merge the changes with following changes to fixup
the build failure.

Changes: 
- Fixed up the problem with arch specific check for `prctl` library
import
- Defining `PR_PAC_SET_ENABLED_KEYS` if undefined.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

7 participants