]> git.ipfire.org Git - thirdparty/gcc.git/commit
RISC-V: Short-forward-branch opt for SiFive 7 series cores.
authorwilson <wilson@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 30 Apr 2019 23:45:36 +0000 (23:45 +0000)
committerwilson <wilson@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 30 Apr 2019 23:45:36 +0000 (23:45 +0000)
commitd4d4c546d3e6c7b6cbeac7895096a0724c130e25
treeea27d5dc06f14353730b400aa7f7976d21608cf4
parent8d595bfa60c7491e1195a300068d725d131cea1e
RISC-V: Short-forward-branch opt for SiFive 7 series cores.

gcc/
* config/riscv/constraints.md (L): New.
* config/riscv/predicates.md (lui_operand): New.
(sfb_alu_operand): New.
* config/riscv/riscv-protos.h (riscv_expand_conditional_move): Declare.
* config/riscv/riscv.c (riscv_expand_conditional_move): New.
* config/riscv/riscv.h (TARGET_SFB_ALU): New.
* config/riscv/risc.md (type): Add sfb_alu.
(branch<mode>): Renamed from branch_order<mode>.  Change predicate for
operand 3 to reg_or_0_operand.  In output string, change %3 to %z3.
(branch_zero<mode>): Delete.
(mov<mode>cc): New.
(mov<GPR:mode><X:mode>cc): Likewise.
* config/riscv/sifive-7.md (sifive_7_sfb_alu): New.  Use in bypasses.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@270758 138bc75d-0d04-0410-961f-82ee72b054a4
gcc/ChangeLog
gcc/config/riscv/constraints.md
gcc/config/riscv/predicates.md
gcc/config/riscv/riscv-protos.h
gcc/config/riscv/riscv.c
gcc/config/riscv/riscv.h
gcc/config/riscv/riscv.md
gcc/config/riscv/sifive-7.md