]> gcc.gnu.org Git - gcc.git/commit
Hazard barrier return support
authorJunxian Zhu <zhujunxian@oss.cipunited.com>
Fri, 17 Feb 2023 08:24:55 +0000 (16:24 +0800)
committerYunQiang Su <yunqiang.su@cipunited.com>
Fri, 24 Feb 2023 03:19:55 +0000 (11:19 +0800)
commita3a45f0b145ae9381ce3daa75db17c43a76ec7fd
tree15f48ce9632a858176598a39e125ff1c5c8468b8
parente2b20ed3efd22acaabfa87fd07869045747bd7f9
Hazard barrier return support

This patch allows a function to request clearing of all instruction and execution
hazards upon normal return via __attribute__ ((use_hazard_barrier_return)).

2017-04-25  Prachi Godbole  <prachi.godbole@imgtec.com>

gcc/ChangeLog:

* config/mips/mips.h (machine_function): New variable
use_hazard_barrier_return_p.
* config/mips/mips.md (UNSPEC_JRHB): New unspec.
(mips_hb_return_internal): New insn pattern.
* config/mips/mips.cc (mips_attribute_table): Add attribute
use_hazard_barrier_return.
(mips_use_hazard_barrier_return_p): New static function.
(mips_function_attr_inlinable_p): Likewise.
(mips_compute_frame_info): Set use_hazard_barrier_return_p.
Emit error for unsupported architecture choice.
(mips_function_ok_for_sibcall, mips_can_use_return_insn):
Return false for use_hazard_barrier_return.
(mips_expand_epilogue): Emit hazard barrier return.
* doc/extend.texi: Document use_hazard_barrier_return.

gcc/testsuite/ChangeLog:

* gcc.target/mips/hazard-barrier-return-attribute.c: New test.

Signed-off-by: Junxian Zhu <zhujunxian@oss.cipunited.com>
gcc/config/mips/mips.cc
gcc/config/mips/mips.h
gcc/config/mips/mips.md
gcc/doc/extend.texi
gcc/testsuite/gcc.target/mips/hazard-barrier-return-attribute.c [new file with mode: 0644]
This page took 0.05923 seconds and 5 git commands to generate.