[PATCH] D147740: [llvm-profdata] Refactoring Sample Profile Reader to increase FDO build speed using MD5 as key to Sample Profile map
Rainer Orth via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Tue Jun 27 06:59:50 PDT 2023
ro added a comment.
This patch causes regressions on Solaris/sparcv9:
+ LLVM :: Transforms/SampleProfile/ctxsplit.ll
+ LLVM :: Transforms/SampleProfile/indirect-call.ll
+ LLVM :: Transforms/SampleProfile/profile-format.ll
+ LLVM :: tools/llvm-profdata/sample-nametable.test
+ LLVM-Unit :: ProfileData/./ProfileDataTests/26/194
All of the fail in the same way (using `indirect-call.ll` as an example):
Stack dump:
0. Program arguments: /var/llvm/dist-sparcv9-release-stage2-A-flang/tools/clang/stage2-bins/bin/opt -S /vol/llvm/src/llvm-project/dist/llvm/test/Transforms/SampleProfile/indirect-call.ll -passes=sample-profile -sample-profile-file=/vol/llvm/src/llvm-project/dist/llvm/test/Transforms/SampleProfile/Inputs/indirect-call.extbinary.afdo
Stack dump without symbol names (ensure you have llvm-symbolizer in your PATH or set the environment var `LLVM_SYMBOLIZER_PATH` to point to it):
0 opt 0x00000001063410ec llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) + 36
1 opt 0x00000001063419d8 SignalHandler(int) + 896
2 libc.so.1 0xffffffff7eec4f00 __sighndlr + 12
3 libc.so.1 0xffffffff7eeb77a8 call_user_handler + 1024
4 libc.so.1 0xffffffff7eeb7b68 sigacthandler + 160
5 opt 0x000000010726a738 llvm::sampleprof::SampleProfileReaderBinary::readSampleContextFromTable() + 556
6 opt 0x000000010726e370 llvm::sampleprof::SampleProfileReaderExtBinaryBase::readFuncOffsetTable() + 680
7 opt 0x000000010726bb88 llvm::sampleprof::SampleProfileReaderExtBinaryBase::readOneSection(unsigned char const*, unsigned long, llvm::sampleprof::SecHdrTableEntry const&) + 484
8 opt 0x000000010726f1bc llvm::sampleprof::SampleProfileReaderExtBinaryBase::readImpl() + 212
9 opt 0x0000000106d31128 llvm::SampleProfileLoaderPass::run(llvm::Module&, llvm::AnalysisManager<llvm::Module>&) + 2172
10 opt 0x0000000105c94770 llvm::PassManager<llvm::Module, llvm::AnalysisManager<llvm::Module>>::run(llvm::Module&, llvm::AnalysisManager<llvm::Module>&) + 480
11 opt 0x000000010373b650 llvm::runPassPipeline(llvm::StringRef, llvm::Module&, llvm::TargetMachine*, llvm::TargetLibraryInfoImpl*, llvm::ToolOutputFile*, llvm::ToolOutputFile*, llvm::ToolOutputFile*, llvm::StringRef, llvm::ArrayRef<llvm::PassPlugin>, llvm::opt_tool::OutputKind, llvm::opt_tool::VerifierKind, bool, bool, bool, bool, bool, bool) + 11052
12 opt 0x0000000103749cf0 main + 8592
13 opt 0x0000000103738544 _start + 100
FileCheck error: '<stdin>' is empty.
`truss` (the Solaris syscall tracer) shows
22092: Incurred fault #5, FLTACCESS %pc = 0x10726A738
22092: siginfo: SIGBUS BUS_ADRALN addr=0x1082ED3D3
22092: Received signal #10, SIGBUS [caught]
22092: siginfo: SIGBUS BUS_ADRALN addr=0x1082ED3D3
i.e. the code tries an unaligned access, which is a no-no on strict-alignment targets like SPARC.
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D147740/new/
https://reviews.llvm.org/D147740
More information about the llvm-commits
mailing list