[Bug c/58892] New: ICE in combine.c when using -Os on alpha

2013-10-26 Thread mcree at orcon dot net.nz
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58892

Bug ID: 58892
   Summary: ICE in combine.c when using -Os on alpha
   Product: gcc
   Version: 4.8.2
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c
  Assignee: unassigned at gcc dot gnu.org
  Reporter: mcree at orcon dot net.nz
Target: alpha

Created attachment 31096
  --> http://gcc.gnu.org/bugzilla/attachment.cgi?id=31096&action=edit
Preprocessed C source that causes ICE.

While compiling linux kernel for Alpha get ICE in combine.c:711 when compiling
drivers/media/dvb-core/dvb-demux.c.

Attached preprocessed source from that compilation.  Established that it is the
use of -Os that leads to the ICE. Namely running:

gcc-4.8 -nostdinc -Os -c ices.c

generates the following output:

In file included from
/home/mjc/debian/linux/linux-3.11.5/include/linux/thread_info.h:54:0,
 from
/home/mjc/debian/linux/linux-3.11.5/include/linux/preempt.h:9,
 from
/home/mjc/debian/linux/linux-3.11.5/include/linux/spinlock.h:50,
 from
/home/mjc/debian/linux/linux-3.11.5/include/linux/seqlock.h:29,
 from
/home/mjc/debian/linux/linux-3.11.5/include/linux/time.h:5,
 from
/home/mjc/debian/linux/linux-3.11.5/include/uapi/linux/timex.h:56,
 from
/home/mjc/debian/linux/linux-3.11.5/include/linux/timex.h:56,
 from
/home/mjc/debian/linux/linux-3.11.5/include/linux/sched.h:17,
 from
/home/mjc/debian/linux/linux-3.11.5/drivers/media/dvb-core/dvb_demux.c:24:
/home/mjc/debian/linux/linux-3.11.5/arch/alpha/include/asm/thread_info.h:52:30:
warning: call-clobbered register used for global register variable [enabled by
default]
 register struct thread_info *__current_thread_info __asm__("$8");
  ^
/home/mjc/debian/linux/linux-3.11.5/drivers/media/dvb-core/dvb_demux.c: In
function ‘dvb_dmx_swfilter_packet’:
/home/mjc/debian/linux/linux-3.11.5/drivers/media/dvb-core/dvb_demux.c:474:1:
internal compiler error: in do_SUBST, at combine.c:711
 }
 ^


Compilation is sucessful without -Os option or with -O1.  ICE reappears if
compile with -O2.  ICE only occurs with gcc-4.8 (Debian 4.8.2-1) but not
gcc-4.6 or gcc-4.7 so looks like a regression.

[Bug rtl-optimization/84123] New: internal compiler error: in gen_rtx_SUBREG, at emit-rtl.c:908, alpha linux.

2018-01-30 Thread mcree at orcon dot net.nz
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=84123

Bug ID: 84123
   Summary: internal compiler error: in gen_rtx_SUBREG, at
emit-rtl.c:908, alpha linux.
   Product: gcc
   Version: 8.0.1
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: rtl-optimization
  Assignee: unassigned at gcc dot gnu.org
  Reporter: mcree at orcon dot net.nz
  Target Milestone: ---
Target: alpha

Created attachment 43286
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=43286&action=edit
Preprocessed source

The attached preprocessed source (modified from the libcgns project) leads to
an ICE at optimisation level -O2 but compiles fine at -O1 or -O0.  I have
trimmed the source substantially from its original but trimming it further
loses the ICE.

ICE seen with Debian alpha-linux-gnu-gcc version 7.3.0-1 and also with gcc
recently compiled from the trunk (8.0.1 20180129).

alpha-linux-gnu-gcc -O2 -c test-preprocessed.c
/home/mjc/debian/libcgns/libcgns-3.3.0/src/adf/test.c: In function
‘ADFI_ID_2_file_block_offset.part.0’:
/home/mjc/debian/libcgns/libcgns-3.3.0/src/adf/test.c:619:1: internal compiler
error: in gen_rtx_SUBREG, at emit-rtl.c:908

Recent gcc prints out more information:

./toolchain/gcc-install/bin/gcc -mcpu=ev4 -O2 -c test-preprocessed.c
during RTL pass: combine
/home/mjc/debian/libcgns/libcgns-3.3.0/src/adf/test.c: In function
‘ADFI_ID_2_file_block_offset.part.0’:
/home/mjc/debian/libcgns/libcgns-3.3.0/src/adf/test.c:619:1: internal compiler
error: in gen_rtx_SUBREG, at emit-rtl.c:1010
0x12041b91f gen_rtx_SUBREG(machine_mode, rtx_def*, poly_int<1u, unsigned long>)
../../gcc.git/gcc/emit-rtl.c:1010
0x120f7057f change_zero_ext
../../gcc.git/gcc/combine.c:11496
0x120f7087f recog_for_combine
../../gcc.git/gcc/combine.c:11596
0x120f86d43 try_combine
../../gcc.git/gcc/combine.c:3595
0x120f8abcf combine_instructions
../../gcc.git/gcc/combine.c:1320
0x120f8abcf rest_of_handle_combine
../../gcc.git/gcc/combine.c:14856
0x120f8abcf execute
../../gcc.git/gcc/combine.c:14901

[Bug target/86774] Alpha port needs updating for CVE-2017-5753

2018-08-02 Thread mcree at orcon dot net.nz
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86774

Michael Cree  changed:

   What|Removed |Added

 CC||mcree at orcon dot net.nz

--- Comment #2 from Michael Cree  ---
Just to note that in testing earlier this year I managed to successfully run
meltdown and spectre v1 attacks on Alpha EV68 hardware.  These attacks were
less successful on EV67 (only a 1% to 2% success rate). I failed to get any
attack on EV56---cache timings did not reveal anything useful (though I did not
spend too much time analysing this case).

[Bug c++/71145] New: Alpha: Error: No lda !gpdisp!278 was found

2016-05-16 Thread mcree at orcon dot net.nz
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71145

Bug ID: 71145
   Summary: Alpha: Error: No lda !gpdisp!278 was found
   Product: gcc
   Version: 7.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c++
  Assignee: unassigned at gcc dot gnu.org
  Reporter: mcree at orcon dot net.nz
  Target Milestone: ---
Target: alpha

In certain packages on debian-ports build logs for the Alpha architecture I am
seeing compile failures of the nature:

{standard input}: Assembler messages:
{standard input}:7233: Error: No lda !gpdisp!278 was found

One such example is src/player/SubscriberInfo.o of the source package libavg
(build log is at
https://buildd.debian.org/status/fetch.php?pkg=libavg&arch=alpha&ver=1.8.1-2.1&stamp=1461798687).
 Compile failure happens with gcc-5 (Debian version 5.3.1-19) and also with
gcc/g++ (7.0.0) built from the trunk about a week ago (though the line number
of the failure changes).

I will attempt to attach preprocessed source of SubscriberInfo.cpp from libavg.
 Um, no I can't; it's too large for the 1000kB limit.  How can I provide the
file?

Compiling with:

g++ -pthread -ffast-math -pipe -g -O2 -c SubscriberInfo-preprocessed.cpp  -fPIC
-o .libs/SubscriberInfo.o

results in the No lda gpdisp error.

It successfully compiles if the -O2 is changed to -O0 or -O1.

[Bug c++/71145] Alpha: Error: No lda !gpdisp!278 was found

2016-05-16 Thread mcree at orcon dot net.nz
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71145

--- Comment #3 from Michael Cree  ---
Created attachment 38500
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=38500&action=edit
compressed preprocessed source

Failing preprocessed source compressed with gzip; hopefully this goes through
okay.

[Bug c++/71145] Alpha: Error: No lda !gpdisp!278 was found

2016-05-18 Thread mcree at orcon dot net.nz
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71145

--- Comment #5 from Michael Cree  ---
Yes, that patch fixes it for me.

[Bug jit/82174] New: Null name in one entry of the builtin_data array of jit-builtins.c

2017-09-11 Thread mcree at orcon dot net.nz
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=82174

Bug ID: 82174
   Summary: Null name in one entry of the builtin_data array of
jit-builtins.c
   Product: gcc
   Version: 8.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: jit
  Assignee: dmalcolm at gcc dot gnu.org
  Reporter: mcree at orcon dot net.nz
  Target Milestone: ---

I see a segmentation violation in some code calling libgccjit.  The backtrace
is:

Program terminated with signal SIGSEGV, Segmentation fault.
#0  pp_format(pretty_printer*, text_info*) () at
../../gcc.git/gcc/pretty-print.c:317
317   output_buffer *buffer = pp_buffer (pp);
(gdb) bt
#0  pp_format(pretty_printer*, text_info*) () at
../../gcc.git/gcc/pretty-print.c:317
#1  0x7fef3c1fc698 in diagnostic_report_diagnostic(diagnostic_context*,
diagnostic_info*) ()
at ../../gcc.git/gcc/diagnostic.c:974
#2  0x7fef3c1fc99e in diagnostic_impl
(richloc=richloc@entry=0x7fff20ffec20, opt=opt@entry=-1, 
gmsgid=gmsgid@entry=0x7fef3c6e88d7 "in %s, at %s:%d",
ap=ap@entry=0x7fff20ffec08, 
kind=kind@entry=DK_ICE) at ../../gcc.git/gcc/diagnostic.c:1099
#3  0x7fef3c1fd63d in internal_error (gmsgid=gmsgid@entry=0x7fef3c6e88d7
"in %s, at %s:%d")
at ../../gcc.git/gcc/diagnostic.c:1422
#4  0x7fef3b631a49 in fancy_abort (
file=file@entry=0x7fef3c29aea0 "../../gcc.git/gcc/jit/jit-builtins.c",
line=line@entry=71, 
function=function@entry=0x7fef3c29ec80  "matches_builtin") at
../../gcc.git/gcc/diagnostic.c:1488
#5  0x7fef3b38c6d8 in gcc::jit::matches_builtin (bd=..., bd=..., 
in_name=0x434b21 "__builtin_ia32_orps256") at
../../gcc.git/gcc/jit/jit-builtins.c:71
#6  gcc::jit::find_builtin_by_name (out_id=,
in_name=0x434b21 "__builtin_ia32_orps256")
at ../../gcc.git/gcc/jit/jit-builtins.c:118
#7  gcc::jit::builtins_manager::get_builtin_function (this=0x2619850, 
name=0x434b21 "__builtin_ia32_orps256") at
../../gcc.git/gcc/jit/jit-builtins.c:150
#8  0x7fef3b644019 in gcc_jit_context_get_builtin_function (ctxt=0x25d2ac0, 
name=name@entry=0x434b21 "__builtin_ia32_orps256") at
../../gcc.git/gcc/jit/libgccjit.c:917
#9  0x00417bfd in ip_be_avx2_fdecls (be=be@entry=0x643820 ) at
intel-avx2.c:201
#10 0x004143d7 in ip_init_jit () at jit.c:892
#11 0x0040a0ac in time_ip_init_jit () at arith-test.c:231
#12 run_im_ii_tests (operator=operator@entry=0, size=size@entry=...,
chk_flag=112) at arith-test.c:505
#13 0x0040594a in main (argc=, argv=) at
arith-test.c:616

Stepping up to #6 find_builtin_by_name() finds that the loop counter i is:

(gdb) print i
$2 = 1092

but the entries about i in the builtin_data array are:

(gdb) print builtin_data[1091]
$5 = {name = 0x7fef3c2a3964 "__builtin__ITM_RfWE", fnclass = BUILT_IN_NORMAL, 
  type = gcc::jit::BT_FN_LDOUBLE_VPTR, both_p = false, fallback_p = true, 
  attr = gcc::jit::ATTR_TM_PURE_TMPURE_NOTHROW_LIST, implicit_p = false}

(gdb) print builtin_data[1092]
$6 = {name = 0x0, fnclass = BUILT_IN_NORMAL, type = gcc::jit::BT_LAST, both_p =
false, fallback_p = false, 
  attr = gcc::jit::ATTR_LAST, implicit_p = false}

(gdb) print builtin_data[1093]
$7 = {name = 0x7fef3c2a3978 "__builtin___asan_init", fnclass = BUILT_IN_NORMAL, 
  type = gcc::jit::BT_FN_VOID, both_p = true, fallback_p = true, attr =
gcc::jit::ATTR_NOTHROW_LEAF_LIST, 
  implicit_p = true}

and it's clear that the name in entry 1092 is NULL, which eventually leads to a
failed insert and the segfault.  The size of the array is 46752 and each entry
has 32 bytes thus the code is expecting 1461 entries in the array.

[Bug c/61336] New: ICE on alpha: in print_operand_address, at config/alpha/alpha.c:5454

2014-05-28 Thread mcree at orcon dot net.nz
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61336

Bug ID: 61336
   Summary: ICE on alpha: in print_operand_address, at
config/alpha/alpha.c:5454
   Product: gcc
   Version: 4.10.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c
  Assignee: unassigned at gcc dot gnu.org
  Reporter: mcree at orcon dot net.nz
Target: alpha

Created attachment 32869
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=32869&action=edit
Failing preprocessed source being malloc/malloc.c from glibc

ICE noted with Debian gcc-4.8.3 and now verified with trunk when compiling
malloc.c from glibc on alpha.  Preprocessed source attached.

/home/mjc/toolchain/gcc-build/./gcc/xgcc -B/home/mjc/toolchain/gcc-build/./gcc/
ccjDEL1Z.c -c -std=gnu99 -fgnu89-inline  -O2 -Wall -Winline -Wwrite-strings
-fmerge-all-constants -frounding-math -g -pipe -Wstrict-prototypes
-mlong-double-128 -mieee -mfp-rounding-mode=d  -fpic
In file included from malloc.c:1878:0:
arena.c: In function ‘ptmalloc_unlock_all2’:
arena.c:303:33: warning: right-hand operand of comma expression has no effect
[-Wunused-value]
arena.c:313:25: warning: right-hand operand of comma expression has no effect
[-Wunused-value]
In file included from malloc.c:1878:0:
arena.c: In function ‘_int_new_arena’:
arena.c:768:24: warning: right-hand operand of comma expression has no effect
[-Wunused-value]
malloc.c: In function ‘__libc_mallopt’:
malloc.c:4833:1: internal compiler error: in print_operand_address, at
config/alpha/alpha.c:5468
0x120a110cf print_operand_address(_IO_FILE*, rtx_def*)
../../gcc.git/gcc/config/alpha/alpha.c:5468
0x1206b3aa7 default_print_operand_address(_IO_FILE*, rtx_def*)
../../gcc.git/gcc/targhooks.c:344
0x12039cc87 output_address(rtx_def*)
../../gcc.git/gcc/final.c:3838
0x120a10e83 print_operand(_IO_FILE*, rtx_def*, int)
../../gcc.git/gcc/config/alpha/alpha.c:5345
0x1206b3a77 default_print_operand(_IO_FILE*, rtx_def*, int)
../../gcc.git/gcc/targhooks.c:330
0x12039cb87 output_operand(rtx_def*, int)
../../gcc.git/gcc/final.c:3822
0x12039d267 output_asm_insn
../../gcc.git/gcc/final.c:3720
0x12039ec2f output_asm_insn
../../gcc.git/gcc/final.c:2643
0x12039ec2f final_scan_insn(rtx_def*, _IO_FILE*, int, int, int*)
../../gcc.git/gcc/final.c:2594
0x12039ef23 final(rtx_def*, _IO_FILE*, int)
../../gcc.git/gcc/final.c:2025
0x12039f533 rest_of_handle_final
../../gcc.git/gcc/final.c:
0x12039f533 execute
../../gcc.git/gcc/final.c:4518
Please submit a full bug report,
with preprocessed source if appropriate.
Please include the complete backtrace with any bug report.
See <http://gcc.gnu.org/bugs.html> for instructions.
{standard input}: Assembler messages:
{standard input}:14226: Warning: end of file in string; '"' inserted
{standard input}: Warning: .ent directive without matching .end
{standard input}: Error: open CFI at the end of file; missing .cfi_endproc
directive

[Bug target/61336] ICE on alpha: in print_operand_address, at config/alpha/alpha.c:5454

2014-06-02 Thread mcree at orcon dot net.nz
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61336

--- Comment #2 from Michael Cree  ---
OK, I had reported the ICE on the basis that any ICE, whether the code under
compilation is correct or not, is a bug.

I guess you are implying that when the problem is an inlined asm then it cannot
be guaranteed that all the compiler's assumptions are satisfied thus an ICE
might be a reasonable outcome?

I think I said the source file is from glibc, but actually it is Debian eglibc,
which has come via the eglibc project from glibc before being masssaged by
Debian.  I shall try to see if I can trip the ICE on glibc source itself (it
doesn't happen with default configure options, but that's not a sufficient
test).

Is there some way one can identify in the source exactly the problematic inline
asm?  I see line 4764 of malloc.c reported in the comment above but that line
involves macros.  (The difference between the eglibc I used and glibc is not at
that point in malloc.c; it might be somewhere in the header files and the
macros defined.)


[Bug target/61586] New: ICE on alpha in alpha_handle_trap_shadows, at config/alpha/alpha.c:8724

2014-06-23 Thread mcree at orcon dot net.nz
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61586

Bug ID: 61586
   Summary: ICE on alpha in alpha_handle_trap_shadows, at
config/alpha/alpha.c:8724
   Product: gcc
   Version: 4.10.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: target
  Assignee: unassigned at gcc dot gnu.org
  Reporter: mcree at orcon dot net.nz
Target: alpha

Created attachment 32985
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=32985&action=edit
Failing preprocessed source.

gcc ICE in alpha_handle_trap_shadows, at config/alpha/alpha.c:8724 seen with
the attached preprocessed source (being a source file from python-scipy) when
compiling at -O2 with both -mieee and -mcpu=ev4 on gcc git master and the 4.9
branch.

/home/mjc/toolchain/gcc-build/./gcc/xgcc -B/home/mjc/toolchain/gcc-build/./gcc/
-g -O2 -mcpu=ev4 -mieee -c ccEXci8c.c 
scipy/ndimage/src/ni_fourier.c: In function ‘NI_FourierFilter’:
scipy/ndimage/src/ni_fourier.c:420:1: internal compiler error: in
alpha_handle_trap_shadows, at config/alpha/alpha.c:8726
0x120a0b303 alpha_handle_trap_shadows
../../gcc.git/gcc/config/alpha/alpha.c:8726
0x120a0b303 alpha_reorg
../../gcc.git/gcc/config/alpha/alpha.c:9396
0x12064347b execute
../../gcc.git/gcc/reorg.c:3959
Please submit a full bug report,
with preprocessed source if appropriate.

Reducing optimisation to -O1 or leaving out any of -mieee or -mcpu=ev4 results
in a successful compilation.  While I have not checked the gcc git 4.8 branch I
note that Debian supplied gcc-4.8 compiles the file fine whereas Debian
supplied gcc-4.9 ICEs so likely to be a regression from the 4.8 branch.

I wonder if this ICE is related in any way to bug 56858.

[Bug c/59820] New: alpha: incorrect optimisation with -mcpu=ev4 and -O2

2014-01-15 Thread mcree at orcon dot net.nz
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59820

Bug ID: 59820
   Summary: alpha: incorrect optimisation with -mcpu=ev4 and -O2
   Product: gcc
   Version: unknown
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c
  Assignee: unassigned at gcc dot gnu.org
  Reporter: mcree at orcon dot net.nz
Target: alpha

Created attachment 31837
  --> http://gcc.gnu.org/bugzilla/attachment.cgi?id=31837&action=edit
Test code exhibiting problem

Compiling the attached test (which is a cut down version of a test from
glibc test suite) on an Alpha with -mcpu=ev4 at optimisation -O2 leads
to a segmentation fault when the test is run.   Output is:

$ gcc -mcpu=ev4 -O2 -o gcc-optim-test gcc-optim-test.c 
$ ./gcc-optim-test 
set bar to 1 (LE)
Segmentation fault

Compiling at lower optimisation works correctly, e.g.:

$ gcc -mcpu=ev4 -O1 -o gcc-optim-test gcc-optim-test.c 
$ ./gcc-optim-test 
set bar to 1 (LE)
get sum of foo and bar (LD) = 1

Compiling for more advanced Alpha CPU works correctly, even at -O2, e.g.:

$ gcc -mcpu=ev5 -O2 -o gcc-optim-test gcc-optim-test.c 
$ ./gcc-optim-test 
set bar to 1 (LE)
get sum of foo and bar (LD) = 1

Bug is seen on all versions of gcc tested ranging from gcc-4.4 upto gcc-4.8
from Debian, and gcc git master at commit eb5d7331da45b675e (SVN trunk
206563).

Running the failing version under gdb:

$ gcc -g -mcpu=ev4 -O2 -o gcc-optim-test gcc-optim-test.c 
$ gdb ./gcc-optim-test 
(gdb) run
Starting program: /home/mjc/test/./gcc-optim-test 
set bar to 1 (LE)

Program received signal SIGSEGV, Segmentation fault.
0x0201545c in __tls_get_addr () from /lib/ld-linux.so.2
(gdb) bt full
#0  0x0201545c in __tls_get_addr () from /lib/ld-linux.so.2
No symbol table info available.
#1  0x000125a4 in do_test () at gcc-optim-test.c:44
__result = 0x2031230
result = 0
ap = 
bp = 
#2  main () at gcc-optim-test.c:63
No locals.

(gdb) disass
Dump of assembler code for function __tls_get_addr:
   0x02015420 <+0>:ldahgp,2(t12)
   0x02015424 <+4>:ldagp,27728(gp)
   0x02015428 <+8>:ldasp,-32(sp)
   0x0201542c <+12>:rduniq
   0x02015430 <+16>:clra1
   0x02015434 <+20>:ldqt0,-28776(gp)
   0x02015438 <+24>:stqs0,8(sp)
   0x0201543c <+28>:mova0,s0
   0x02015440 <+32>:ldqa0,0(v0)
   0x02015444 <+36>:stqs1,16(sp)
   0x02015448 <+40>:movv0,s1
   0x0201544c <+44>:stqra,0(sp)
   0x02015450 <+48>:ldqt1,0(a0)
   0x02015454 <+52>:cmpeqt1,t0,t0
   0x02015458 <+56>:beqt0,0x2015494 <__tls_get_addr+116>
=> 0x0201545c <+60>:ldqa2,0(s0)

(gdb) info registers
v0 0x2030b102199023454992
t0 0x11
t1 0x11
t2 0x2941
t3 0x2025ff02199023411184
t4 0x72616220646e61208241976684328149280
t5 0x6f660029444c28208027103563073988640
t6 0x61206f6f6620666f6998716345179203183
t7 0x61206998593820933750784
s0 0x1200185d84831938008
s1 0x2030b102199023454992
s2 0x1201383884833117064
s3 0x00
s4 0x120143d904833164688
s5 0x1201453304833170224
fp 0x00
a0 0x20312302199023456816
a1 0x00
a2 0x00
a3 0x21c87982199025125272
a4 0x-1
a5 0x00
t8 0x2840
t9 0x20b72802199024005760
t100x1117
t110x4001024
ra 0x125a44831839652
t120x20154202199023342624
at 0x7c8ad2d82089472728
gp 0x203c0700x203c070
sp 0x11f8cd5c00x11f8cd5c0
pc 0x201545c0x201545c <__tls_get_addr+60>
(gdb) print (long)*0x1200185d8
Cannot access memory at address 0x1200185d8

So it would appear that the argument passed to __tls_get_addr() was not
a valid address.


[Bug target/59679] gcc version 4.7.3 and gcc version 4.5.3 cause an unaligned access exception on NetBSD/Alpha

2014-01-26 Thread mcree at orcon dot net.nz
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59679

Michael Cree  changed:

   What|Removed |Added

 CC||mcree at orcon dot net.nz

--- Comment #10 from Michael Cree  ---
This misaligned access in perl is also seen on Debian Alpha Linux. I have been
able to reduce the scope.c file substantially while maintaining the misaligned
access.  I will attach that as scope-reduced.c.

The misaligned access occurs in line 60, being the case SAVEt_I8 of the switch
statement, and with -O2 compiles to:

extbl $4,1,$4
$LVL18:
ldl $1,0($6)
bic $1,255,$1
bis $4,$1,$4
stl $4,0($6)

Thus there is an assumption that ARG0_PTR (which expands to arg0.any_ptr)
points to an address at least divisible by four.

If one compiles with -fno-tree-ter as mentioned in the initial bug report then
one gets:

sll $5,48,$5
$LVL18:
ldq_u $1,0($4)
sra $5,56,$5
mskbl $1,$4,$1
insbl $5,$4,$5
bis $5,$1,$5
stq_u $5,0($4)

which copes with any alignment.

If either of the cases SAVEt_SAVESWITCHSTACK or SAVEt_SET_SVFLAGS is removed
from the switch statement then the ldq_u/mskbl/insbl sequence results. Thus
there appears to be some interaction between those two cases and the code at
the top of the while statement that the compiler is using to determine that
ARG0_PTR points to an address at least divisible by four.  I admit that I have
so far failed to see how such an inference can be made but look forward to
being educated by the erudite gcc maintainers.

Compilation was done with:

cc -DPERL_CORE  -D_REENTRANT -D_GNU_SOURCE -DDEBIAN -D_FORTIFY_SOURCE=2 -g -O2
-v -S scope-reduced.c
Using built-in specs.
COLLECT_GCC=cc
Target: alpha-linux-gnu
Configured with: ../src/configure -v --with-pkgversion='Debian 4.8.2-13'
--with-bugurl=file:///usr/share/doc/gcc-4.8/README.Bugs
--enable-languages=c,c++,java,go,d,fortran,objc,obj-c++ --prefix=/usr
--program-suffix=-4.8 --enable-shared --enable-linker-build-id
--libexecdir=/usr/lib --without-included-gettext --enable-threads=posix
--with-gxx-include-dir=/usr/include/c++/4.8 --libdir=/usr/lib --enable-nls
--with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug
--enable-libstdcxx-time=yes --enable-gnu-unique-object --disable-libssp
--disable-libmudflap --disable-libitm --disable-libsanitizer
--disable-libquadmath --enable-plugin --with-system-zlib
--disable-browser-plugin --enable-java-awt=gtk --enable-gtk-cairo
--with-java-home=/usr/lib/jvm/java-1.5.0-gcj-4.8-alpha/jre --enable-java-home
--with-jvm-root-dir=/usr/lib/jvm/java-1.5.0-gcj-4.8-alpha
--with-jvm-jar-dir=/usr/lib/jvm-exports/java-1.5.0-gcj-4.8-alpha
--with-arch-directory=alpha --with-ecj-jar=/usr/share/java/eclipse-ecj.jar
--enable-objc-gc --enable-multiarch --with-long-double-128
--enable-checking=release --build=alpha-linux-gnu --host=alpha-linux-gnu
--target=alpha-linux-gnu
Thread model: posix
gcc version 4.8.2 (Debian 4.8.2-13) 
COLLECT_GCC_OPTIONS='-D' 'PERL_CORE' '-D' '_REENTRANT' '-D' '_GNU_SOURCE' '-D'
'DEBIAN' '-D' '_FORTIFY_SOURCE=2' '-g' '-O2' '-v' '-S'
 /usr/lib/gcc/alpha-linux-gnu/4.8/cc1 -quiet -v -imultilib . -imultiarch
alpha-linux-gnu -D PERL_CORE -D _REENTRANT -D _GNU_SOURCE -D DEBIAN -D
_FORTIFY_SOURCE=2 scope-reduced.c -quiet -dumpbase scope-reduced.c -auxbase
scope-reduced -g -O2 -version -o scope-reduced.s
GNU C (Debian 4.8.2-13) version 4.8.2 (alpha-linux-gnu)
compiled by GNU C version 4.8.2, GMP version 5.1.3, MPFR version 3.1.2-p3,
MPC version 1.0.1
GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
ignoring nonexistent directory "/usr/local/include/alpha-linux-gnu"
ignoring nonexistent directory
"/usr/lib/gcc/alpha-linux-gnu/4.8/../../../../alpha-linux-gnu/include"
#include "..." search starts here:
#include <...> search starts here:
 /usr/lib/gcc/alpha-linux-gnu/4.8/include
 /usr/local/include
 /usr/lib/gcc/alpha-linux-gnu/4.8/include-fixed
 /usr/include/alpha-linux-gnu
 /usr/include
End of search list.
GNU C (Debian 4.8.2-13) version 4.8.2 (alpha-linux-gnu)
compiled by GNU C version 4.8.2, GMP version 5.1.3, MPFR version 3.1.2-p3,
MPC version 1.0.1
GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
Compiler executable checksum: 503630c10eca9d1ddabc1e36fce68a5f
COMPILER_PATH=/usr/lib/gcc/alpha-linux-gnu/4.8/:/usr/lib/gcc/alpha-linux-gnu/4.8/:/usr/lib/gcc/alpha-linux-gnu/:/usr/lib/gcc/alpha-linux-gnu/4.8/:/usr/lib/gcc/alpha-linux-gnu/
LIBRARY_PATH=/usr/lib/gcc/alpha-linux-gnu/4.8/:/usr/lib/gcc/alpha-linux-gnu/4.8/../../../alpha-linux-gnu/:/usr/lib/gcc/alpha-linux-gnu/4.8/../../../:/lib/alpha-linux-gnu/:/lib/:/usr/lib/alpha-linux-gnu/:/usr/lib/
COLLECT_GCC_OPTIONS='-D' 'PERL_CORE' '-D' '_REENTRANT' '-D' '_GNU_SOURCE' '-D'
'DEBIAN' '-D' '_FORTIFY_SOURCE=2' '-g' '-O2' '-v' '-S'

I will also attach preprocessed source.


[Bug target/59679] gcc version 4.7.3 and gcc version 4.5.3 cause an unaligned access exception on NetBSD/Alpha

2014-01-26 Thread mcree at orcon dot net.nz
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59679

--- Comment #11 from Michael Cree  ---
Created attachment 31957
  --> http://gcc.gnu.org/bugzilla/attachment.cgi?id=31957&action=edit
Reduced version of scope.c illustrating problem.


[Bug target/59679] gcc version 4.7.3 and gcc version 4.5.3 cause an unaligned access exception on NetBSD/Alpha

2014-01-26 Thread mcree at orcon dot net.nz
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59679

--- Comment #12 from Michael Cree  ---
Created attachment 31958
  --> http://gcc.gnu.org/bugzilla/attachment.cgi?id=31958&action=edit
Preprocessed version of scope-reduced.c


[Bug target/64113] New: Gcc on Alpha: Error: No lda !gpdisp!282 was found

2014-11-28 Thread mcree at orcon dot net.nz
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64113

Bug ID: 64113
   Summary: Gcc on Alpha: Error: No lda !gpdisp!282 was found
   Product: gcc
   Version: 4.9.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: target
  Assignee: unassigned at gcc dot gnu.org
  Reporter: mcree at orcon dot net.nz
Target: alpha-linux-gnu

gcc-4.9.x (and the trunk a couple of weeks ago) compiling certain software
packages (e.g. systemd) on an Alpha running Debian Alpha Linux results in
errors at the link stage such as:

{standard input}: Assembler messages:
{standard input}:5327: Error: No lda !gpdisp!282 was found
lto-wrapper: gcc returned 1 exit status
/usr/bin/ld: lto-wrapper failed
collect2: error: ld returned 1 exit status

These packages are successfully compiled with gcc-4.8.x.  

I have not been able to construct a minimal source exhibiting the problem.  But
because gcc-4.9.0 exhibits the failure and gcc-4.8.0 compiles the code
successfully I have been able to bisect to the first commit in gcc that
produces those errors, and that commit is:

commit c59258dcb37171743fdc6d393e767834aac9642b
Author: law 
Date:   Tue Nov 12 16:41:51 2013 +

* gimple-ssa-isolate-paths.c (check_loadstore): New function.
(insert_trap_and_remove_trailing_statements): New argument OP which
is the NULL pointer.  Emit the trap after the load/store through
the NULL pointer.  Simplify the RHS of a store through a NULL pointer
when trivial to do so.
(isolate_path): Corresponding changes.
(gimple_ssa_isolate_erroneous_path): Likewise.

* gcc.dg/tree-ssa/isolate-1.c: Update expected output.
* gcc.dg/tree-ssa/isolate-5.c: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@204708
138bc75d-0d04-0410-961f-82ee72b054a4


[Bug target/66207] Switch alpha to LRA

2024-10-11 Thread mcree at orcon dot net.nz via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66207

Michael Cree  changed:

   What|Removed |Added

 CC||mcree at orcon dot net.nz

--- Comment #14 from Michael Cree  ---
The Linux kernel has removed non-BWX support for Alpha. The Debian Alpha port
has increased the baseline to BWX supported Alphas only. Maybe it is time that
gcc did so too.  If that would make it realistic to get LRA support for the
Alpha target then I would support such a move.