Robin Dapp <rdapp....@gmail.com> writes:
> Hi, > > the attached v2 includes Tamar's suggestion of keeping the current > stdout behavior. When no output files are passed (via -O) the output > is written to stdout as before. > > Tamar also mentioned off-list that, similar to match.pd, it might make > sense to balance the partitions in a better way than a fixed number > of patterns threshold. That's a good idea but I'd rather do that > separately as the current approach already helps considerably. > > Attached v2 was bootstrapped and regtested on power10, aarch64 and > x86 are still running. > Stefan also tested v1 on s390 where the partitioning does not help > but also doesn't slow anything down. insn-emit.cc isn't very large > to begin with on s390. > > Regards > Robin > > From 34d05113a4e3c7e83a4731020307e26c1144af69 Mon Sep 17 00:00:00 2001 > From: Robin Dapp <rd...@ventanamicro.com> > Date: Thu, 12 Oct 2023 11:23:26 +0200 > Subject: [PATCH v2] genemit: Split insn-emit.cc into several partitions. > > On riscv insn-emit.cc has grown to over 1.2 mio lines of code and > compiling it takes considerable time. > Therefore, this patch adjust genemit to create several partitions > (insn-emit-1.cc to insn-emit-n.cc). In order to do so it first counts > the number of available patterns, calculates the number of patterns per > file and starts a new file whenever that number is reached. > > Similar to match.pd a configure option --with-emitinsn-partitions=num > is introduced that makes the number of partition configurable. > Natively, things seem fine, but for cross, I get failures on a few targets (hppa2.0-unknown-linux-gnu, hppa64-unknown-linux-gnu). With ./configure --host=x86_64-pc-linux-gnu --target=hppa2.0-unknown-linux-gnu --build=x86_64-pc-linux-gnu && make -j$(nproc), I get a bunch of stuff like: mv: cannot stat 'tmp-emit-9.cc': No such file or directory echo timestamp > s-insn-emit-8 mv: cannot stat 'tmp-emit-10.cc': No such file or directory make[2]: *** [Makefile:2598: s-insn-emit-9] Error 1 make[2]: *** Waiting for unfinished jobs.... make[2]: *** [Makefile:2598: s-insn-emit-10] Error 1