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.