[Bug target/58945] Improve atomic_compare_and_swap*_doubleword pattern
ubizjak at gmail dot com
gcc-bugzilla@gcc.gnu.org
Fri Oct 17 07:20:00 GMT 2014
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=58945
--- Comment #5 from Uroš Bizjak <ubizjak at gmail dot com> ---
Created attachment 33744
--> https://gcc.gnu.org/bugzilla/attachment.cgi?id=33744&action=edit
Simplified patch
Somehow simplified patch for mainline. Still fails with -O2 -mcx16:
atomic-store-6.c: In function ‘main’:
atomic-store-6.c:13:1: error: unable to find a register to spill
}
^
atomic-store-6.c:13:1: error: this is the insn:
(insn 9 48 47 3 (parallel [
(set (reg:TI 101 [86])
(unspec_volatile:TI [
(mem/v:TI (symbol_ref:DI ("i") <var_decl
0x2adae9631c60 i>) [-1 S16 A128])
(reg:TI 101 [86])
(reg:DI 102 [99])
(reg:DI 99)
(const_int 5 [0x5])
] UNSPECV_CMPXCHG))
(set (mem/v:TI (symbol_ref:DI ("i") <var_decl 0x2adae9631c60 i>)
[-1 S16 A128])
(unspec_volatile:TI [
(const_int 0 [0])
] UNSPECV_CMPXCHG))
(set (reg:CCZ 17 flags)
(unspec_volatile:CCZ [
(const_int 0 [0])
] UNSPECV_CMPXCHG))
]) atomic-store-6.c:9 4876 {atomic_compare_and_swapti_doubleword}
(expr_list:REG_DEAD (reg:DI 102 [99])
(nil)))
atomic-store-6.c:13:1: internal compiler error: in assign_by_spills, at
lra-assigns.c:1363
More information about the Gcc-bugs
mailing list