]> git.ipfire.org Git - thirdparty/gcc.git/commit
AArch64 - use CSDB based sequences if speculation tracking is enabled
authorrearnsha <rearnsha@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 31 Jul 2018 17:36:26 +0000 (17:36 +0000)
committerrearnsha <rearnsha@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 31 Jul 2018 17:36:26 +0000 (17:36 +0000)
commitce52014acef8b301ede901792f9d25035cb727bf
tree77960405952ad4760701c6a46513979c60c7c8d4
parentb19562a81626f3e6adc5a5d4a185b36548539a4f
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'.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@263174 138bc75d-0d04-0410-961f-82ee72b054a4
gcc/ChangeLog
gcc/config/aarch64/aarch64.c
gcc/config/aarch64/aarch64.md
gcc/config/aarch64/iterators.md