[llvm-dev] FYI, we've posted a component of Spectre mitigation on llvm-commits

Chandler Carruth via llvm-dev llvm-dev at lists.llvm.org
Thu Jan 4 10:21:37 PST 2018


On Thu, Jan 4, 2018 at 1:05 PM Stephen Checkoway via llvm-dev <
llvm-dev at lists.llvm.org> wrote:

>
> On Jan 4, 2018, at 11:52, Chandler Carruth via llvm-dev <
> llvm-dev at lists.llvm.org> wrote:
>
> > On Thu, Jan 4, 2018 at 12:31 PM Stephen Checkoway via llvm-dev <
> llvm-dev at lists.llvm.org> wrote:
> >
> >> As I understand it, the busy loop is to cause the speculative execution
> to be trapped in the loop. Was something like ud2 considered? I presume
> that would stop the speculative execution without involving any of the
> execution units the way the busy loop does.
> >>
> > The pause instruction will also avoid tying up execution resources in
> speculative contexts, so I wouldn't expect it to be significantly different.
>
> Got it. The Software Developer Manual isn't entirely clear on this point
> (to me at least) and IACA shows a number of ports in use during the 4 or 5
> Uops pause takes.
>

That's if it executes. But pause doesn't get speculatively executed at all.

Sadly, this makes IACA and other tools challenging to use. Instead you want
to construct a tight careful benchmark, control frequency and everything
else, and look at exact retire rates of instructions etc.

But if you find instruction sequences that reliably benchmark as faster,
please share this on the review thread. =D


>
> Thank you,
>
> Steve
>
> --
> Stephen Checkoway
>
>
>
> _______________________________________________
> LLVM Developers mailing list
> llvm-dev at lists.llvm.org
> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20180104/68b6fbaf/attachment.html>


More information about the llvm-dev mailing list