<html>
<head>
<base href="https://bugs.llvm.org/">
</head>
<body><table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Bug ID</th>
<td><a class="bz_bug_link
bz_status_NEW "
title="NEW - [Linux Kernel] 5.14.6 exposes a Polly bug when using FullLTO No. 2/2"
href="https://bugs.llvm.org/show_bug.cgi?id=51964">51964</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>[Linux Kernel] 5.14.6 exposes a Polly bug when using FullLTO No. 2/2
</td>
</tr>
<tr>
<th>Product</th>
<td>Polly
</td>
</tr>
<tr>
<th>Version</th>
<td>unspecified
</td>
</tr>
<tr>
<th>Hardware</th>
<td>PC
</td>
</tr>
<tr>
<th>OS</th>
<td>Linux
</td>
</tr>
<tr>
<th>Status</th>
<td>NEW
</td>
</tr>
<tr>
<th>Severity</th>
<td>enhancement
</td>
</tr>
<tr>
<th>Priority</th>
<td>P
</td>
</tr>
<tr>
<th>Component</th>
<td>Optimizer
</td>
</tr>
<tr>
<th>Assignee</th>
<td>polly-dev@googlegroups.com
</td>
</tr>
<tr>
<th>Reporter</th>
<td>m.seyfarth@gmail.com
</td>
</tr>
<tr>
<th>CC</th>
<td>llvm-bugs@lists.llvm.org
</td>
</tr></table>
<p>
<div>
<pre>This is bug number 2 split our from <a class="bz_bug_link
bz_status_CONFIRMED "
title="CONFIRMED - [Linux Kernel] 5.14.6 exposes a Polly bug when using FullLTO No. 1/2"
href="show_bug.cgi?id=51960">https://bugs.llvm.org/show_bug.cgi?id=51960</a>
See also <a href="https://github.com/ClangBuiltLinux/linux/issues/1460">https://github.com/ClangBuiltLinux/linux/issues/1460</a> for more
background details, Kernel Makefile and related discussions with Nathan and
Nick.
$ cat simple-card-utils.i
struct {
int num_cpus;
int num_platforms;
} * asoc_simple_init_priv_dai_link;
int asoc_simple_init_priv_li_2, asoc_simple_init_priv_li_1_0_0,
asoc_simple_init_priv_li_0;
void asoc_simple_init_priv() {
int i;
asm goto("" : : : : l_yes);
l_yes:
i = 0;
for (; i < asoc_simple_init_priv_li_0; i++)
if (asoc_simple_init_priv_li_1_0_0)
asoc_simple_init_priv_dai_link[i].num_cpus = asoc_simple_init_priv_li_2;
else
asoc_simple_init_priv_dai_link[i].num_platforms = 0;
}
$ clang -O2 -mllvm -polly -mllvm -polly-invariant-load-hoisting -c -o /dev/null
simple-card-utils.i
clang:
/home/nathan/cbl/github/tc-build/llvm-project/llvm/lib/Transforms/Utils/BasicBlockUtils.cpp:1112:
llvm::BasicBlock *SplitBlockPredecessorsImpl(llvm::BasicBlock *,
ArrayRef<llvm::BasicBlock *>, const char *, llvm::DomTreeUpdater *,
llvm::DominatorTree *, llvm::LoopInfo *, llvm::MemorySSAUpdater *, bool):
Assertion `!isa<CallBrInst>(Preds[i]->getTerminator()) && "Cannot split an edge
from a CallBrInst"' failed.
PLEASE submit a bug report to <a href="https://bugs.llvm.org/">https://bugs.llvm.org/</a> and include the crash
backtrace, preprocessed source, and associated run script.
Stack dump:
0. Program arguments: clang -O2 -mllvm -polly -mllvm
-polly-invariant-load-hoisting -c -o /dev/null simple-card-utils.i
1. <eof> parser at end of file
2. Optimizer
#0 0x0000000002cb92d3 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int)
(/home/nathan/tmp/llvm-85b4b21c8bbad346d58a30154d2767c39cf3285a-assertions/bin/clang-14+0x2cb92d3)
#1 0x0000000002cb70fe llvm::sys::RunSignalHandlers()
(/home/nathan/tmp/llvm-85b4b21c8bbad346d58a30154d2767c39cf3285a-assertions/bin/clang-14+0x2cb70fe)
#2 0x0000000002c401e3 (anonymous
namespace)::CrashRecoveryContextImpl::HandleCrash(int, unsigned long)
CrashRecoveryContext.cpp:0:0
#3 0x0000000002c4035e CrashRecoverySignalHandler(int)
CrashRecoveryContext.cpp:0:0
#4 0x00007f9682b54870 __restore_rt sigaction.c:0:0
#5 0x00007f968260ed22 raise (/usr/lib/libc.so.6+0x3cd22)
#6 0x00007f96825f8862 abort (/usr/lib/libc.so.6+0x26862)
#7 0x00007f96825f8747 _nl_load_domain.cold loadmsgcat.c:0:0
#8 0x00007f9682607616 (/usr/lib/libc.so.6+0x35616)
#9 0x0000000002ccd6b7 SplitBlockPredecessorsImpl(llvm::BasicBlock*,
llvm::ArrayRef<llvm::BasicBlock*>, char const*, llvm::DomTreeUpdater*,
llvm::DominatorTree*, llvm::LoopInfo*, llvm::MemorySSAUpdater*, bool)
BasicBlockUtils.cpp:0:0
#10 0x0000000002ccbfbf llvm::SplitBlockPredecessors(llvm::BasicBlock*,
llvm::ArrayRef<llvm::BasicBlock*>, char const*, llvm::DominatorTree*,
llvm::LoopInfo*, llvm::MemorySSAUpdater*, bool)
(/home/nathan/tmp/llvm-85b4b21c8bbad346d58a30154d2767c39cf3285a-assertions/bin/clang-14+0x2ccbfbf)
#11 0x0000000003e1ae8b polly::simplifyRegion(llvm::Region*,
llvm::DominatorTree*, llvm::LoopInfo*, llvm::RegionInfo*)
(/home/nathan/tmp/llvm-85b4b21c8bbad346d58a30154d2767c39cf3285a-assertions/bin/clang-14+0x3e1ae8b)
#12 0x0000000003d5ba19 generateCode(polly::Scop&, polly::IslAstInfo&,
llvm::LoopInfo&, llvm::DominatorTree&, llvm::ScalarEvolution&,
llvm::RegionInfo&) CodeGeneration.cpp:0:0
#13 0x0000000003d5b6cf polly::CodeGenerationPass::run(polly::Scop&,
llvm::AnalysisManager<polly::Scop, polly::ScopStandardAnalysisResults&>&,
polly::ScopStandardAnalysisResults&, polly::SPMUpdater&)
(/home/nathan/tmp/llvm-85b4b21c8bbad346d58a30154d2767c39cf3285a-assertions/bin/clang-14+0x3d5b6cf)
#14 0x0000000003d4e63d llvm::detail::PassModel<polly::Scop,
polly::CodeGenerationPass, llvm::PreservedAnalyses,
llvm::AnalysisManager<polly::Scop, polly::ScopStandardAnalysisResults&>,
polly::ScopStandardAnalysisResults&, polly::SPMUpdater&>::run(polly::Scop&,
llvm::AnalysisManager<polly::Scop, polly::ScopStandardAnalysisResults&>&,
polly::ScopStandardAnalysisResults&, polly::SPMUpdater&) RegisterPasses.cpp:0:0
#15 0x0000000003dbe2f5 llvm::PassManager<polly::Scop,
llvm::AnalysisManager<polly::Scop, polly::ScopStandardAnalysisResults&>,
polly::ScopStandardAnalysisResults&, polly::SPMUpdater&>::run(polly::Scop&,
llvm::AnalysisManager<polly::Scop, polly::ScopStandardAnalysisResults&>&,
polly::ScopStandardAnalysisResults&, polly::SPMUpdater&)
(/home/nathan/tmp/llvm-85b4b21c8bbad346d58a30154d2767c39cf3285a-assertions/bin/clang-14+0x3dbe2f5)
#16 0x0000000003d49840
polly::FunctionToScopPassAdaptor<llvm::PassManager<polly::Scop,
llvm::AnalysisManager<polly::Scop, polly::ScopStandardAnalysisResults&>,
polly::ScopStandardAnalysisResults&, polly::SPMUpdater&>
<span class="quote">>::run(llvm::Function&, llvm::AnalysisManager<llvm::Function>&)</span >
RegisterPasses.cpp:0:0
#17 0x0000000003d4921d llvm::detail::PassModel<llvm::Function,
polly::FunctionToScopPassAdaptor<llvm::PassManager<polly::Scop,
llvm::AnalysisManager<polly::Scop, polly::ScopStandardAnalysisResults&>,
polly::ScopStandardAnalysisResults&, polly::SPMUpdater&> >,
llvm::PreservedAnalyses, llvm::AnalysisManager<llvm::Function>
<span class="quote">>::run(llvm::Function&, llvm::AnalysisManager<llvm::Function>&)</span >
RegisterPasses.cpp:0:0
#18 0x0000000002555d31 llvm::PassManager<llvm::Function,
llvm::AnalysisManager<llvm::Function> >::run(llvm::Function&,
llvm::AnalysisManager<llvm::Function>&)
(/home/nathan/tmp/llvm-85b4b21c8bbad346d58a30154d2767c39cf3285a-assertions/bin/clang-14+0x2555d31)
#19 0x00000000033d601d llvm::detail::PassModel<llvm::Function,
llvm::PassManager<llvm::Function, llvm::AnalysisManager<llvm::Function> >,
llvm::PreservedAnalyses, llvm::AnalysisManager<llvm::Function>
<span class="quote">>::run(llvm::Function&, llvm::AnalysisManager<llvm::Function>&)</span >
BackendUtil.cpp:0:0
#20 0x0000000002559404 llvm::ModuleToFunctionPassAdaptor::run(llvm::Module&,
llvm::AnalysisManager<llvm::Module>&)
(/home/nathan/tmp/llvm-85b4b21c8bbad346d58a30154d2767c39cf3285a-assertions/bin/clang-14+0x2559404)
#21 0x00000000033d82dd llvm::detail::PassModel<llvm::Module,
llvm::ModuleToFunctionPassAdaptor, llvm::PreservedAnalyses,
llvm::AnalysisManager<llvm::Module> >::run(llvm::Module&,
llvm::AnalysisManager<llvm::Module>&) BackendUtil.cpp:0:0
#22 0x0000000002554a74 llvm::PassManager<llvm::Module,
llvm::AnalysisManager<llvm::Module> >::run(llvm::Module&,
llvm::AnalysisManager<llvm::Module>&)
(/home/nathan/tmp/llvm-85b4b21c8bbad346d58a30154d2767c39cf3285a-assertions/bin/clang-14+0x2554a74)
#23 0x00000000033cbea2 (anonymous
namespace)::EmitAssemblyHelper::EmitAssemblyWithNewPassManager(clang::BackendAction,
std::unique_ptr<llvm::raw_pwrite_stream,
std::default_delete<llvm::raw_pwrite_stream> >) BackendUtil.cpp:0:0
#24 0x00000000033c6707 clang::EmitBackendOutput(clang::DiagnosticsEngine&,
clang::HeaderSearchOptions const&, clang::CodeGenOptions const&,
clang::TargetOptions const&, clang::LangOptions const&, llvm::StringRef,
llvm::Module*, clang::BackendAction, std::unique_ptr<llvm::raw_pwrite_stream,
std::default_delete<llvm::raw_pwrite_stream> >)
(/home/nathan/tmp/llvm-85b4b21c8bbad346d58a30154d2767c39cf3285a-assertions/bin/clang-14+0x33c6707)
#25 0x00000000037f6b10
clang::BackendConsumer::HandleTranslationUnit(clang::ASTContext&)
CodeGenAction.cpp:0:0
#26 0x00000000041506f4 clang::ParseAST(clang::Sema&, bool, bool)
(/home/nathan/tmp/llvm-85b4b21c8bbad346d58a30154d2767c39cf3285a-assertions/bin/clang-14+0x41506f4)
#27 0x0000000003744600 clang::FrontendAction::Execute()
(/home/nathan/tmp/llvm-85b4b21c8bbad346d58a30154d2767c39cf3285a-assertions/bin/clang-14+0x3744600)
#28 0x00000000036bd24f
clang::CompilerInstance::ExecuteAction(clang::FrontendAction&)
(/home/nathan/tmp/llvm-85b4b21c8bbad346d58a30154d2767c39cf3285a-assertions/bin/clang-14+0x36bd24f)
#29 0x00000000037f05f7
clang::ExecuteCompilerInvocation(clang::CompilerInstance*)
(/home/nathan/tmp/llvm-85b4b21c8bbad346d58a30154d2767c39cf3285a-assertions/bin/clang-14+0x37f05f7)
#30 0x00000000019e43fb cc1_main(llvm::ArrayRef<char const*>, char const*,
void*)
(/home/nathan/tmp/llvm-85b4b21c8bbad346d58a30154d2767c39cf3285a-assertions/bin/clang-14+0x19e43fb)
#31 0x00000000019e1f5d ExecuteCC1Tool(llvm::SmallVectorImpl<char const*>&)
driver.cpp:0:0
#32 0x00000000035549d2 void llvm::function_ref<void
()>::callback_fn<clang::driver::CC1Command::Execute(llvm::ArrayRef<llvm::Optional<llvm::StringRef>
<span class="quote">>, std::__cxx11::basic_string<char, std::char_traits<char>,</span >
std::allocator<char> >*, bool*) const::$_1>(long) Job.cpp:0:0
#33 0x0000000002c400f7
llvm::CrashRecoveryContext::RunSafely(llvm::function_ref<void ()>)
(/home/nathan/tmp/llvm-85b4b21c8bbad346d58a30154d2767c39cf3285a-assertions/bin/clang-14+0x2c400f7)
#34 0x0000000003554537
clang::driver::CC1Command::Execute(llvm::ArrayRef<llvm::Optional<llvm::StringRef>
<span class="quote">>, std::__cxx11::basic_string<char, std::char_traits<char>,</span >
std::allocator<char> >*, bool*) const
(/home/nathan/tmp/llvm-85b4b21c8bbad346d58a30154d2767c39cf3285a-assertions/bin/clang-14+0x3554537)
#35 0x000000000351c968
clang::driver::Compilation::ExecuteCommand(clang::driver::Command const&,
clang::driver::Command const*&) const
(/home/nathan/tmp/llvm-85b4b21c8bbad346d58a30154d2767c39cf3285a-assertions/bin/clang-14+0x351c968)
#36 0x000000000351cc37
clang::driver::Compilation::ExecuteJobs(clang::driver::JobList const&,
llvm::SmallVectorImpl<std::pair<int, clang::driver::Command const*> >&) const
(/home/nathan/tmp/llvm-85b4b21c8bbad346d58a30154d2767c39cf3285a-assertions/bin/clang-14+0x351cc37)
#37 0x0000000003535141
clang::driver::Driver::ExecuteCompilation(clang::driver::Compilation&,
llvm::SmallVectorImpl<std::pair<int, clang::driver::Command const*> >&)
(/home/nathan/tmp/llvm-85b4b21c8bbad346d58a30154d2767c39cf3285a-assertions/bin/clang-14+0x3535141)
#38 0x00000000019e1841 main
(/home/nathan/tmp/llvm-85b4b21c8bbad346d58a30154d2767c39cf3285a-assertions/bin/clang-14+0x19e1841)
#39 0x00007f96825f9b25 __libc_start_main (/usr/lib/libc.so.6+0x27b25)
#40 0x00000000019ded8e _start
(/home/nathan/tmp/llvm-85b4b21c8bbad346d58a30154d2767c39cf3285a-assertions/bin/clang-14+0x19ded8e)
clang-14: error: clang frontend command failed with exit code 134 (use -v to
see invocation)
ClangBuiltLinux clang version 14.0.0 (<a href="https://github.com/llvm/llvm-project">https://github.com/llvm/llvm-project</a>
85b4b21c8bbad346d58a30154d2767c39cf3285a)
Target: x86_64-unknown-linux-gnu
Thread model: posix
InstalledDir:
/home/nathan/tmp/llvm-85b4b21c8bbad346d58a30154d2767c39cf3285a-assertions/bin
clang-14: note: diagnostic msg: Error generating preprocessed source(s) - no
preprocessable inputs.
See <a href="https://github.com/ClangBuiltLinux/linux/issues/1460#issuecomment-924230262">https://github.com/ClangBuiltLinux/linux/issues/1460#issuecomment-924230262</a>
and related messages there for additional findings.</pre>
</div>
</p>
<hr>
<span>You are receiving this mail because:</span>
<ul>
<li>You are on the CC list for the bug.</li>
</ul>
</body>
</html>