aboutsummaryrefslogtreecommitdiff
path: root/gcc/c
diff options
context:
space:
mode:
authorJin Ma <jinma@linux.alibaba.com>2024-01-11 19:23:04 +0800
committerChristoph Müllner <christoph.muellner@vrull.eu>2024-01-11 19:43:36 +0100
commitb79cd204c780ee27e240616ac07e8201b85aeb92 (patch)
tree6767811af3cfec275e31a31dc08de831dc75fe82 /gcc/c
parent46afbeb81414302829fbf10c107e5466a3cf44d7 (diff)
downloadgcc-b79cd204c780ee27e240616ac07e8201b85aeb92.zip
gcc-b79cd204c780ee27e240616ac07e8201b85aeb92.tar.gz
gcc-b79cd204c780ee27e240616ac07e8201b85aeb92.tar.bz2
RISC-V: THEAD: Fix ICE caused by split optimizations for XTheadFMemIdx.
Due to the premature split optimizations for XTheadFMemIdx, GPR is allocated when reload allocates registers, resulting in the following insn. (insn 66 21 64 5 (set (reg:DF 14 a4 [orig:136 <retval> ] [136]) (mem:DF (plus:SI (reg/f:SI 15 a5 [141]) (ashift:SI (reg/v:SI 10 a0 [orig:137 i ] [137]) (const_int 3 [0x3]))) [0 S8 A64])) 218 {*movdf_hardfloat_rv32} (nil)) Since we currently do not support adjustments to th_m_mir/th_m_miu, which will trigger ICE. So it is recommended to place the split optimizations after reload to ensure FPR when registers are allocated. gcc/ChangeLog: * config/riscv/thead.md: Add limits for splits. gcc/testsuite/ChangeLog: * gcc.target/riscv/xtheadfmemidx-medany.c: New test.
Diffstat (limited to 'gcc/c')
0 files changed, 0 insertions, 0 deletions