On Thu, Jan 8, 2026 at 11:28 PM Richard Biener <[email protected]> wrote: > > On Fri, Jan 9, 2026 at 12:33 AM Jeffrey Law > <[email protected]> wrote: > > > > So I've been noticing the cycle time for a native build/test on the > > Pioneer and BPI rising over the last many months. I've suspected a pain > > point is likely genautomata due to long reservations in the DFAs. > > Trying to describe a 30+ cycle bubble in the pipeline just isn't useful > > and causes the DFA to blow up. > > > > This is time to build insn-automata.cc using an optimized genautomata > > using my skylake server cross compiling to riscv64. The baseline is what > > we have today. Then I clamped the reservations (but not the latency) to > > 7c. 7c is arbitrary, but known not to blow up the DFA. I fixed the BPI > > first, then the Andes 23 and so-on. > > > > Baseline 52s > > BPI 52s > > Andes-23 45s > > Andes-25 16s > > Andes-45 16s > > Generic 15s > > Mips-8700 15s > > Sifive-7 13s > > Final 13s > > > > That's a significant improvement, though I probably wouldn't go forward > > with just that improvement. It's less than a minute and skylake systems > > aren't exactly new anymore... > > > > Let's try that with an unoptimized genautomata. I often build that way > > when debugging. > > > > > > Baseline 343s > > Final 79s > > > > So that's saving ~4m on my skylake server for a common build. Given I > > use ccache, that 4m is often a significant amount of the build time. So > > this feels like a better motivating example. > > > > But I'm really after bringing down bootstrap cycle times on the BPI and > > Pioneer. So let's see what the BPI does. For an optimized genautomata > > we get (not testing all the intermediate steps): > > > > Baseline 310s > > Final: 110s > > > > Not bad. And if we look at unoptimized genautomata: > > > > Baseline: 2196s > > Final: 553s > > > > Now we can see why bootstrap times have crept up meaningfully. That's > > ~27 minutes out of a 9hr bootstrap time on the BPI (pure bootstrap, no > > testing). The effect is more pronounced on the Pioneer where the > > improvement is 30+ minutes on a 4hr bootstrap time (each core is slower, > > but there's 8x as many cores). > > > > Tested on riscv{32,64}-elf and bootstrapped on the Pioneer (regression > > testing in progress). I'll wait for pre-commit CI to do its thing. > > Does it make sense to impose such clamping from extern as argument > to genautomata? That would leave the large reservations in the .md file > for documentation purposes (I'd have added comments in places where > you clamped at least for this reason)?
Considering is this the 4 target that has done the clamping, I think we should do the clamping in a generic way. aarch64, mips and x86_64 were the other 3 I know of that has done the clamping before. Thanks, Andrew > > Richard. > > > > > > > Jeff > > > > > > > > > > > > > > > > > >
