[PATCH] D107830: [AIX] Don't crash on unimplemented lowerRelativeReference
Jinsong Ji via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Tue Aug 10 09:40:13 PDT 2021
jsji updated this revision to Diff 365515.
jsji added a comment.
Add reduced testcase.
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D107830/new/
https://reviews.llvm.org/D107830
Files:
llvm/lib/CodeGen/TargetLoweringObjectFileImpl.cpp
llvm/test/CodeGen/PowerPC/aix-relativeref.ll
Index: llvm/test/CodeGen/PowerPC/aix-relativeref.ll
===================================================================
--- /dev/null
+++ llvm/test/CodeGen/PowerPC/aix-relativeref.ll
@@ -0,0 +1,20 @@
+; RUN: llc -verify-machineinstrs -mtriple powerpc64-ibm-aix-xcoff < %s | \
+; RUN: FileCheck --check-prefix=ASM %s
+
+ at __profc_main = private global [1 x i64] zeroinitializer, section "__llvm_prf_cnts", align 8
+ at __profd_main = private global { i64, i64, i64, i8*, i8*, i32, [4 x i16] } { i64 -2624081020897602054, i64 742261418966908927, i64 sub (i64 ptrtoint ([1 x i64]* @__profc_main to i64), i64 ptrtoint ({ i64, i64, i64, i8*, i8*, i32, [4 x i16] }* @__profd_main to i64)), i8* bitcast (i32 ()* @main to i8*), i8* null, i32 1, [4 x i16] zeroinitializer }, section "__llvm_prf_data", align 8
+
+; Test fallback of using sub expr for lowerRelativeReference
+define signext i32 @main() {
+; ASM-LABEL: main:
+; ASM: L..__profd_main:
+; ASM: .vbyte 8, L..__profc_main-L..__profd_main
+entry:
+ %pgocount = load i64, i64* getelementptr inbounds ([1 x i64], [1 x i64]* @__profc_main, i64 0, i64 0), align 8
+ %0 = add i64 %pgocount, 1
+ store i64 %0, i64* getelementptr inbounds ([1 x i64], [1 x i64]* @__profc_main, i64 0, i64 0), align 8
+ %retval = alloca i32, align 4
+ store i32 0, i32* %retval, align 4
+ ret i32 0
+}
+
Index: llvm/lib/CodeGen/TargetLoweringObjectFileImpl.cpp
===================================================================
--- llvm/lib/CodeGen/TargetLoweringObjectFileImpl.cpp
+++ llvm/lib/CodeGen/TargetLoweringObjectFileImpl.cpp
@@ -2456,7 +2456,8 @@
const MCExpr *TargetLoweringObjectFileXCOFF::lowerRelativeReference(
const GlobalValue *LHS, const GlobalValue *RHS,
const TargetMachine &TM) const {
- report_fatal_error("XCOFF not yet implemented.");
+ /* Not implemented yet, but don't crash, return nullptr. */
+ return nullptr;
}
XCOFF::StorageClass
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D107830.365515.patch
Type: text/x-patch
Size: 1921 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20210810/06fb3c58/attachment.bin>
More information about the llvm-commits
mailing list