On Sep 05 2018, <a...@codesourcery.com> wrote: > At present, pointers passed to builtin functions, including atomic operators, > are stripped of their address space properties. This doesn't seem to be > deliberate, it just omits to copy them. > > Not only that, but it forces pointer sizes to Pmode, which isn't appropriate > for all address spaces. > > This patch attempts to correct both issues. It works for GCN atomics and > GCN OpenACC gang-private variables. > > 2018-09-05 Andrew Stubbs <a...@codesourcery.com> > Julian Brown <jul...@codesourcery.com> > > gcc/ > * builtins.c (get_builtin_sync_mem): Handle address spaces.
That breaks aarch64 ILP32. ../../../../libgomp/ordered.c: In function 'GOMP_doacross_wait': ../../../../libgomp/ordered.c:486:1: internal compiler error: output_operand: invalid address mode 486 | } | ^ 0xf7219f aarch64_print_address_internal ../../gcc/config/aarch64/aarch64.c:7163 0xf7269b aarch64_print_operand_address ../../gcc/config/aarch64/aarch64.c:7267 0x8871ef output_address(machine_mode, rtx_def*) ../../gcc/final.c:4069 0xf7302b aarch64_print_operand ../../gcc/config/aarch64/aarch64.c:6952 0x887133 output_operand(rtx_def*, int) ../../gcc/final.c:4053 0x887b5b output_asm_insn(char const*, rtx_def**) ../../gcc/final.c:3965 0x889157 output_asm_insn(char const*, rtx_def**) ../../gcc/final.c:3842 0x889157 final_scan_insn_1 ../../gcc/final.c:3103 0x88984b final_scan_insn(rtx_insn*, _IO_FILE*, int, int, int*) ../../gcc/final.c:3149 0x889b1f final_1 ../../gcc/final.c:2019 0x88aaff rest_of_handle_final ../../gcc/final.c:4660 0x88aaff execute ../../gcc/final.c:4734 Andreas. -- Andreas Schwab, sch...@linux-m68k.org GPG Key fingerprint = 7578 EB47 D4E5 4D69 2510 2552 DF73 E780 A9DA AEC1 "And now for something completely different."