Skip to content

[Hexagon] Register MachineKCFILegacy pass in LLVMInitializeHexagonTarget#209245

Merged
androm3da merged 1 commit into
llvm:mainfrom
androm3da:hexagon-kcfi-pass-registration
Jul 14, 2026
Merged

[Hexagon] Register MachineKCFILegacy pass in LLVMInitializeHexagonTarget#209245
androm3da merged 1 commit into
llvm:mainfrom
androm3da:hexagon-kcfi-pass-registration

Conversation

@androm3da

Copy link
Copy Markdown
Member

Hexagon's target-init function never called
initializeMachineKCFILegacyPass(PR), unlike X86, ARM, AArch64, and RISCV. Since PassRegistry is process-wide and each target's init function registers passes as a side effect when linked into the same binary, whether test/CodeGen/Hexagon/kcfi.ll passed depended on whether some other target providing that registration was also built into llc, rather than on Hexagon's own configuration.

Hexagon's target-init function never called
initializeMachineKCFILegacyPass(PR), unlike X86, ARM, AArch64, and
RISCV. Since PassRegistry is process-wide and each target's init
function registers passes as a side effect when linked into the same
binary, whether test/CodeGen/Hexagon/kcfi.ll passed depended on
whether some other target providing that registration was also built
into llc, rather than on Hexagon's own configuration.
@llvmorg-github-actions

Copy link
Copy Markdown

@llvm/pr-subscribers-backend-hexagon

Author: Brian Cain (androm3da)

Changes

Hexagon's target-init function never called
initializeMachineKCFILegacyPass(PR), unlike X86, ARM, AArch64, and RISCV. Since PassRegistry is process-wide and each target's init function registers passes as a side effect when linked into the same binary, whether test/CodeGen/Hexagon/kcfi.ll passed depended on whether some other target providing that registration was also built into llc, rather than on Hexagon's own configuration.


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

1 Files Affected:

  • (modified) llvm/lib/Target/Hexagon/HexagonTargetMachine.cpp (+2)
diff --git a/llvm/lib/Target/Hexagon/HexagonTargetMachine.cpp b/llvm/lib/Target/Hexagon/HexagonTargetMachine.cpp
index 6171a60f33366..7811c56928084 100644
--- a/llvm/lib/Target/Hexagon/HexagonTargetMachine.cpp
+++ b/llvm/lib/Target/Hexagon/HexagonTargetMachine.cpp
@@ -24,6 +24,7 @@
 #include "llvm/CodeGen/Passes.h"
 #include "llvm/CodeGen/TargetPassConfig.h"
 #include "llvm/CodeGen/VLIWMachineScheduler.h"
+#include "llvm/InitializePasses.h"
 #include "llvm/MC/TargetRegistry.h"
 #include "llvm/Passes/PassBuilder.h"
 #include "llvm/Support/CommandLine.h"
@@ -250,6 +251,7 @@ LLVMInitializeHexagonTarget() {
   initializeHexagonQFPOptimizerPass(PR);
   initializeHexagonXQFloatGeneratorPass(PR);
   initializeHexagonPostRAHandleQFPPass(PR);
+  initializeMachineKCFILegacyPass(PR);
 }
 
 HexagonTargetMachine::HexagonTargetMachine(const Target &T, const Triple &TT,

@androm3da androm3da requested review from svs-quic and yandalur July 13, 2026 19:51

@svs-quic svs-quic left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

LGTM!

@androm3da androm3da merged commit 4058610 into llvm:main Jul 14, 2026
13 checks passed
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.

2 participants