On Tue, 15 Nov 2022 at 17:40, Jeff Law <jeffreya...@gmail.com> wrote:
>
>
> On 11/13/22 13:41, Philipp Tomsich wrote:
> > The Zihintpause extension uses an opcode from the 'fence' opcode range
> > to add a true hint instruction (i.e. if it is not supported on any
> > given platform, the 'fence' that is encoded will not enforce any
> > specific ordering on memory accesses) for entering a low-power state
> > (e.g. in an idle thread).  We expose this new instruction through a
> > machine-dependent builtin to allow generating it without a requirement
> > for any inline assembly.
> >
> > Given that the encoding of 'pause' is valid (as a 'fence' encoding)
> > even for processors that do not (yet) support Zihintpause, we make
> > this builtin available without any further TARGET_* constraints.
> >
> > gcc/ChangeLog:
> >
> >       * config/riscv/riscv-builtins.cc (struct riscv_builtin_description):
> >       add the pause machine-dependent builtin with no result and no
> >          arguments; mark it as always present (pause is a true hint
> >          that encodes into a fence-insn, if not supported with the new
> >          pause semantics).
> >       * config/riscv/riscv-ftypes.def: Add type for void -> void.
> >       * config/riscv/riscv.md (riscv_pause): Add risc_pause and 
> > UNSPECV_PAUSE
> >       * 
> > doc/gcc/extensions-to-the-c-language-family/target-builtins/risc-v-built-in-functions.rst:
> >       Document.
> >       * optabs.cc (maybe_gen_insn): Allow nops == 0 (void -> void).
> >
> > gcc/testsuite/ChangeLog:
> >
> >       * gcc.target/riscv/builtin_pause.c: New test.
>
> OK.  Though I think you'll need to adjust the doc patch now with the
> sphinx work reverted.

Applied to master with the earlier changes to texinfo restored. Thanks!
--Philipp.

Reply via email to