From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 48) id 8EF6B3858418; Sun, 14 May 2023 12:06:46 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 8EF6B3858418 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gcc.gnu.org; s=default; t=1684066006; bh=1dLSsgjdEiqzvHXH7VX4ZNrHy3/qH/csldvxIeWARsA=; h=From:To:Subject:Date:In-Reply-To:References:From; b=Ya89B8pr2tA+njr8H+HdhxWxEprbNiljW/SRF4eLgcpvSqx+NKzmSTdSU7XwxpH0K cjJE5U6m9ThW+XIRT92Fl/oUsMuDb/A/0toCJPBoVRnnlV/KEClqy0eZGkDhxPMttA 8nKGTZe28h54nGduv5KOG4kD/YcS/OowSxOKp8Ls= From: "arsen at gcc dot gnu.org" To: gcc-bugs@gcc.gnu.org Subject: [Bug ipa/108250] [12/13/14 regression] llvm-tblgen miscompiled on powerpc-unknown-linux-gnu since r12-5383-g22c242342e38eb Date: Sun, 14 May 2023 12:06:44 +0000 X-Bugzilla-Reason: CC X-Bugzilla-Type: changed X-Bugzilla-Watch-Reason: None X-Bugzilla-Product: gcc X-Bugzilla-Component: ipa X-Bugzilla-Version: 13.0 X-Bugzilla-Keywords: wrong-code X-Bugzilla-Severity: normal X-Bugzilla-Who: arsen at gcc dot gnu.org X-Bugzilla-Status: WAITING X-Bugzilla-Resolution: X-Bugzilla-Priority: P3 X-Bugzilla-Assigned-To: unassigned at gcc dot gnu.org X-Bugzilla-Target-Milestone: 12.4 X-Bugzilla-Flags: X-Bugzilla-Changed-Fields: Message-ID: In-Reply-To: References: Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Bugzilla-URL: http://gcc.gnu.org/bugzilla/ Auto-Submitted: auto-generated MIME-Version: 1.0 List-Id: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=3D108250 --- Comment #13 from Arsen Arsenovi=C4=87 --- as an update, we've recently gotten valgrind working on a ppc32 machine, an= d we get the following: =3D=3D2738=3D=3D Conditional jump or move depends on uninitialised value(s) =3D=3D2738=3D=3D at 0x17E55C: __eq (tuple:1472) =3D=3D2738=3D=3D by 0x17E55C: operator=3D=3D (tu= ple:1504) =3D=3D2738=3D=3D by 0x17E55C: operator!=3D (tupl= e:1553) =3D=3D2738=3D=3D by 0x17E55C: llvm::TypeInfer::EnforceSmallerThan(llvm::TypeSetByHwMode&, llvm::TypeSetByHwMode&, bool)::{lambda(llvm::MVT, llvm::MVT)#4}::operator()(llvm::MVT, llvm::MVT) const [clone .constprop.0] (CodeGenDAGPatterns.cpp:556) =3D=3D2738=3D=3D by 0x180E9F: __invoke_impl&, llvm::MVT&, llvm::MVT&> (invoke.h:61) =3D=3D2738=3D=3D by 0x180E9F: __invoke&, llvm::MVT&, llvm::MVT&> (invoke.h:96) =3D=3D2738=3D=3D by 0x180E9F: __call (functional= :495) =3D=3D2738=3D=3D by 0x180E9F: operator() (functional:580) =3D=3D2738=3D=3D by 0x180E9F: bool berase_if, llvm::MVT)> >(llvm::MachineValueTypeSet&, std::_Bind, llvm::MVT)>) (CodeGenDAGPatterns.cpp:59) =3D=3D2738=3D=3D by 0x199113: llvm::TypeInfer::EnforceSmallerThan(llvm::TypeSetByHwMode&, llvm::TypeSetByHwMode&, bool) [clone .part.0] (CodeGenDAGPatterns.cpp:573) =3D=3D2738=3D=3D by 0x1A4013: ApplyTypeConstraint (CodeGenDAGPatterns.cp= p:1641) =3D=3D2738=3D=3D by 0x1A4013: ApplyTypeConstraints (CodeGenDAGPatterns.h= :1269) =3D=3D2738=3D=3D by 0x1A4013: llvm::TreePatternNode::ApplyTypeConstraints(llvm::TreePattern&, bool) (CodeGenDAGPatterns.cpp:2564) =3D=3D2738=3D=3D by 0x1A4DFB: llvm::TreePattern::InferAllTypes(llvm::StringMap, llvm::MallocAllocator> const*) (CodeGenDAGPatterns.cpp:3094) =3D=3D2738=3D=3D by 0x1AE02F: llvm::CodeGenDAGPatterns::ParsePatternFrag= ments(bool) (CodeGenDAGPatterns.cpp:3352) =3D=3D2738=3D=3D by 0x1AE893: llvm::CodeGenDAGPatterns::CodeGenDAGPatterns(llvm::RecordKeeper&, std::function) (CodeGenDAGPatterns.cpp:3195) =3D=3D2738=3D=3D by 0x2CF00B: GlobalISelEmitter (GlobalISelEmitter.cpp:3= 809) =3D=3D2738=3D=3D by 0x2CF00B: llvm::EmitGlobalISel(llvm::RecordKeeper&, llvm::raw_ostream&) (GlobalISelEmitter.cpp:6312) =3D=3D2738=3D=3D by 0x352E1F: (anonymous namespace)::LLVMTableGenMain(llvm::raw_ostream&, llvm::RecordKeeper&) (TableGen.cpp:251) =3D=3D2738=3D=3D by 0x3E8447: llvm::TableGenMain(char const*, bool (*)(llvm::raw_ostream&, llvm::RecordKeeper&)) (Main.cpp:122) =3D=3D2738=3D=3D by 0x134BD7: main (TableGen.cpp:296) =3D=3D2738=3D=3D=20 =3D=3D2738=3D=3D Conditional jump or move depends on uninitialised value(s) =3D=3D2738=3D=3D at 0x17E55C: __eq (tuple:1472) =3D=3D2738=3D=3D by 0x17E55C: operator=3D=3D (tu= ple:1504) =3D=3D2738=3D=3D by 0x17E55C: operator!=3D (tupl= e:1553) =3D=3D2738=3D=3D by 0x17E55C: llvm::TypeInfer::EnforceSmallerThan(llvm::TypeSetByHwMode&, llvm::TypeSetByHwMode&, bool)::{lambda(llvm::MVT, llvm::MVT)#4}::operator()(llvm::MVT, llvm::MVT) const [clone .constprop.0] (CodeGenDAGPatterns.cpp:556) =3D=3D2738=3D=3D by 0x1810FF: __invoke_impl&, llvm::MVT&, llvm::MVT&> (invoke.h:61) =3D=3D2738=3D=3D by 0x1810FF: __invoke&, llvm::MVT&, llvm::MVT&> (invoke.h:96) =3D=3D2738=3D=3D by 0x1810FF: __call (functional= :495) =3D=3D2738=3D=3D by 0x1810FF: operator() (functional:580) =3D=3D2738=3D=3D by 0x1810FF: bool berase_if)> >(llvm::MachineValueTypeSet&, std::_Bind)>) (CodeGenDAGPatterns.cpp:59) =3D=3D2738=3D=3D by 0x19919B: llvm::TypeInfer::EnforceSmallerThan(llvm::TypeSetByHwMode&, llvm::TypeSetByHwMode&, bool) [clone .part.0] (CodeGenDAGPatterns.cpp:580) =3D=3D2738=3D=3D by 0x1A4013: ApplyTypeConstraint (CodeGenDAGPatterns.cp= p:1641) =3D=3D2738=3D=3D by 0x1A4013: ApplyTypeConstraints (CodeGenDAGPatterns.h= :1269) =3D=3D2738=3D=3D by 0x1A4013: llvm::TreePatternNode::ApplyTypeConstraints(llvm::TreePattern&, bool) (CodeGenDAGPatterns.cpp:2564) =3D=3D2738=3D=3D by 0x1A4DFB: llvm::TreePattern::InferAllTypes(llvm::StringMap, llvm::MallocAllocator> const*) (CodeGenDAGPatterns.cpp:3094) =3D=3D2738=3D=3D by 0x1AE02F: llvm::CodeGenDAGPatterns::ParsePatternFrag= ments(bool) (CodeGenDAGPatterns.cpp:3352) =3D=3D2738=3D=3D by 0x1AE893: llvm::CodeGenDAGPatterns::CodeGenDAGPatterns(llvm::RecordKeeper&, std::function) (CodeGenDAGPatterns.cpp:3195) =3D=3D2738=3D=3D by 0x2CF00B: GlobalISelEmitter (GlobalISelEmitter.cpp:3= 809) =3D=3D2738=3D=3D by 0x2CF00B: llvm::EmitGlobalISel(llvm::RecordKeeper&, llvm::raw_ostream&) (GlobalISelEmitter.cpp:6312) =3D=3D2738=3D=3D by 0x352E1F: (anonymous namespace)::LLVMTableGenMain(llvm::raw_ostream&, llvm::RecordKeeper&) (TableGen.cpp:251) =3D=3D2738=3D=3D by 0x3E8447: llvm::TableGenMain(char const*, bool (*)(llvm::raw_ostream&, llvm::RecordKeeper&)) (Main.cpp:122) =3D=3D2738=3D=3D by 0x134BD7: main (TableGen.cpp:296) (and a few similar diagnostics) these do not happen on x86 and there seems to be no conditional compilation. I'll try to finish up a reduction soon, but I've been swamped as of late. I have a reduction that deoptimized most code, leaving us with just a few functions still being optimized, while still reproducing the bug, so that m= ight shed some light too. presuming that some bit of GCC decided to remove a store that'd initialize those values, any hint on how to see what?=