]> git.ipfire.org Git - thirdparty/gcc.git/commit
AArch64 - use CSDB based sequences if speculation tracking is enabled
authorRichard Earnshaw <rearnsha@arm.com>
Tue, 31 Jul 2018 17:36:26 +0000 (17:36 +0000)
committerRichard Earnshaw <rearnsha@gcc.gnu.org>
Tue, 31 Jul 2018 17:36:26 +0000 (17:36 +0000)
commitc0111dc43591647ef6d619a1fc222a8e9a06e058
tree77960405952ad4760701c6a46513979c60c7c8d4
parent3751345de3763609848d77cffcc91db13e365216
AArch64 - use CSDB based sequences if speculation tracking is enabled

In this final patch, now that we can track speculation through conditional
branches, we can use this information to use a less expensive CSDB based
speculation barrier.

* config/aarch64/iterators.md (ALLI_TI): New iterator.
* config/aarch64/aarch64.md (despeculate_copy<ALLI_TI:mode>): New
expand.
(despeculate_copy<ALLI:mode>_insn): New insn.
(despeculate_copyti_insn): New insn.
(despeculate_simple<ALLI:mode>): New insn
(despeculate_simpleti): New insn.
* config/aarch64/aarch64.c (aarch64_speculation_safe_value): New
function.
(TARGET_SPECULATION_SAFE_VALUE): Redefine to
aarch64_speculation_safe_value.
(aarch64_print_operand): Handle const0_rtx in modifier 'H'.

From-SVN: r263174
gcc/ChangeLog
gcc/config/aarch64/aarch64.c
gcc/config/aarch64/aarch64.md
gcc/config/aarch64/iterators.md