[llvm-bugs] [Bug 49327] New: Regression (12.0) Assertion `It->second == &Insn && "Cached first special instruction is wrong!"' failed.

via llvm-bugs llvm-bugs at lists.llvm.org
Mon Feb 22 21:48:41 PST 2021


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

            Bug ID: 49327
           Summary: Regression (12.0) Assertion `It->second == &Insn &&
                    "Cached first special instruction is wrong!"' failed.
           Product: new-bugs
           Version: trunk
          Hardware: PC
                OS: Linux
            Status: NEW
          Severity: enhancement
          Priority: P
         Component: new bugs
          Assignee: unassignedbugs at nondot.org
          Reporter: bero at lindev.ch
                CC: htmldeveloper at gmail.com, llvm-bugs at lists.llvm.org

Trying to compile Python 3.9.2 with clang 12 (release branch as of 2021/02/23)
with LTO enabled results in:


ld:
/home/bero/abf/llvm/BUILD/llvm-project-release-12.x/llvm/lib/Analysis/InstructionPrecedenceTracking.cpp:87:
void llvm::InstructionPrecedenceTracking::validate(const llvm::BasicBlock *)
const: Assertion `It->second == &Insn && "Cached first special instruction is
wrong!"' failed.
PLEASE submit a bug report to https://bugs.llvm.org/ and include the crash
backtrace.
Stack dump:
0.      Program arguments: /usr/bin/ld --build-id --eh-frame-hdr -m elf_x86_64
-shared -o libpython3.9.so.1.0
/usr/bin/../lib64/gcc/x86_64-openmandriva-linux-gnu/10.2.1/../../../../lib64/crti.o
/usr/bin/../lib64/gcc/x86_64-openmandriva-linux-gnu/10.2.1/crtbeginS.o
-L/usr/bin/../lib64/gcc/x86_64-openmandriva-linux-gnu/10.2.1
-L/usr/bin/../lib64/gcc/x86_64-openmandriva-linux-gnu/10.2.1/../../../../lib64
-L/usr/bin/../lib64 -L/lib/../lib64 -L/usr/lib/../lib64 -L/usr/bin/../lib
-L/lib -L/usr/lib -plugin /usr/bin/../lib64/LLVMgold.so -plugin-opt=mcpu=znver1
-plugin-opt=O3 -O2 -O2 -hlibpython3.9.so.1.0 Modules/getbuildinfo.o
Parser/acceler.o Parser/grammar1.o Parser/listnode.o Parser/node.o
Parser/parser.o Parser/token.o Parser/pegen/pegen.o Parser/pegen/parse.o
Parser/pegen/parse_string.o Parser/pegen/peg_api.o Parser/myreadline.o
Parser/parsetok.o Parser/tokenizer.o Objects/abstract.o Objects/accu.o
Objects/boolobject.o Objects/bytes_methods.o Objects/bytearrayobject.o
Objects/bytesobject.o Objects/call.o Objects/capsule.o Objects/cellobject.o
Objects/classobject.o Objects/codeobject.o Objects/complexobject.o
Objects/descrobject.o Objects/enumobject.o Objects/exceptions.o
Objects/genericaliasobject.o Objects/genobject.o Objects/fileobject.o
Objects/floatobject.o Objects/frameobject.o Objects/funcobject.o
Objects/interpreteridobject.o Objects/iterobject.o Objects/listobject.o
Objects/longobject.o Objects/dictobject.o Objects/odictobject.o
Objects/memoryobject.o Objects/methodobject.o Objects/moduleobject.o
Objects/namespaceobject.o Objects/object.o Objects/obmalloc.o
Objects/picklebufobject.o Objects/rangeobject.o Objects/setobject.o
Objects/sliceobject.o Objects/structseq.o Objects/tupleobject.o
Objects/typeobject.o Objects/unicodeobject.o Objects/unicodectype.o
Objects/weakrefobject.o Python/_warnings.o Python/Python-ast.o Python/asdl.o
Python/ast.o Python/ast_opt.o Python/ast_unparse.o Python/bltinmodule.o
Python/ceval.o Python/codecs.o Python/compile.o Python/context.o
Python/dynamic_annotations.o Python/errors.o Python/frozenmain.o
Python/future.o Python/getargs.o Python/getcompiler.o Python/getcopyright.o
Python/getplatform.o Python/getversion.o Python/graminit.o Python/hamt.o
Python/hashtable.o Python/import.o Python/importdl.o Python/initconfig.o
Python/marshal.o Python/modsupport.o Python/mysnprintf.o Python/mystrtoul.o
Python/pathconfig.o Python/peephole.o Python/preconfig.o Python/pyarena.o
Python/pyctype.o Python/pyfpe.o Python/pyhash.o Python/pylifecycle.o
Python/pymath.o Python/pystate.o Python/pythonrun.o Python/pytime.o
Python/bootstrap_hash.o Python/structmember.o Python/symtable.o
Python/sysmodule.o Python/thread.o Python/traceback.o Python/getopt.o
Python/pystrcmp.o Python/pystrtod.o Python/pystrhex.o Python/dtoa.o
Python/formatter_unicode.o Python/fileutils.o Python/dynload_shlib.o
Modules/config.o Modules/getpath.o Modules/main.o Modules/gcmodule.o
Modules/posixmodule.o Modules/errnomodule.o Modules/pwdmodule.o Modules/_sre.o
Modules/_codecsmodule.o Modules/_weakref.o Modules/_functoolsmodule.o
Modules/_operator.o Modules/_collectionsmodule.o Modules/_abc.o
Modules/itertoolsmodule.o Modules/atexitmodule.o Modules/signalmodule.o
Modules/_stat.o Modules/timemodule.o Modules/_threadmodule.o
Modules/_localemodule.o Modules/_iomodule.o Modules/iobase.o Modules/fileio.o
Modules/bytesio.o Modules/bufferedio.o Modules/textio.o Modules/stringio.o
Modules/faulthandler.o Modules/_tracemalloc.o Modules/_peg_parser.o
Modules/symtablemodule.o Modules/xxsubtype.o Python/frozen.o -lcrypt -lintl
-lpthread -ldl -lutil -lm -lm -u__llvm_profile_runtime
/usr/lib64/clang/12.0.0/lib/linux/libclang_rt.profile-x86_64.a -lgcc
--as-needed -lgcc_s --no-as-needed -lpthread -lc -lgcc --as-needed -lgcc_s
--no-as-needed
/usr/bin/../lib64/gcc/x86_64-openmandriva-linux-gnu/10.2.1/crtendS.o
/usr/bin/../lib64/gcc/x86_64-openmandriva-linux-gnu/10.2.1/../../../../lib64/crtn.o
 #0 0x00007f20a0d0cce1 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int)
(/usr/lib64/libLLVMSupport.so.12.0+0x235ce1)
 #1 0x00007f20a0d0cfbd (/usr/lib64/libLLVMSupport.so.12.0+0x235fbd)
 #2 0x00007f20a0d0a90a llvm::sys::RunSignalHandlers()
(/usr/lib64/libLLVMSupport.so.12.0+0x23390a)
 #3 0x00007f20a0d0d2d6 (/usr/lib64/libLLVMSupport.so.12.0+0x2362d6)
 #4 0x00007f20a07439c0 __restore_rt (/lib64/libc.so.6+0x409c0)
 #5 0x00007f20a074393f raise (/lib64/libc.so.6+0x4093f)
 #6 0x00007f20a0729538 abort (/lib64/libc.so.6+0x26538)
 #7 0x00007f20a0729421 _nl_load_domain.cold (/lib64/libc.so.6+0x26421)
 #8 0x00007f20a073ac82 (/lib64/libc.so.6+0x37c82)
 #9 0x00007f209a17db26
llvm::InstructionPrecedenceTracking::validate(llvm::BasicBlock const*) const
(/usr/lib64/libLLVMAnalysis.so.12.0+0x3d3b26)
#10 0x00007f209a17d5ec
llvm::InstructionPrecedenceTracking::getFirstSpecialInstruction(llvm::BasicBlock
const*) (/usr/lib64/libLLVMAnalysis.so.12.0+0x3d35ec)
#11 0x00007f209a17de5f
llvm::InstructionPrecedenceTracking::isPreceededBySpecialInstruction(llvm::Instruction
const*) (/usr/lib64/libLLVMAnalysis.so.12.0+0x3d3e5f)
#12 0x00007f209a602530 llvm::GVN::PerformLoadPRE(llvm::LoadInst*,
llvm::SmallVector<llvm::gvn::AvailableValueInBlock, 64u>&,
llvm::SmallVector<llvm::BasicBlock*, 64u>&)
(/usr/lib64/libLLVMScalarOpts.so.12.0+0x229530)
#13 0x00007f209a60596c llvm::GVN::processNonLocalLoad(llvm::LoadInst*)
(/usr/lib64/libLLVMScalarOpts.so.12.0+0x22c96c)
#14 0x00007f209a608125 llvm::GVN::processLoad(llvm::LoadInst*)
(/usr/lib64/libLLVMScalarOpts.so.12.0+0x22f125)
#15 0x00007f209a609cf4 llvm::GVN::processInstruction(llvm::Instruction*)
(/usr/lib64/libLLVMScalarOpts.so.12.0+0x230cf4)
#16 0x00007f209a60b6d9 llvm::GVN::processBlock(llvm::BasicBlock*)
(/usr/lib64/libLLVMScalarOpts.so.12.0+0x2326d9)
#17 0x00007f209a60a9bc llvm::GVN::iterateOnFunction(llvm::Function&)
(/usr/lib64/libLLVMScalarOpts.so.12.0+0x2319bc)
#18 0x00007f209a60089b llvm::GVN::runImpl(llvm::Function&,
llvm::AssumptionCache&, llvm::DominatorTree&, llvm::TargetLibraryInfo const&,
llvm::AAResults&, llvm::MemoryDependenceResults*, llvm::LoopInfo*,
llvm::OptimizationRemarkEmitter*, llvm::MemorySSA*)
(/usr/lib64/libLLVMScalarOpts.so.12.0+0x22789b)
#19 0x00007f209a5ffea8 llvm::GVN::run(llvm::Function&,
llvm::AnalysisManager<llvm::Function>&)
(/usr/lib64/libLLVMScalarOpts.so.12.0+0x226ea8)
#20 0x00007f209c5aea8f (/usr/lib64/libLLVMPasses.so.12.0+0x17aa8f)
#21 0x00007f209b586946 llvm::PassManager<llvm::Function,
llvm::AnalysisManager<llvm::Function> >::run(llvm::Function&,
llvm::AnalysisManager<llvm::Function>&)
(/usr/lib64/libLLVMCore.so.12.0+0x42c946)
#22 0x00007f209fea0c1f (/usr/lib64/libLLVMAMDGPUCodeGen.so.12.0+0x56ec1f)
#23 0x00007f209b58bfa9 llvm::ModuleToFunctionPassAdaptor::run(llvm::Module&,
llvm::AnalysisManager<llvm::Module>&) (/usr/lib64/libLLVMCore.so.12.0+0x431fa9)
#24 0x00007f209fea097f (/usr/lib64/libLLVMAMDGPUCodeGen.so.12.0+0x56e97f)
#25 0x00007f209b584fc9 llvm::PassManager<llvm::Module,
llvm::AnalysisManager<llvm::Module> >::run(llvm::Module&,
llvm::AnalysisManager<llvm::Module>&) (/usr/lib64/libLLVMCore.so.12.0+0x42afc9)
#26 0x00007f209d2a701c llvm::lto::opt(llvm::lto::Config const&,
llvm::TargetMachine*, unsigned int, llvm::Module&, bool,
llvm::ModuleSummaryIndex*, llvm::ModuleSummaryIndex const*,
std::vector<unsigned char, std::allocator<unsigned char> > const&)
(/usr/lib64/libLLVMLTO.so.12.0+0x5701c)
#27 0x00007f209d2a7fc1 llvm::lto::backend(llvm::lto::Config const&,
std::function<std::unique_ptr<llvm::lto::NativeObjectStream,
std::default_delete<llvm::lto::NativeObjectStream> > (unsigned int)>, unsigned
int, std::unique_ptr<llvm::Module, std::default_delete<llvm::Module> >,
llvm::ModuleSummaryIndex&) (/usr/lib64/libLLVMLTO.so.12.0+0x57fc1)
#28 0x00007f209d2974f9
llvm::lto::LTO::runRegularLTO(std::function<std::unique_ptr<llvm::lto::NativeObjectStream,
std::default_delete<llvm::lto::NativeObjectStream> > (unsigned int)>)
(/usr/lib64/libLLVMLTO.so.12.0+0x474f9)
#29 0x00007f209d296a6f
llvm::lto::LTO::run(std::function<std::unique_ptr<llvm::lto::NativeObjectStream,
std::default_delete<llvm::lto::NativeObjectStream> > (unsigned int)>,
std::function<std::function<std::unique_ptr<llvm::lto::NativeObjectStream,
std::default_delete<llvm::lto::NativeObjectStream> > (unsigned int)> (unsigned
int, llvm::StringRef)>) (/usr/lib64/libLLVMLTO.so.12.0+0x46a6f)
#30 0x00007f20a120a2cc lld::elf::BitcodeCompiler::compile()
(/usr/lib64/liblldELF.so.12.0+0x2032cc)
#31 0x00007f20a1181696 void
lld::elf::LinkerDriver::compileBitcodeFiles<llvm::object::ELFType<(llvm::support::endianness)1,
true> >() (/usr/lib64/liblldELF.so.12.0+0x17a696)
#32 0x00007f20a116d491 void
lld::elf::LinkerDriver::link<llvm::object::ELFType<(llvm::support::endianness)1,
true> >(llvm::opt::InputArgList&) (/usr/lib64/liblldELF.so.12.0+0x166491)
#33 0x00007f20a115e482 lld::elf::LinkerDriver::linkerMain(llvm::ArrayRef<char
const*>) (/usr/lib64/liblldELF.so.12.0+0x157482)
#34 0x00007f20a115bd2b lld::elf::link(llvm::ArrayRef<char const*>, bool,
llvm::raw_ostream&, llvm::raw_ostream&) (/usr/lib64/liblldELF.so.12.0+0x154d2b)
#35 0x00000000002051bc (/usr/bin/ld+0x2051bc)
#36 0x0000000000204a02 main (/usr/bin/ld+0x204a02)
#37 0x00007f20a072b56d __libc_start_main (/lib64/libc.so.6+0x2856d)
#38 0x000000000020451a _start (/usr/bin/ld+0x20451a)
clang-12: error: unable to execute command: Aborted (core dumped)
clang-12: error: linker command failed due to signal (use -v to see invocation)


Without LTO, it compiles and works fine.

-- 
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/20210223/fd511298/attachment.html>


More information about the llvm-bugs mailing list