[Bug tree-optimization/45623] [4.5/4.6 Regression] GCC 4.5.[01] breaks our ffi on Linux64. ABI break?

2010-09-16 Thread rguenth at gcc dot gnu dot org
--- Comment #26 from rguenth at gcc dot gnu dot org 2010-09-16 11:06 --- Subject: Bug 45623 Author: rguenth Date: Thu Sep 16 11:06:25 2010 New Revision: 164333 URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=164333 Log: 2010-09-16 Richard Guenther rguent...@suse.de PR

[Bug tree-optimization/45623] [4.5/4.6 Regression] GCC 4.5.[01] breaks our ffi on Linux64. ABI break?

2010-09-15 Thread rguenth at gcc dot gnu dot org
--- Comment #14 from rguenth at gcc dot gnu dot org 2010-09-15 12:31 --- You are accessing a pointer of type char *s1 via an lvalue of type void * (*data). Or speaking in C++, you are accessing an object of dynamic type void * (stored to via *data) by an lvalue of type char * (s1).

[Bug tree-optimization/45623] [4.5/4.6 Regression] GCC 4.5.[01] breaks our ffi on Linux64. ABI break?

2010-09-15 Thread mh+gcc at glandium dot org
--- Comment #15 from mh+gcc at glandium dot org 2010-09-15 12:47 --- Note that the original code doesn't use char *. I used char * to make it easily visible with a printf. Actually, just writing void foo(jsval_layout l, void *s2) { jsval_layout m; m.asBits = l.asBits; void

[Bug tree-optimization/45623] [4.5/4.6 Regression] GCC 4.5.[01] breaks our ffi on Linux64. ABI break?

2010-09-15 Thread mh+gcc at glandium dot org
--- Comment #16 from mh+gcc at glandium dot org 2010-09-15 12:52 --- The real code where this gets problematic: http://mxr.mozilla.org/mozilla-central/source/js/src/ctypes/CTypes.cpp#5615 The function it calls: http://mxr.mozilla.org/mozilla-central/source/js/src/ctypes/CTypes.cpp#5542

[Bug tree-optimization/45623] [4.5/4.6 Regression] GCC 4.5.[01] breaks our ffi on Linux64. ABI break?

2010-09-15 Thread rguenth at gcc dot gnu dot org
--- Comment #17 from rguenth at gcc dot gnu dot org 2010-09-15 13:03 --- points-to analysis does not honor GCCs type-punning through union extension (it works on x86_64 because ptr and asBits match in size and thus SRA cleans the code up before pointer-analysis). So PTA sees

[Bug tree-optimization/45623] [4.5/4.6 Regression] GCC 4.5.[01] breaks our ffi on Linux64. ABI break?

2010-09-15 Thread mh+gcc at glandium dot org
--- Comment #18 from mh+gcc at glandium dot org 2010-09-15 13:14 --- (In reply to comment #17) Thus, as a workaround you should make sure the asBits field matches pointer-size (so for example use uintptr_t isntead of uint64_t). which is not possible in the original code, as the union

[Bug tree-optimization/45623] [4.5/4.6 Regression] GCC 4.5.[01] breaks our ffi on Linux64. ABI break?

2010-09-15 Thread rguenth at gcc dot gnu dot org
--- Comment #19 from rguenth at gcc dot gnu dot org 2010-09-15 13:24 --- Another workaround is to use -fno-tree-pta. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45623

[Bug tree-optimization/45623] [4.5/4.6 Regression] GCC 4.5.[01] breaks our ffi on Linux64. ABI break?

2010-09-15 Thread mh+gcc at glandium dot org
--- Comment #20 from mh+gcc at glandium dot org 2010-09-15 13:41 --- (In reply to comment #19) Another workaround is to use -fno-tree-pta. Doesn't work here. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45623

[Bug tree-optimization/45623] [4.5/4.6 Regression] GCC 4.5.[01] breaks our ffi on Linux64. ABI break?

2010-09-15 Thread rguenth at gcc dot gnu dot org
--- Comment #21 from rguenth at gcc dot gnu dot org 2010-09-15 13:50 --- (In reply to comment #20) (In reply to comment #19) Another workaround is to use -fno-tree-pta. Doesn't work here. For the original code? Then your reduced testcase is different from the original problem.

[Bug tree-optimization/45623] [4.5/4.6 Regression] GCC 4.5.[01] breaks our ffi on Linux64. ABI break?

2010-09-15 Thread mh+gcc at glandium dot org
--- Comment #22 from mh+gcc at glandium dot org 2010-09-15 13:52 --- (In reply to comment #21) For the original code? Then your reduced testcase is different from the original problem. It doesn't work for the reduced testcase here, with gcc 4.5.1 --

[Bug tree-optimization/45623] [4.5/4.6 Regression] GCC 4.5.[01] breaks our ffi on Linux64. ABI break?

2010-09-15 Thread rguenther at suse dot de
--- Comment #23 from rguenther at suse dot de 2010-09-15 13:56 --- Subject: Re: [4.5/4.6 Regression] GCC 4.5.[01] breaks our ffi on Linux64. ABI break? On Wed, 15 Sep 2010, mh+gcc at glandium dot org wrote: --- Comment #22 from mh+gcc at glandium dot org 2010-09-15 13:52

[Bug tree-optimization/45623] [4.5/4.6 Regression] GCC 4.5.[01] breaks our ffi on Linux64. ABI break?

2010-09-15 Thread rguenth at gcc dot gnu dot org
--- Comment #24 from rguenth at gcc dot gnu dot org 2010-09-15 13:59 --- Created an attachment (id=21801) -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=21801action=view) patch I am testing this patch (for 4.5 branch). -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45623

[Bug tree-optimization/45623] [4.5/4.6 Regression] GCC 4.5.[01] breaks our ffi on Linux64. ABI break?

2010-09-15 Thread mh+gcc at glandium dot org
--- Comment #25 from mh+gcc at glandium dot org 2010-09-15 14:01 --- Oh, I was trying with -O2, yes, it works with -O1 -fno-tree-pta. Let me try on the original code, too. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45623