[Bug driver/111527] COLLECT_GCC_OPTIONS option hits single-variable limits too early

2024-08-12 Thread randy.macleod at windriver dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=111527

--- Comment #14 from Randy MacLeod  ---
There is a revised patch that has finally been tested after someone's vacation.
Deepthi, please share the link to the patch on this list once it's sent.

[Bug tree-optimization/115824] [12 Regression] Strange -Warray-bounds warning when assigning an initializer list to a vector of pointers

2024-07-25 Thread randy.macleod at windriver dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115824

--- Comment #5 from Randy MacLeod  ---
Andrew, Is Rogério's confirmation, that reverting r12-10250-g8ec265c1464dec
avoids the error, sufficient to revert the commit on 12.4 or do you want
someone to write a test case, confirm it works on 12.3's tag and then do a git
bisect b/w 12.3 and 12.4 ?

It would be nice to have the 1-element copy optimization, if we can figure out
what's causing the indexing error. I may spend more time and look at the
preprocessor output when I'm back from a week off work.

[Bug target/81317] builtin_vec_ld fails for powerpc with altivec

2017-11-23 Thread randy.macleod at windriver dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81317

--- Comment #28 from Randy MacLeod  ---
Alex, thanks for confirming, I was worried that it was one of the _perfectly_
sensible local patches we have in YP.  ;-)

FYI, a local toolchain expert has started working on this defect so stay tuned
/ keeep refreshing.

[Bug target/81317] builtin_vec_ld fails for powerpc with altivec

2017-09-13 Thread randy.macleod at windriver dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81317

--- Comment #25 from Randy MacLeod  ---
Any progress or need for additional information? 
What should I expect over the coming weeks?

[Bug target/81317] builtin_vec_ld fails for powerpc with altivec

2017-08-16 Thread randy.macleod at windriver dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81317

--- Comment #24 from Randy MacLeod  ---
This ICE still happens with gcc-7.2. 
Here's the stacktrace:

(gdb) bt
#0  store_expr_with_bounds (exp=exp@entry=0x76275900,
target=target@entry=0x7625d660, call_param_p=call_param_p@entry=0,
nontemporal=nontemporal@entry=false, reverse=reverse@entry=false, 
btarget=btarget@entry=0x76524318) at
../../../../../../../work-shared/gcc-7.2.0-r0/gcc-7.2.0/gcc/expr.c:5575
#1  0x00760cb0 in expand_assignment (to=0x76524318,
from=from@entry=0x76275900, nontemporal=nontemporal@entry=false) at
../../../../../../../work-shared/gcc-7.2.0-r0/gcc-7.2.0/gcc/expr.c:5321
#2  0x0067309b in expand_call_stmt (stmt=0x76521750) at
../../../../../../../work-shared/gcc-7.2.0-r0/gcc-7.2.0/gcc/cfgexpand.c:2656
#3  expand_gimple_stmt_1 (stmt=0x76521750) at
../../../../../../../work-shared/gcc-7.2.0-r0/gcc-7.2.0/gcc/cfgexpand.c:3571
#4  expand_gimple_stmt (stmt=stmt@entry=0x76521750) at
../../../../../../../work-shared/gcc-7.2.0-r0/gcc-7.2.0/gcc/cfgexpand.c:3737
#5  0x00674a91 in expand_gimple_basic_block (bb=0x7659f680,
disable_tail_calls=disable_tail_calls@entry=false) at
../../../../../../../work-shared/gcc-7.2.0-r0/gcc-7.2.0/gcc/cfgexpand.c:5744
#6  0x0067957f in (anonymous namespace)::pass_expand::execute
(this=, fun=0x7639a0b0) at
../../../../../../../work-shared/gcc-7.2.0-r0/gcc-7.2.0/gcc/cfgexpand.c:6357
#7  0x0092c99b in execute_one_pass (pass=pass@entry=0x1a8a650) at
../../../../../../../work-shared/gcc-7.2.0-r0/gcc-7.2.0/gcc/passes.c:2465
#8  0x0092d1b8 in execute_pass_list_1 (pass=0x1a8a650) at
../../../../../../../work-shared/gcc-7.2.0-r0/gcc-7.2.0/gcc/passes.c:2554
#9  0x0092d215 in execute_pass_list (fn=,
pass=) at
../../../../../../../work-shared/gcc-7.2.0-r0/gcc-7.2.0/gcc/passes.c:2565
#10 0x006a3dad in cgraph_node::expand (this=0x7649be60) at
../../../../../../../work-shared/gcc-7.2.0-r0/gcc-7.2.0/gcc/cgraphunit.c:2042
#11 0x006a52dd in expand_all_functions () at
../../../../../../../work-shared/gcc-7.2.0-r0/gcc-7.2.0/gcc/cgraphunit.c:2178
#12 symbol_table::compile (this=this@entry=0x76585000) at
../../../../../../../work-shared/gcc-7.2.0-r0/gcc-7.2.0/gcc/cgraphunit.c:2535
#13 0x006a6d38 in symbol_table::compile (this=0x76585000) at
../../../../../../../work-shared/gcc-7.2.0-r0/gcc-7.2.0/gcc/cgraphunit.c:2599
#14 symbol_table::finalize_compilation_unit (this=0x76585000) at
../../../../../../../work-shared/gcc-7.2.0-r0/gcc-7.2.0/gcc/cgraphunit.c:2625
#15 0x009e8060 in compile_file () at
../../../../../../../work-shared/gcc-7.2.0-r0/gcc-7.2.0/gcc/toplev.c:492
#16 0x0057817c in do_compile () at
../../../../../../../work-shared/gcc-7.2.0-r0/gcc-7.2.0/gcc/toplev.c:2003
#17 toplev::main (this=this@entry=0x7fffada0, argc=argc@entry=27,
argv=argv@entry=0x7fffaea8) at
../../../../../../../work-shared/gcc-7.2.0-r0/gcc-7.2.0/gcc/toplev.c:2137
#18 0x0057a517 in main (argc=27, argv=0x7fffaea8) at
../../../../../../../work-shared/gcc-7.2.0-r0/gcc-7.2.0/gcc/main.c:39


Aside from the address variations and the newer toolchain version, the stack
trackes look the same to my untrained dragon slaying eyes. :)

[Bug target/81317] builtin_vec_ld fails for powerpc with altivec

2017-07-21 Thread randy.macleod at windriver dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81317

--- Comment #23 from Randy MacLeod  ---
Here is the 'bt' and 'bt full' with line numbers and symbols. YP diff to enable
this is below as well. Thanks for you patience as I re-learn these ropes.

Program received signal SIGSEGV, Segmentation fault.
store_expr_with_bounds (exp=exp@entry=0x7658ed80,
target=target@entry=0x76722930, call_param_p=call_param_p@entry=0, 
nontemporal=nontemporal@entry=false, reverse=reverse@entry=false,
btarget=btarget@entry=0x7658d480)
at ../../../../../../../work-shared/gcc-7.1.0-r0/gcc-7.1.0/gcc/expr.c:5575
5575  if (CONSTANT_P (temp) && GET_MODE (temp) == VOIDmode
(gdb) bt 
#0  store_expr_with_bounds (exp=exp@entry=0x7658ed80,
target=target@entry=0x76722930, call_param_p=call_param_p@entry=0, 
nontemporal=nontemporal@entry=false, reverse=reverse@entry=false,
btarget=btarget@entry=0x7658d480)
at ../../../../../../../work-shared/gcc-7.1.0-r0/gcc-7.1.0/gcc/expr.c:5575
#1  0x007604e0 in expand_assignment (to=0x7658d480,
from=from@entry=0x7658ed80, nontemporal=nontemporal@entry=false)
at ../../../../../../../work-shared/gcc-7.1.0-r0/gcc-7.1.0/gcc/expr.c:5321
#2  0x006728fb in expand_call_stmt (stmt=0x76715240) at
../../../../../../../work-shared/gcc-7.1.0-r0/gcc-7.1.0/gcc/cfgexpand.c:2656
#3  expand_gimple_stmt_1 (stmt=0x76715240) at
../../../../../../../work-shared/gcc-7.1.0-r0/gcc-7.1.0/gcc/cfgexpand.c:3571
#4  expand_gimple_stmt (stmt=stmt@entry=0x76715240) at
../../../../../../../work-shared/gcc-7.1.0-r0/gcc-7.1.0/gcc/cfgexpand.c:3737
#5  0x006742f1 in expand_gimple_basic_block (bb=0x765a0410,
disable_tail_calls=disable_tail_calls@entry=false)
at
../../../../../../../work-shared/gcc-7.1.0-r0/gcc-7.1.0/gcc/cfgexpand.c:5744
#6  0x00678ddf in (anonymous namespace)::pass_expand::execute
(this=, fun=0x7671) 
[90/202]
at
../../../../../../../work-shared/gcc-7.1.0-r0/gcc-7.1.0/gcc/cfgexpand.c:6357
#7  0x0092be4b in execute_one_pass (pass=pass@entry=0x1a80650) at
../../../../../../../work-shared/gcc-7.1.0-r0/gcc-7.1.0/gcc/passes.c:2465
#8  0x0092c668 in execute_pass_list_1 (pass=0x1a80650) at
../../../../../../../work-shared/gcc-7.1.0-r0/gcc-7.1.0/gcc/passes.c:2554
#9  0x0092c6c5 in execute_pass_list (fn=,
pass=)
at
../../../../../../../work-shared/gcc-7.1.0-r0/gcc-7.1.0/gcc/passes.c:2565
#10 0x006a360d in cgraph_node::expand (this=0x7670c2e0) at
../../../../../../../work-shared/gcc-7.1.0-r0/gcc-7.1.0/gcc/cgraphunit.c:2042
#11 0x006a4b3d in expand_all_functions () at
../../../../../../../work-shared/gcc-7.1.0-r0/gcc-7.1.0/gcc/cgraphunit.c:2178
#12 symbol_table::compile (this=this@entry=0x76585000) at
../../../../../../../work-shared/gcc-7.1.0-r0/gcc-7.1.0/gcc/cgraphunit.c:2535
---Type  to continue, or q  to quit---
#13 0x006a6598 in symbol_table::compile (this=0x76585000)
at
../../../../../../../work-shared/gcc-7.1.0-r0/gcc-7.1.0/gcc/cgraphunit.c:2599
#14 symbol_table::finalize_compilation_unit (this=0x76585000) at
../../../../../../../work-shared/gcc-7.1.0-r0/gcc-7.1.0/gcc/cgraphunit.c:2625
#15 0x009e75b0 in compile_file () at
../../../../../../../work-shared/gcc-7.1.0-r0/gcc-7.1.0/gcc/toplev.c:492
#16 0x00577a4c in do_compile () at
../../../../../../../work-shared/gcc-7.1.0-r0/gcc-7.1.0/gcc/toplev.c:2000
#17 toplev::main (this=this@entry=0x7fffada0, argc=argc@entry=27,
argv=argv@entry=0x7fffaea8)
at
../../../../../../../work-shared/gcc-7.1.0-r0/gcc-7.1.0/gcc/toplev.c:2134
#18 0x00579dd7 in main (argc=27, argv=0x7fffaea8) at
../../../../../../../work-shared/gcc-7.1.0-r0/gcc-7.1.0/gcc/main.c:39
(gdb)


(gdb) bt full  
  [69/202]
#0  store_expr_with_bounds (exp=exp@entry=0x7658ed80,
target=target@entry=0x76722930, call_param_p=call_param_p@entry=0, 
nontemporal=nontemporal@entry=false, reverse=reverse@entry=false,
btarget=btarget@entry=0x7658d480)
at ../../../../../../../work-shared/gcc-7.1.0-r0/gcc-7.1.0/gcc/expr.c:5575
temp = 0x0
alt_rtl = 0x0
loc = 2147483667
__FUNCTION__ = "store_expr_with_bounds"
#1  0x007604e0 in expand_assignment (to=0x7658d480,
from=from@entry=0x7658ed80, nontemporal=nontemporal@entry=false)
at ../../../../../../../work-shared/gcc-7.1.0-r0/gcc-7.1.0/gcc/expr.c:5321
to_rtx = 
result = 
mode = 
align = 
icode = 
__FUNCTION__ = "expand_assignment"
#2  0x006728fb in expand_call_stmt (stmt=0x76715240) at
../../../../../../../work-shared/gcc-7.1.0-r0/gcc-7.1.0/gcc/cfgexpand.c:26[53/202]
exp = 0x7658ed80
i = 
builtin_p = 
#3  expand_gimple_stmt_1 (stmt=0x76715240) at
../../../../..

[Bug target/81317] builtin_vec_ld fails for powerpc with altivec

2017-07-19 Thread randy.macleod at windriver dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81317

--- Comment #22 from Randy MacLeod  ---
Yes, the host is an x86-64-linux system running Ubuntu-16.04.1.
The cross-compiler was built using the Open Embedded (OE) build system so of
course, it's not part of Ubuntu. 

I did get a better backtrace as shown below but no full symbol table/line
numbers yet.


The OE build puts the toolchain in a sysroot directory structure so I tried
running gdb using the original executable:

$ file
/buildarea/rmacleod/src/distro/yocto/b/sd-ppc/tmp-glibc/work/x86_64-linux/gcc-cross-powerpc/7.1.0-r0/gcc-7.1.0/build.x86_64-linux.powerpc-oe-linux/gcc/cc1
/LONGPATH/build.x86_64-linux.powerpc-oe-linux/gcc/cc1: ELF 64-bit LSB
executable, x86-64, version 1 (GNU/Linux), dynamically linked, interpreter
/lib64/ld-linux-x86-64.so.2, for GNU/Linux 2.6.32,
BuildID[sha1]=e4f4e565fcaeee1a3c291899d42d96b7fd76db1d, not stripped

$ gdb /LONGPATH/build.x86_64-linux.powerpc-oe-linux/gcc/cc1
(gdb) run -fpreprocessed second.i
...
Program received signal SIGSEGV, Segmentation fault.   
   
   [6/1951]
0x0075f743 in store_expr_with_bounds(tree_node*, rtx_def*, int, bool,
bool, tree_node*) ()
(gdb) bt full
#0  0x0075f743 in store_expr_with_bounds(tree_node*, rtx_def*, int,
bool, bool, tree_node*) ()
No symbol table info available.
#1  0x007604e0 in expand_assignment(tree_node*, tree_node*, bool) ()
No symbol table info available.
#2  0x006728fb in expand_gimple_stmt(gimple*) ()
No symbol table info available.
#3  0x006742f1 in expand_gimple_basic_block(basic_block_def*, bool) ()
No symbol table info available.
#4  0x00678ddf in (anonymous
namespace)::pass_expand::execute(function*) ()
No symbol table info available.
#5  0x0092be4b in execute_one_pass(opt_pass*) ()
No symbol table info available.
#6  0x0092c668 in execute_pass_list_1(opt_pass*) [clone .constprop.88]
()
No symbol table info available.
#7  0x0092c6c5 in execute_pass_list(function*, opt_pass*) ()
No symbol table info available.
#8  0x006a360d in cgraph_node::expand() ()
No symbol table info available.
#9  0x006a4b3d in symbol_table::compile() [clone .part.51] ()
No symbol table info available.
#10 0x006a6598 in symbol_table::finalize_compilation_unit() ()
No symbol table info available.
#11 0x009e75b0 in compile_file() ()
No symbol table info available.
#12 0x00577a4c in toplev::main(int, char**) ()
No symbol table info available.
#13 0x00579dd7 in main ()
No symbol table info available.
(gdb) info register
rax0x0  0
rbx0x7658ed80   140737326411136
rcx0x0  0
rdx0x7fffa8b0   140737488332976
rsi0x7fffa8a0   140737488332960
rdi0x0  0
rbp0x76722930   0x76722930
rsp0x7fffa880   0x7fffa880
r8 0x0  0
r9 0x0  0
r100x7658d798   140737326405528
r110x0  0
r120x0  0
r130x0  0
r140x0  0
r150x7658d480   140737326404736
rip0x75f743 0x75f743 
eflags 0x10246  [ PF ZF IF RF ]
cs 0x33 51
ss 0x2b 43
ds 0x0  0
es 0x0  0
fs 0x0  0
gs 0x0  0
(gdb) 

I'm not sure why the symbol table isn't available but I can work on that
tomorrow if needed.

[Bug target/81317] builtin_vec_ld fails for powerpc with altivec

2017-07-19 Thread randy.macleod at windriver dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81317

--- Comment #20 from Randy MacLeod  ---
I can try! ;) How's this:

$ gdb
/buildarea/rmacleod/src/distro/yocto/b/sd-ppc/tmp-glibc/work/ppc7400-oe-linux/libjpeg-turbo/1_1.5.1-r0/recipe-sysroot-native/usr/bin/powerpc-oe-linux/../../libexec/powerpc-oe-linux/gcc/powerpc-oe-linux/7.1.0/cc1

(gdb) run -fpreprocessed second.i -msecure-plt -quiet -dumpbase second.c -m32
-mhard-float -mcpu=7400 -mno-spe -maltivec -auxbase second -g -O2 -Wall
-freport-bug -feliminate-unused-debug-types
-fdebug-prefix-map=/buildarea/rmacleod/src/distro/yocto/b/sd-ppc/tmp-glibc/work/ppc7400-oe-linux/libjpeg-turbo/1_1.5.1-r0=/usr/src/debug/libjpeg-turbo/1_1.5.1-r0
-fdebug-prefix-map=/buildarea/rmacleod/src/distro/yocto/b/sd-ppc/tmp-glibc/work/ppc7400-oe-linux/libjpeg-turbo/1_1.5.1-r0/recipe-sysroot-native=
-fdebug-prefix-map=/buildarea/rmacleod/src/distro/yocto/b/sd-ppc/tmp-glibc/work/ppc7400-oe-linux/libjpeg-turbo/1_1.5.1-r0/recipe-sysroot=
-fPIC -o - -frandom-seed=0 -fdump-noaddr

Program received signal SIGSEGV, Segmentation fault.
0x0075f743 in store_expr_with_bounds(tree_node*, rtx_def*, int, bool,
bool, tree_node*) ()
(gdb) bt
#0  0x0075f743 in store_expr_with_bounds(tree_node*, rtx_def*, int,
bool, bool, tree_node*) ()
#1  0x007604e0 in expand_assignment(tree_node*, tree_node*, bool) ()
#2  0x006728fb in ?? ()
#3  0x006742f1 in ?? ()
#4  0x00678ddf in ?? ()
#5  0x0092be4b in execute_one_pass(opt_pass*) ()
#6  0x0092c668 in ?? ()
#7  0x0092c6c5 in execute_pass_list(function*, opt_pass*) ()
#8  0x006a360d in cgraph_node::expand() ()
#9  0x006a4b3d in ?? ()
#10 0x006a6598 in symbol_table::finalize_compilation_unit() ()
#11 0x009e75b0 in ?? ()
#12 0x00577a4c in toplev::main(int, char**) ()
#13 0x00579dd7 in main ()
(gdb) 
(gdb) info regs
Undefined info command: "regs".  Try "help info".
(gdb) info registers
rax0x0  0
rbx0x7658ed80   140737326411136
rcx0x0  0
rdx0x7fffa870   140737488332912
rsi0x7fffa860   140737488332896
rdi0x0  0
rbp0x76722930   0x76722930
rsp0x7fffa840   0x7fffa840
r8 0x0  0
r9 0x0  0
r100x7658d798   140737326405528
r110x0  0
r120x0  0
r130x0  0
r140x0  0
r150x7658d480   140737326404736
rip0x75f743 0x75f743 
eflags 0x10246  [ PF ZF IF RF ]
cs 0x33 51
ss 0x2b 43
ds 0x0  0
es 0x0  0
fs 0x0  0
gs 0x0  0
(gdb)

[Bug target/81317] builtin_vec_ld fails for powerpc with altivec

2017-07-19 Thread randy.macleod at windriver dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81317

--- Comment #18 from Randy MacLeod  ---
With both patches applied:
1. The "minimal testcase produced by the delta utility" no longer ICEs the
toolchain. 
2. The "smaller reproducer with manual work-around " DOES STILL result in an
ICE as does the libjpeg-turbo build as you'd expect.


Here's the patch I'm using just to keep myself honest:

$ diffstat meta/recipes-devtools/gcc/gcc-7.1/backport-gcc-altivec-no-lhs.patch 
 rs6000-c.c |2 ++
 rs6000.c   |1 +
 2 files changed, 3 insertions(+)

$ cat meta/recipes-devtools/gcc/gcc-7.1/backport-gcc-altivec-no-lhs.patch 
--- a/gcc/config/rs6000/rs6000-c.c
+++ b/gcc/config/rs6000/rs6000-c.c
@@ -6216,6 +6216,8 @@
   /* Strip qualifiers like "const" from the pointer arg.  */
   tree arg1_type = TREE_TYPE (arg1);
   tree inner_type = TREE_TYPE (arg1_type);
+  if (!POINTER_TYPE_P (arg1_type))
+ goto bad;
   if (TYPE_QUALS (TREE_TYPE (arg1_type)) != 0)
{
  arg1_type = build_pointer_type (build_qualified_type (inner_type,
--- a/gcc/config/rs6000/rs6000.c
+++ b/gcc/config/rs6000/rs6000.c
@@ -17001,6 +17001,7 @@
 = (enum rs6000_builtins) DECL_FUNCTION_CODE (fndecl);
   tree arg0, arg1, lhs;

+  if (!gimple_call_lhs (stmt)) return false;
   switch (fn_code)
 {
 /* Flavors of vec_add.  We deliberately don't expand

[Bug target/81317] builtin_vec_ld fails for powerpc with altivec

2017-07-16 Thread randy.macleod at windriver dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81317

--- Comment #17 from Randy MacLeod  ---
Back from vacation, I plan to test the latest patch this week.

[Bug target/81317] builtin_vec_ld fails for powerpc with altivec

2017-07-07 Thread randy.macleod at windriver dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81317

--- Comment #7 from Randy MacLeod  ---
Is anyone working on this bug? I'm not pushing, but rather trying to understand
what to expect.

[Bug target/81317] builtin_vec_ld fails for powerpc with altivec

2017-07-04 Thread randy.macleod at windriver dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81317

--- Comment #6 from Randy MacLeod  ---
Created attachment 41682
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=41682&action=edit
smaller reproducer with manual work-around

The work-around clearly isn't a viable one. 
I believe that builtin_vec_ld(a,b) can take 'a' as a variable but perhaps not.

[Bug target/81317] builtin_vec_ld fails for powerpc with altivec

2017-07-04 Thread randy.macleod at windriver dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81317

--- Comment #5 from Randy MacLeod  ---
I agree that the creduce output should be ignored. :(

I ran 'delta' again with a manually cleaned up input and I got a minimal
reproducer that is shorter:

wc -l output:

old:
  4756 /tmp/jdcolor-altivec.i
   269 /tmp/jdcolor-altivec-testcase-min.i
new:
   104 /tmp/bar.i

Note the comment in bar.i:
unaligned_shift_index =
  __builtin_vec_ld( num_cols , outptr); 
 /* replacing num_cols above with a constant such as 0, passes compile
*/

[Bug c/81317] builtin_vec_ld fails for powerpc with altivec

2017-07-04 Thread randy.macleod at windriver dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81317

--- Comment #3 from Randy MacLeod  ---
Created attachment 41681
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=41681&action=edit
full preprocessor output when building jdcolor-altivec.c

[Bug c/81317] builtin_vec_ld fails for powerpc with altivec

2017-07-04 Thread randy.macleod at windriver dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81317

--- Comment #2 from Randy MacLeod  ---
Created attachment 41680
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=41680&action=edit
minimal testcase produced by the delta utility

[Bug c/81317] builtin_vec_ld fails for powerpc with altivec

2017-07-04 Thread randy.macleod at windriver dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81317

--- Comment #1 from Randy MacLeod  ---
I also used the delta utility to produce a larger reproducer. I'll attach it as
jdcolor-altivec-testcase-min.i along with the full preprocessor output in case
it's useful to have additional context.

[Bug c/81317] New: builtin_vec_ld fails for powerpc with altivec

2017-07-04 Thread randy.macleod at windriver dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81317

Bug ID: 81317
   Summary: builtin_vec_ld fails for powerpc with altivec
   Product: gcc
   Version: unknown
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c
  Assignee: unassigned at gcc dot gnu.org
  Reporter: randy.macleod at windriver dot com
  Target Milestone: ---

When building libjpeg-turbo using oe-core's build system with:
   master with HEAD at:
   325f087 image.bbclass: create root symlinks in nativesdk target sysroot
   on an Ubuntu-16.04.1 LTS host, 
I encountered a toolchain ICE. 

I used creduce to produce a minimal test case:
$ cat testcase.i
jsimd_ycc_extbgrx_convert_altivec_outptr;
__attribute__ ( ( altivec
  ( __builtin_vec_ld
( 1, jsimd_ycc_extbgrx_convert_altivec_outptr )
--
The compile line and error are:

$ powerpc-oe-linux-gcc  -m32 -mhard-float -mcpu=7400 -mno-spe -Wall -Wextra
--sysroot=/buildarea/rmacleod/src/distro/yocto/b/sd-ppc/tmp-glibc/work/ppc7400-oe-linux/libjpeg-turbo/1_1.5.2-r0/recipe-sysroot
-DHAVE_CONFIG_H -I. -I../../libjpeg-turbo-1.5.2/simd -I..
-I../../libjpeg-turbo-1.5.2 -Wall -maltivec -O2 -pipe -g
-feliminate-unused-debug-types
-fdebug-prefix-map=/buildarea/rmacleod/src/distro/yocto/b/sd-ppc/tmp-glibc/work/ppc7400-oe-linux/libjpeg-turbo/1_1.5.2-r0=/usr/src/debug/libjpeg-turbo/1_1.5.2-r0
-fdebug-prefix-map=/buildarea/rmacleod/src/distro/yocto/b/sd-ppc/tmp-glibc/work/ppc7400-oe-linux/libjpeg-turbo/1_1.5.2-r0/recipe-sysroot-native=
-fdebug-prefix-map=/buildarea/rmacleod/src/distro/yocto/b/sd-ppc/tmp-glibc/work/ppc7400-oe-linux/libjpeg-turbo/1_1.5.2-r0/recipe-sysroot=
-c testcase.i  -fPIC -DPIC -o .libs/libsimd_altivec_la-jdcolor-altivec.o
testcase.i:1:1: warning: data definition has no type or storage class
 jsimd_ycc_extbgrx_convert_altivec_outptr;
 ^~~~
testcase.i:1:1: warning: type defaults to 'int' in declaration of
'jsimd_ycc_extbgrx_convert_altivec_outptr' [-Wimplicit-int]
testcase.i:4:21: internal compiler error: Segmentation fault
 ( 1, jsimd_ycc_extbgrx_convert_altivec_outptr )
 ^ 
Please submit a full bug report, 
with preprocessed source if appropriate. 
See <https://gcc.gnu.org/bugs/> for instructions. 



I have also confirmed that using 7.1.1-beta aka 7-20170629 does not fix the
ICE.

I can't easily test the gcc master branch so I await your suggestion.

oe-core builds it's own toolchain but we're close to this version:
$ powerpc-oe-linux-gcc -v 
Using built-in specs.
COLLECT_GCC=powerpc-oe-linux-gcc
COLLECT_LTO_WRAPPER=/buildarea/rmacleod/src/distro/yocto/b/sd-ppc/tmp-glibc/work/ppc7400-oe-linux/libjpeg-turbo/1_1.5.2-r0/recipe-sysroot-native/usr/bin/powerpc-oe-linux/../../libexec/powerpc-oe-linux/gcc/powerpc-oe-linux/7.1.0/lto-wrapper
Target: powerpc-oe-linux
Configured with: ../../../../../../work-shared/gcc-7.1.0-r0/gcc-7.1.0/configure
--build=x86_64-linux --host=x86_64-linux --target=powerpc-oe-linux
--prefix=/buildarea/rmacleod/src/distro/yocto/b/sd-ppc/tmp-glibc/work/x86_64-linux/gcc-cross-powerpc/7.1.0-r0/recipe-sysroot-native/usr
--exec_prefix=/buildarea/rmacleod/src/distro/yocto/b/sd-ppc/tmp-glibc/work/x86_64-linux/gcc-cross-powerpc/7.1.0-r0/recipe-sysroot-native/usr
--bindir=/buildarea/rmacleod/src/distro/yocto/b/sd-ppc/tmp-glibc/work/x86_64-linux/gcc-cross-powerpc/7.1.0-r0/recipe-sysroot-native/usr/bin/powerpc-oe-linux
--sbindir=/buildarea/rmacleod/src/distro/yocto/b/sd-ppc/tmp-glibc/work/x86_64-linux/gcc-cross-powerpc/7.1.0-r0/recipe-sysroot-native/usr/bin/powerpc-oe-linux
--libexecdir=/buildarea/rmacleod/src/distro/yocto/b/sd-ppc/tmp-glibc/work/x86_64-linux/gcc-cross-powerpc/7.1.0-r0/recipe-sysroot-native/usr/libexec/powerpc-oe-linux
--datadir=/buildarea/rmacleod/src/distro/yocto/b/sd-ppc/tmp-glibc/work/x86_64-linux/gcc-cross-powerpc/7.1.0-r0/recipe-sysroot-native/usr/share
--sysconfdir=/buildarea/rmacleod/src/distro/yocto/b/sd-ppc/tmp-glibc/work/x86_64-linux/gcc-cross-powerpc/7.1.0-r0/recipe-sysroot-native/etc
--sharedstatedir=/buildarea/rmacleod/src/distro/yocto/b/sd-ppc/tmp-glibc/work/x86_64-linux/gcc-cross-powerpc/7.1.0-r0/recipe-sysroot-native/com
--localstatedir=/buildarea/rmacleod/src/distro/yocto/b/sd-ppc/tmp-glibc/work/x86_64-linux/gcc-cross-powerpc/7.1.0-r0/recipe-sysroot-native/var
--libdir=/buildarea/rmacleod/src/distro/yocto/b/sd-ppc/tmp-glibc/work/x86_64-linux/gcc-cross-powerpc/7.1.0-r0/recipe-sysroot-native/usr/lib/powerpc-oe-linux
--includedir=/buildarea/rmacleod/src/distro/yocto/b/sd-ppc/tmp-glibc/work/x86_64-linux/gcc-cross-powerpc/7.1.0-r0/recipe-sysroot-native/usr/include
--oldincludedir=/buildarea/rmacleod/src/distro/yocto/b/sd-ppc/tmp-glibc/work/x86_64-linux/gcc-cross-powerpc/7.1.0-r0/recipe-sysroot-native/usr/include
--infodir=/buildare