[Bug go/66332] New: goacc/acc_on_device-2.c scan-rtl-dump-times expand testsuite failure
jpsinthemix at verizon dot net
gcc-bugzilla@gcc.gnu.org
Fri May 29 01:46:00 GMT 2015
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66332
Bug ID: 66332
Summary: goacc/acc_on_device-2.c scan-rtl-dump-times expand
testsuite failure
Product: gcc
Version: 5.1.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: go
Assignee: ian at airs dot com
Reporter: jpsinthemix at verizon dot net
CC: cmang at google dot com
Target Milestone: ---
Hi,
I'm getting the following openacc-related testsuite error for gcc-5.1.0 on an
x86_64-pc-linux-gnu system:
FAIL: c-c++-common/goacc/acc_on_device-2.c scan-rtl-dump-times expand "\\(call
[^\\n]* acc_on_device" 0
This failure does not appear to be related to BUG 64850.
The failure occurs in
gcc-5.1.0/gcc/testsuite/c-c++-common/goacc/acc_on_device-2.c:27
1 /* Have to enable optimizations, as otherwise builtins won't be expanded.
*/
2 /* { dg-additional-options "-O -fdump-rtl-expand" } */
3
4 #if __cplusplus
5 extern "C" {
6 #endif
7
8 typedef enum acc_device_t { acc_device_X = 123 } acc_device_t;
9 extern int acc_on_device (acc_device_t);
10
11 #if __cplusplus
12 }
13 #endif
14
15 int
16 f (void)
17 {
18 const acc_device_t dev = acc_device_X;
19 return acc_on_device (dev);
20 }
21
22 /* With -fopenacc, we're expecting the builtin to be expanded, so no calls.
23 TODO: in C++, even under extern "C", the use of enum for acc_device_t
24 perturbs expansion as a builtin, which expects an int parameter. It's
fine
25 when changing acc_device_t to plain int, but that's not what we're doing
in
26 <openacc.h>.
27 { dg-final { scan-rtl-dump-times "\\\(call \[^\\n\]* acc_on_device" 0
"expand" { xfail c++ } } } */
28
29 /* { dg-final { cleanup-rtl-dump "expand" } } */
Running:
/home/pkgbase/bld/gcc.5.1.0-x86_64-build4/build/gcc/xgcc
-B/home/pkgbase/bld/gcc.5.1.0-x86_64-build4/build/gcc/
/home/pkgbase/bld/gcc.5.1.0-x86_64-build4/gcc-5.1.0/gcc/testsuite/c-c++-common/goacc/acc_on_device-2.c
-fno-diagnostics-show-caret -fdiagnostics-color=never -fopenacc -O
-fdump-rtl-expand -ffat-lto-objects -S -o acc_on_device-2.s
I get (acc_on_device-2.s):
1 .file "acc_on_device-2.c"
2 .text
3 .globl f
4 .type f, @function
5 f:
6 .LFB0:
7 .cfi_startproc
8 subq $8, %rsp
9 .cfi_def_cfa_offset 16
10 movl $123, %edi
11 call acc_on_device
12 addq $8, %rsp
13 .cfi_def_cfa_offset 8
14 ret
15 .cfi_endproc
16 .LFE0:
17 .size f, .-f
18 .ident "GCC: (GNU) 5.1.0"
19 .section .note.GNU-stack,"",@progbits
and (acc_on_device-2.c.191r.expand):
1
2 ;; Function f (f, funcdef_no=0, decl_uid=1846, cgraph_uid=0,
symbol_order=0)
3
4
5 ;; Generating RTL for gimple basic block 2
6
7
8 try_optimize_cfg iteration 1
9
10 Merging block 3 into block 2...
11 Merged blocks 2 and 3.
12 Merged 2 and 3 without moving.
13 Removing jump 11.
14 Merging block 4 into block 2...
15 Merged blocks 2 and 4.
16 Merged 2 and 4 without moving.
17
18
19 try_optimize_cfg iteration 2
20
21
22
23 ;;
24 ;; Full RTL generated for this function:
25 ;;
26 (note 1 0 3 NOTE_INSN_DELETED)
27 (note 3 1 2 2 [bb 2] NOTE_INSN_BASIC_BLOCK)
28 (note 2 3 5 2 NOTE_INSN_FUNCTION_BEG)
29 (insn 5 2 6 2 (set (reg:SI 5 di)
30 (const_int 123 [0x7b]))
/home/pkgbase/bld/gcc.5.1.0-x86_64-build4/gcc-5.1.0/gcc/testsuite/c-c++-common/goacc/acc_on_device-2.c:19
-1
31 (nil))
32 (call_insn/u 6 5 7 2 (set (reg:SI 0 ax)
33 (call (mem:QI (symbol_ref:DI ("acc_on_device") [flags 0x41]
<function_decl 0x7f1eaf74b870 acc_on_device>) [0 __builtin_acc_on_device S1
A8])
34 (const_int 0 [0])))
/home/pkgbase/bld/gcc.5.1.0-x86_64-build4/gcc-5.1.0/gcc/testsuite/c-c++-common/goacc/acc_on_device-2.c:19
-1
35 (expr_list:REG_EH_REGION (const_int 0 [0])
36 (nil))
37 (expr_list:SI (use (reg:SI 5 di))
38 (nil)))
39 (insn 7 6 8 2 (set (reg:SI 89)
40 (reg:SI 0 ax))
/home/pkgbase/bld/gcc.5.1.0-x86_64-build4/gcc-5.1.0/gcc/testsuite/c-c++-common/goacc/acc_on_device-2.c:19
-1
41 (nil))
42 (insn 8 7 9 2 (set (reg:SI 90)
43 (reg:SI 89))
/home/pkgbase/bld/gcc.5.1.0-x86_64-build4/gcc-5.1.0/gcc/testsuite/c-c++-common/goacc/acc_on_device-2.c:19
-1
44 (nil))
45 (insn 9 8 10 2 (set (reg:SI 87 [ D.1855 ])
46 (reg:SI 90))
/home/pkgbase/bld/gcc.5.1.0-x86_64-build4/gcc-5.1.0/gcc/testsuite/c-c++-common/goacc/acc_on_device-2.c:19
-1
47 (nil))
48 (insn 10 9 14 2 (set (reg:SI 88 [ <retval> ])
49 (reg:SI 87 [ D.1855 ]))
/home/pkgbase/bld/gcc.5.1.0-x86_64-build4/gcc-5.1.0/gcc/testsuite/c-c++-common/goacc/acc_on_device-2.c:19
-1
50 (nil))
51 (insn 14 10 15 2 (set (reg/i:SI 0 ax)
52 (reg:SI 88 [ <retval> ]))
/home/pkgbase/bld/gcc.5.1.0-x86_64-build4/gcc-5.1.0/gcc/testsuite/c-c++-common/goacc/acc_on_device-2.c:20
-1
53 (nil))
54 (insn 15 14 0 2 (use (reg/i:SI 0 ax))
/home/pkgbase/bld/gcc.5.1.0-x86_64-build4/gcc-5.1.0/gcc/testsuite/c-c++-common/goacc/acc_on_device-2.c:20
-1
55 (nil))
The test fails because the "(call .." regexp should not occur with -fopenacc
(the '0' argument to scan-rtl-dump-times at acc_on_device-2.c:27), but it is
apparently detected on at acc_on_device-2.c.191r.expand:33.
Unfortunately, I haven't the slightest idea about what is going on with this
test, but am wondering if it is serious or not.
thanks much for your time and work,
John Stanley
More information about the Gcc-bugs
mailing list