[PATCH target/86811] Mark VAX as not needing speculation barriers

Maciej W. Rozycki macro@linux-mips.org
Thu Oct 3 11:16:00 GMT 2019


On Thu, 3 Oct 2019, Segher Boessenkool wrote:

> >  I don't think this is right.  As I have just mentioned in a related 
> > discussion elsewhere, the NVAX and NVAX+ implementations include a branch 
> > predictor in their microarchitecture[1], so obviously they do execute 
> > speculatively.  I think this change would best be reverted and the issue 
> > further investigated.
> > 
> > References:
> > 
> > [1] G. Michael Uhler et al, "The NVAX and NVAX+ High-performance VAX
> >     Microprocessors", Digital Technical Journal Vol. 4 No. 3 Summer 1992
> >     <ftp://ftp.linux-mips.org/pub/linux/mips/people/macro/DEC/DTJ/DTJ701/DTJ701PF.PDF>
> 
> As that article explains, the NVAX does *not* execute speculatively.  You
> can have branch prediction without speculative execution just fine.  It
> is beneficial, too, because this hides the fetch latency when a branch is
> predicted correctly.
> 
> When a (conditional) branch executes, it is detected if the branch was
> mispredicted, and if so it (and everything after it) is flushed.  This is
> similar to how it was done on the PowerPC 6xx CPUs, or on the original
> Pentium, etc.

 OK, I stand corrected.  For the sake of my enlightenment, do you 
specifically refer to this statement:

"If the I-box predicts incorrectly, the E-box invokes a trap mechanism to 
drain the pipeline and restart the I-box at the alternate PC."

(page 5, section "The I-box") or something else?

  Maciej



More information about the Gcc-patches mailing list