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
> >
> >
> >
> >
> >
> >
> >
> >
> >

Reply via email to