Current-Users archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: C++ compiler excessive memory usage?



>> try to patch it like this?
>>
>> const uint8_t *RISCVInstructionSelector::getMatchTable() const {
>>    static const uint8_t MatchTable0[] = {
>> 	 ....
>>    };
>>    return MatchTable0;
>> }
>>
>> Not sure what it buys the other way if the function is not
>> declared as constexpr (besides driving the commpiler mad).
>
> It doesn't look too primising, I'm afraid.  I'm building the
> preprocessed file, patched as above, and "env TERM=dumb top -I |
> grep <pid>" is currently showing:
>
> 16356 he        83    4  6263M 1881M biowait    17:06  4.88%  4.88% cc1plus
> 16356 he        82    4  6263M 1882M biowait    17:07  3.52%  3.52% cc1plus
> 16356 he        83    4  6263M 1883M biowait    17:07  5.86%  5.86% cc1plus
> 16356 he        83    4  6263M 1880M RUN        17:07  4.88%  4.88% cc1plus
>
> It has yet to complete, and I need to go somewhere else...

The last 4 5s-separated entries from "top | grep":

16356 he        83    4  8213M 1720M biowait    75:21  9.33%  9.33% cc1plus
16356 he        83    4  8213M 1720M biowait    75:21  6.79%  6.79% cc1plus
16356 he        83    4  8213M 1721M biowait    75:22  4.88%  4.88% cc1plus
16356 he        81    4  8217M 1723M biowait    75:23  8.69%  8.69% cc1plus

and sadly, with gcc14, it ended the same as earlier, with

+ /usr/pkg/gcc14/bin/g++ -fstack-protector-strong -Wl,-zrelro -fPIC -fno-semantic-interposition -fvisibility-inlines-hidden -Werror=date-time -ffunction-sections -fdata-sections -O3 -DNDEBUG -std=c++17 -fvisibility=hidden -fno-exceptions -funwind-tables -fno-rtti -specs=/usr/pkgsrc/wip/rust199/work/.cwrapper/specs.libgcc -c RISCVInstructionSelector.cpp -o RISCVInstructionSelector.o
during GIMPLE pass: forwprop
In file included from /usr/pkgsrc/wip/rust199/work/rustc-1.99.0-src/src/llvm-project/llvm/lib/Target/RISCV/GISel/RISCVInstructionSelector.cpp:18:
/usr/pkgsrc/wip/rust199/work/rustc-1.99.0-src/src/llvm-project/llvm/include/llvm/CodeGen/GlobalISel/GIMatchTableExecutorImpl.h: In function 'bool llvm::GIMatchTableExecutor::executeMatchTable(TgtExecutor&, MatcherState&, const ExecInfoTy<PredicateBitset, ComplexMatcherMemFn, CustomRendererFn>&, llvm::MachineIRBuilder&, const uint8_t*, const llvm::TargetInstrInfo&, llvm::MachineRegisterInfo&, const llvm::TargetRegisterInfo&, const llvm::RegisterBankInfo&, const PredicateBitset&, llvm::CodeGenCoverage*) const [with TgtExecutor = const {anonymous}::RISCVInstructionSelector; PredicateBitset = llvm::Bitset<125>; ComplexMatcherMemFn = std::optional<llvm::SmallVector<std::function<void(llvm::MachineInstrBuilder&)>, 4> > ({anonymous}::RISCVInstructionSelector::*)(llvm::MachineOperand&) const; CustomRendererFn = void ({anonymous}::RISCVInstructionSelector::*)(llvm::MachineInstrBuilder&, const llvm::MachineInstr&, int) const]':
/usr/pkgsrc/wip/rust199/work/rustc-1.99.0-src/src/llvm-project/llvm/include/llvm/CodeGen/GlobalISel/GIMatchTableExecutorImpl.h:43:6: internal compiler error: Segmentation fault
   43 | bool GIMatchTableExecutor::executeMatchTable(
      |      ^~~~~~~~~~~~~~~~~~~~
0x1861437 internal_error(char const*, ...)
        ???:0
Please submit a full bug report, with preprocessed source (by using -freport-bug).
Please include the complete backtrace with any bug report.
See <https://gcc.gnu.org/bugs/> for instructions.
1032.450u 2855.429s 13:08:29.94 8.2%    0+0k 125+1io 941441pf+0w

Sigh.

- Håvard


Home | Main Index | Thread Index | Old Index