[llvm-bugs] [Bug 52064] New: fatal error: error in backend: Invalid size request on a scalable vector

via llvm-bugs llvm-bugs at lists.llvm.org
Mon Oct 4 04:34:16 PDT 2021


https://bugs.llvm.org/show_bug.cgi?id=52064

            Bug ID: 52064
           Summary: fatal error: error in backend: Invalid size request on
                    a scalable vector
           Product: new-bugs
           Version: unspecified
          Hardware: PC
                OS: All
            Status: NEW
          Severity: normal
          Priority: P
         Component: new bugs
          Assignee: unassignedbugs at nondot.org
          Reporter: gilles at rist.or.jp
                CC: htmldeveloper at gmail.com, llvm-bugs at lists.llvm.org

Created attachment 25322
  --> https://bugs.llvm.org/attachment.cgi?id=25322&action=edit
reproducer (preprocessed and script)

The attached reproducer can be used to evidence a crash with LLVM 13.0.0.
/* Version 13.0 is currently available in this bugzilla */


The test passes with LLVM 12.0.0 and the main branch.

FWIW, a workaround is to replace the SimdFBool constructor with

    this->simdInternal_ = svdup_n_b32(b);

This works find with LLVM 13.0.0 and above, but fails with LLVM 12.0.1, and it
seems the root cause is __builtin_sve_svdup_n_b32() subroutine is not
implemented
(please let me know if you want me top open an other bug for that)


$ cat reproducer.cpp
#include <arm_sve.h>

class SimdFBool
{
private:
    typedef svbool_t simdInternalType_
__attribute__((arm_sve_vector_bits(512)));

public:

    SimdFBool(const bool b)
    {
        this->simdInternal_ = b?svptrue_b32():svpfalse_b();
    }

    simdInternalType_ simdInternal_;
};

static inline bool anyTrue(SimdFBool a)
{
    svbool_t pg = svptrue_b32();
    return svptest_any(pg, a.simdInternal_);
}

void _settleTemplate(
                           bool*              bErrorHasOccurred)
{
    SimdFBool bError = SimdFBool(false);

    *bErrorHasOccurred = anyTrue(bError);
}

$ clang++ -march=armv8.2-a+sve -O1 -msve-vector-bits=512  -c reproducer.cpp
fatal error: error in backend: Invalid size request on a scalable vector.
PLEASE submit a bug report to https://bugs.llvm.org/ and include the crash
backtrace, preprocessed source, and associated run script.
Stack dump:
0.      Program arguments: clang++ -march=armv8.2-a+sve -O1
-msve-vector-bits=512 -c reproducer.cpp
1.      <eof> parser at end of file
2.      Optimizer
 #0 0x000000000296cacc PrintStackTraceSignalHandler(void*) Signals.cpp:0:0
 #1 0x000000000296b070 llvm::sys::CleanupOnSignal(unsigned long)
(/home/users/EDITED/local/llvm-13.0.0/bin/clang-13+0x296b070)
 #2 0x00000000028d33f4 llvm::CrashRecoveryContext::HandleExit(int)
(/home/users/EDITED/local/llvm-13.0.0/bin/clang-13+0x28d33f4)
 #3 0x0000000002965274 llvm::sys::Process::Exit(int, bool)
(/home/users/EDITED/local/llvm-13.0.0/bin/clang-13+0x2965274)
 #4 0x00000000009a77f4 LLVMErrorHandler(void*, std::__cxx11::basic_string<char,
std::char_traits<char>, std::allocator<char> > const&, bool) cc1_main.cpp:0:0
 #5 0x00000000028d9994 llvm::report_fatal_error(llvm::Twine const&, bool)
(/home/users/EDITED/local/llvm-13.0.0/bin/clang-13+0x28d9994)
 #6 0x00000000028d9b10 llvm::install_bad_alloc_error_handler(void (*)(void*,
std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >
const&, bool), void*)
(/home/users/EDITED/local/llvm-13.0.0/bin/clang-13+0x28d9b10)
 #7 0x000000000291dc6c
(/home/users/EDITED/local/llvm-13.0.0/bin/clang-13+0x291dc6c)
 #8 0x000000000291dca8 llvm::TypeSize::operator unsigned long() const
(/home/users/EDITED/local/llvm-13.0.0/bin/clang-13+0x291dca8)
 #9 0x0000000001a88ad0 llvm::ConstantFoldLoadThroughBitcast(llvm::Constant*,
llvm::Type*, llvm::DataLayout const&)
(/home/users/EDITED/local/llvm-13.0.0/bin/clang-13+0x1a88ad0)
#10 0x0000000001b13ea4 llvm::FindAvailableLoadedValue(llvm::LoadInst*,
llvm::AAResults&, bool*, unsigned int)
(/home/users/EDITED/local/llvm-13.0.0/bin/clang-13+0x1b13ea4)
#11 0x0000000002462730 llvm::InstCombinerImpl::visitLoadInst(llvm::LoadInst&)
(/home/users/EDITED/local/llvm-13.0.0/bin/clang-13+0x2462730)
#12 0x00000000023d9954 llvm::InstCombinerImpl::run()
(/home/users/EDITED/local/llvm-13.0.0/bin/clang-13+0x23d9954)
#13 0x00000000023db930 combineInstructionsOverFunction(llvm::Function&,
llvm::InstCombineWorklist&, llvm::AAResults*, llvm::AssumptionCache&,
llvm::TargetLibraryInfo&, llvm::TargetTransformInfo&, llvm::DominatorTree&,
llvm::OptimizationRemarkEmitter&, llvm::BlockFrequencyInfo*,
llvm::ProfileSummaryInfo*, unsigned int, llvm::LoopInfo*)
InstructionCombining.cpp:0:0
#14 0x00000000023dc8f8 llvm::InstCombinePass::run(llvm::Function&,
llvm::AnalysisManager<llvm::Function>&)
(/home/users/EDITED/local/llvm-13.0.0/bin/clang-13+0x23dc8f8)
#15 0x00000000037eb728 llvm::detail::PassModel<llvm::Function,
llvm::InstCombinePass, llvm::PreservedAnalyses,
llvm::AnalysisManager<llvm::Function> >::run(llvm::Function&,
llvm::AnalysisManager<llvm::Function>&)
(/home/users/EDITED/local/llvm-13.0.0/bin/clang-13+0x37eb728)
#16 0x0000000000beccb0 llvm::detail::PassModel<llvm::Function,
llvm::PassManager<llvm::Function, llvm::AnalysisManager<llvm::Function> >,
llvm::PreservedAnalyses, llvm::AnalysisManager<llvm::Function>
>::run(llvm::Function&, llvm::AnalysisManager<llvm::Function>&)
(/home/users/EDITED/local/llvm-13.0.0/bin/clang-13+0xbeccb0)
#17 0x0000000001a708ac
llvm::CGSCCToFunctionPassAdaptor::run(llvm::LazyCallGraph::SCC&,
llvm::AnalysisManager<llvm::LazyCallGraph::SCC, llvm::LazyCallGraph&>&,
llvm::LazyCallGraph&, llvm::CGSCCUpdateResult&)
(/home/users/EDITED/local/llvm-13.0.0/bin/clang-13+0x1a708ac)
#18 0x0000000000be1f58 llvm::detail::PassModel<llvm::LazyCallGraph::SCC,
llvm::CGSCCToFunctionPassAdaptor, llvm::PreservedAnalyses,
llvm::AnalysisManager<llvm::LazyCallGraph::SCC, llvm::LazyCallGraph&>,
llvm::LazyCallGraph&, llvm::CGSCCUpdateResult&>::run(llvm::LazyCallGraph::SCC&,
llvm::AnalysisManager<llvm::LazyCallGraph::SCC, llvm::LazyCallGraph&>&,
llvm::LazyCallGraph&, llvm::CGSCCUpdateResult&)
(/home/users/EDITED/local/llvm-13.0.0/bin/clang-13+0xbe1f58)
#19 0x0000000001a6a7e8 llvm::PassManager<llvm::LazyCallGraph::SCC,
llvm::AnalysisManager<llvm::LazyCallGraph::SCC, llvm::LazyCallGraph&>,
llvm::LazyCallGraph&, llvm::CGSCCUpdateResult&>::run(llvm::LazyCallGraph::SCC&,
llvm::AnalysisManager<llvm::LazyCallGraph::SCC, llvm::LazyCallGraph&>&,
llvm::LazyCallGraph&, llvm::CGSCCUpdateResult&)
(/home/users/EDITED/local/llvm-13.0.0/bin/clang-13+0x1a6a7e8)
#20 0x00000000022eb968 llvm::detail::PassModel<llvm::LazyCallGraph::SCC,
llvm::PassManager<llvm::LazyCallGraph::SCC,
llvm::AnalysisManager<llvm::LazyCallGraph::SCC, llvm::LazyCallGraph&>,
llvm::LazyCallGraph&, llvm::CGSCCUpdateResult&>, llvm::PreservedAnalyses,
llvm::AnalysisManager<llvm::LazyCallGraph::SCC, llvm::LazyCallGraph&>,
llvm::LazyCallGraph&, llvm::CGSCCUpdateResult&>::run(llvm::LazyCallGraph::SCC&,
llvm::AnalysisManager<llvm::LazyCallGraph::SCC, llvm::LazyCallGraph&>&,
llvm::LazyCallGraph&, llvm::CGSCCUpdateResult&)
(/home/users/EDITED/local/llvm-13.0.0/bin/clang-13+0x22eb968)
#21 0x0000000001a6dab4
llvm::DevirtSCCRepeatedPass::run(llvm::LazyCallGraph::SCC&,
llvm::AnalysisManager<llvm::LazyCallGraph::SCC, llvm::LazyCallGraph&>&,
llvm::LazyCallGraph&, llvm::CGSCCUpdateResult&)
(/home/users/EDITED/local/llvm-13.0.0/bin/clang-13+0x1a6dab4)
#22 0x00000000022eb938 llvm::detail::PassModel<llvm::LazyCallGraph::SCC,
llvm::DevirtSCCRepeatedPass, llvm::PreservedAnalyses,
llvm::AnalysisManager<llvm::LazyCallGraph::SCC, llvm::LazyCallGraph&>,
llvm::LazyCallGraph&, llvm::CGSCCUpdateResult&>::run(llvm::LazyCallGraph::SCC&,
llvm::AnalysisManager<llvm::LazyCallGraph::SCC, llvm::LazyCallGraph&>&,
llvm::LazyCallGraph&, llvm::CGSCCUpdateResult&)
(/home/users/EDITED/local/llvm-13.0.0/bin/clang-13+0x22eb938)
#23 0x0000000001a6b654
llvm::ModuleToPostOrderCGSCCPassAdaptor::run(llvm::Module&,
llvm::AnalysisManager<llvm::Module>&)
(/home/users/EDITED/local/llvm-13.0.0/bin/clang-13+0x1a6b654)
#24 0x00000000022ef22c llvm::ModuleInlinerWrapperPass::run(llvm::Module&,
llvm::AnalysisManager<llvm::Module>&)
(/home/users/EDITED/local/llvm-13.0.0/bin/clang-13+0x22ef22c)
#25 0x00000000037ec7d8 llvm::detail::PassModel<llvm::Module,
llvm::ModuleInlinerWrapperPass, llvm::PreservedAnalyses,
llvm::AnalysisManager<llvm::Module> >::run(llvm::Module&,
llvm::AnalysisManager<llvm::Module>&)
(/home/users/EDITED/local/llvm-13.0.0/bin/clang-13+0x37ec7d8)
#26 0x00000000021ea2d4 llvm::PassManager<llvm::Module,
llvm::AnalysisManager<llvm::Module> >::run(llvm::Module&,
llvm::AnalysisManager<llvm::Module>&)
(/home/users/EDITED/local/llvm-13.0.0/bin/clang-13+0x21ea2d4)
#27 0x0000000002c193d0 (anonymous
namespace)::EmitAssemblyHelper::EmitAssemblyWithNewPassManager(clang::BackendAction,
std::unique_ptr<llvm::raw_pwrite_stream,
std::default_delete<llvm::raw_pwrite_stream> >) (.constprop.0)
BackendUtil.cpp:0:0
#28 0x0000000002c1d484 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/users/EDITED/local/llvm-13.0.0/bin/clang-13+0x2c1d484)
#29 0x0000000003791e24
clang::BackendConsumer::HandleTranslationUnit(clang::ASTContext&)
(/home/users/EDITED/local/llvm-13.0.0/bin/clang-13+0x3791e24)
#30 0x00000000040aec40 clang::ParseAST(clang::Sema&, bool, bool)
(/home/users/EDITED/local/llvm-13.0.0/bin/clang-13+0x40aec40)
#31 0x00000000031c439c clang::FrontendAction::Execute()
(/home/users/EDITED/local/llvm-13.0.0/bin/clang-13+0x31c439c)
#32 0x000000000316add8
clang::CompilerInstance::ExecuteAction(clang::FrontendAction&)
(/home/users/EDITED/local/llvm-13.0.0/bin/clang-13+0x316add8)
#33 0x00000000032640dc
clang::ExecuteCompilerInvocation(clang::CompilerInstance*)
(/home/users/EDITED/local/llvm-13.0.0/bin/clang-13+0x32640dc)
#34 0x00000000009a81dc cc1_main(llvm::ArrayRef<char const*>, char const*,
void*) (/home/users/EDITED/local/llvm-13.0.0/bin/clang-13+0x9a81dc)
#35 0x00000000009a5a30 ExecuteCC1Tool(llvm::SmallVectorImpl<char const*>&)
driver.cpp:0:0
#36 0x000000000303904c void llvm::function_ref<void
()>::callback_fn<clang::driver::CC1Command::Execute(llvm::ArrayRef<llvm::Optional<llvm::StringRef>
>, std::__cxx11::basic_string<char, std::char_traits<char>,
std::allocator<char> >*, bool*) const::'lambda'()>(long) Job.cpp:0:0
#37 0x00000000028d3228
llvm::CrashRecoveryContext::RunSafely(llvm::function_ref<void ()>)
(/home/users/EDITED/local/llvm-13.0.0/bin/clang-13+0x28d3228)
#38 0x00000000030393d0
clang::driver::CC1Command::Execute(llvm::ArrayRef<llvm::Optional<llvm::StringRef>
>, std::__cxx11::basic_string<char, std::char_traits<char>,
std::allocator<char> >*, bool*) const (.part.0) Job.cpp:0:0
#39 0x0000000003014e6c
clang::driver::Compilation::ExecuteCommand(clang::driver::Command const&,
clang::driver::Command const*&) const
(/home/users/EDITED/local/llvm-13.0.0/bin/clang-13+0x3014e6c)
#40 0x0000000003015604
clang::driver::Compilation::ExecuteJobs(clang::driver::JobList const&,
llvm::SmallVectorImpl<std::pair<int, clang::driver::Command const*> >&) const
(/home/users/EDITED/local/llvm-13.0.0/bin/clang-13+0x3015604)
#41 0x0000000003021e28
clang::driver::Driver::ExecuteCompilation(clang::driver::Compilation&,
llvm::SmallVectorImpl<std::pair<int, clang::driver::Command const*> >&)
(/home/users/EDITED/local/llvm-13.0.0/bin/clang-13+0x3021e28)
#42 0x00000000009021f4 main
(/home/users/EDITED/local/llvm-13.0.0/bin/clang-13+0x9021f4)
#43 0x0000ffff9cd20d64 __libc_start_main (/lib64/libc.so.6+0x20d64)
#44 0x00000000009a53d0 _start
(/home/users/EDITED/local/llvm-13.0.0/bin/clang-13+0x9a53d0)
clang-13: error: clang frontend command failed with exit code 70 (use -v to see
invocation)
clang version 13.0.0
Target: aarch64-unknown-linux-gnu
Thread model: posix
InstalledDir: /home/users/EDITED/local/llvm-13.0.0/bin

-- 
You are receiving this mail because:
You are on the CC list for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-bugs/attachments/20211004/baeabcc3/attachment-0001.html>


More information about the llvm-bugs mailing list