[Bug rtl-optimization/55278] [4.8/4.9 Regression] Botan performance regressions apparently due to LRA

2013-05-07 Thread jakub at gcc dot gnu.org


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55278



--- Comment #8 from Jakub Jelinek  2013-05-08 
06:58:37 UTC ---

unsigned int

f1 (unsigned int x, unsigned int y)

{

  return (x << y) | (x >> (32 - y));

}



unsigned int

f2 (unsigned int x, unsigned long y)

{

  return (x << y) | (x >> (32 - y));

}



unsigned int

f3 (unsigned int x)

{

  return (x << 1) | (x >> (32 - 1));

}



unsigned int

f4 (unsigned int x)

{

  return (x << (32 - 1)) | (x >> 1);

}



unsigned short int

f5 (unsigned short int x, unsigned int y)

{

  return (x << y) | (x >> (16 - y));

}



unsigned short int

f6 (unsigned short int x, unsigned long y)

{

  return (x << y) | (x >> (16 - y));

}



unsigned char

f7 (unsigned char x, unsigned int y)

{

  return (x << y) | (x >> (8 - y));

}



unsigned char

f8 (unsigned char x, unsigned long y)

{

  return (x << y) | (x >> (8 - y));

}



unsigned int

f9 (unsigned int x, unsigned int y)

{

  return (x << y) | (x >> (sizeof (unsigned int) - y));

}



unsigned int

f10 (unsigned int x, unsigned long y)

{

  return (x << y) | (x >> (sizeof (unsigned int) - y));

}



unsigned int

f11 (unsigned int x)

{

  return (x << 1) | (x >> (sizeof (unsigned int) - 1));

}



unsigned int

f12 (unsigned int x)

{

  return (x << (sizeof (unsigned int) - 1)) | (x >> 1);

}



unsigned short int

f13 (unsigned short int x, unsigned int y)

{

  return (x << y) | (x >> (sizeof (unsigned short) - y));

}



unsigned short int

f14 (unsigned short int x, unsigned long y)

{

  return (x << y) | (x >> (sizeof (unsigned short) - y));

}



unsigned char

f15 (unsigned char x, unsigned int y)

{

  return (x << y) | (x >> (sizeof (unsigned char) - y));

}



unsigned char

f16 (unsigned char x, unsigned long y)

{

  return (x << y) | (x >> (sizeof (unsigned char) - y));

}



shows lots of various issues with rotates:

1) if the shift count isn't int expression, we don't detect that (there is

extra

   cast that bit_rotate: doesn't handle) - example f2

2) for f3 we emit rorl $31, %eax while we should special case it and emit

   roll %eax instead (shorter insn; backend issue)

3) the casts added for promoted types aren't handled - example f5

   - I guess even that is fine to handle, because say for y 17, while << 17

   is defined behavior, >> (16 - 17) or >> (16U - 17) should be undefined

   behavior and thus really y should be [1, 15].

4) the deferred SIZEOF_EXPR folding in C++ plays a role here

5) as mentioned in another PR, these rotate idioms assume non-zero rotation

   count, for 0 they have undefined behavior, so we should recognize also

   another form



So, IMHO bit_rotate: should be extended to handle these (except that it can't

do anything about SIZEOF_EXPR, being a FE tree (unless we add some langhook for

it

or handle it again in C++ lang folder), and perhaps some later pass (bswap pass

or gimple-fold?) should be taught to recognize it too.  And the vectorizer

pattern detection needs to be taught to undo that if there is no vector

rotation optab.


gcc-bugs@gcc.gnu.org

2013-05-07 Thread kai.koehne at digia dot com


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57068



--- Comment #2 from Kai Koehne  2013-05-08 
06:39:48 UTC ---

Still reproducable in revision 198685 . This is most likely a regression

introduced by http://gcc.gnu.org/ml/gcc-patches/2013-04/msg00024.html.


[Bug middle-end/57192] [4.9 Regression] miscompilation at -O3

2013-05-07 Thread dominiq at lps dot ens.fr


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57192



--- Comment #11 from Dominique d'Humieres  
2013-05-08 06:27:32 UTC ---

> Can you check what you see by running f951 under valgrind  ?



It fails for me with:



[macbook] f90/bug% valgrind

/opt/gcc/gcc4.9w/libexec/gcc/x86_64-apple-darwin10.8.0/4.9.0/f951 -O3

pr57192.f90

valgrind: mmap(0x100f87000, 1074532352) failed in UME (load_segment2).


[Bug middle-end/57192] [4.9 Regression] miscompilation at -O3

2013-05-07 Thread Joost.VandeVondele at mat dot ethz.ch


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57192



--- Comment #10 from Joost VandeVondele  
2013-05-08 06:18:54 UTC ---

(In reply to comment #9)

> On x86_64-apple-darwin10.8.0 at revision 198697 with the patch at

> http://gcc.gnu.org/ml/gcc-patches/2013-05/msg00367.html the test executes 
> under

> valgrind without error (but some "reachable" memory leaks).



also with the patch, which I assumed is the one attached to this PR, applied to

gcc, I see the valgrind warnings during compilation. Can you check what you see

by running f951 under valgrind  ?


[Bug fortran/57094] [Fortran-Dev] ICE: in lhd_incomplete_type_error, at langhooks.c:203

2013-05-07 Thread dominiq at lps dot ens.fr


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57094



--- Comment #5 from Dominique d'Humieres  2013-05-08 
06:07:11 UTC ---

For the record, the first test in comment #1 is invalid as n is not

initialized. Now I see something I don't expect for both trunk and fortran-dev:

if I set n to 7, then printing tmp gives 'aa'. Is this expected?

If yes, why? If no, should I open a PR for it?


[Bug fortran/57197] [Fortran-Dev][Regression] ICE in record_reference, at cgraphbuild.c:66

2013-05-07 Thread dominiq at lps dot ens.fr


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57197



Dominique d'Humieres  changed:



   What|Removed |Added



 Status|UNCONFIRMED |NEW

   Last reconfirmed||2013-05-08

 Ever Confirmed|0   |1



--- Comment #1 from Dominique d'Humieres  2013-05-08 
06:01:37 UTC ---

Confirmed.


[Bug middle-end/57192] [4.9 Regression] miscompilation at -O3

2013-05-07 Thread dominiq at lps dot ens.fr


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57192



--- Comment #9 from Dominique d'Humieres  2013-05-08 
06:01:02 UTC ---

On x86_64-apple-darwin10.8.0 at revision 198697 with the patch at

http://gcc.gnu.org/ml/gcc-patches/2013-05/msg00367.html the test executes under

valgrind without error (but some "reachable" memory leaks).


[Bug middle-end/57192] [4.9 Regression] miscompilation at -O3

2013-05-07 Thread Joost.VandeVondele at mat dot ethz.ch


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57192



Joost VandeVondele  changed:



   What|Removed |Added



 Status|RESOLVED|REOPENED

   Last reconfirmed||2013-05-08

 Resolution|FIXED   |

 Ever Confirmed|0   |1



--- Comment #8 from Joost VandeVondele  
2013-05-08 05:47:13 UTC ---

Actually, I see the original problem re-appear with this morning's trunk. So

something seems to randomly trigger this. Running the compilation of the

testcase under valgrind, there appears to be an issue remaining. I'm not

anymore sure this is relate to SLSR, but let me reopen the PR.



==50122== Conditional jump or move depends on uninitialised value(s)

==50122==at 0xDF5DAB: register_active_defs(df_ref_d**) (sparseset.h:147)

==50122==by 0xDF5E34: update_df_init(rtx_def*, rtx_def*) [clone .isra.11]

(fwprop.c:893)

==50122==by 0xDF65F1: try_fwprop_subst(df_ref_d*, rtx_def**, rtx_def*,

rtx_def*, bool) (fwprop.c:962)

==50122==by 0xDF6A91: forward_propagate_into(df_ref_d*) (fwprop.c:1342)

==50122==by 0xDF7A07: fwprop_addr() (fwprop.c:1528)

==50122==by 0x9021DF: execute_one_pass(opt_pass*) (passes.c:2337)

==50122==by 0x902644: execute_pass_list(opt_pass*) (passes.c:2389)

==50122==by 0x902656: execute_pass_list(opt_pass*) (passes.c:2390)

==50122==by 0x6CC857: expand_function(cgraph_node*) (cgraphunit.c:1640)

==50122==by 0x6CE5FC: compile() (cgraphunit.c:1744)

==50122==by 0x6CEC94: finalize_compilation_unit() (cgraphunit.c:2119)

==50122==by 0x8992FA: write_global_declarations() (langhooks.c:322)

==50122== 

==50122== Conditional jump or move depends on uninitialised value(s)

==50122==at 0xDF5DAB: register_active_defs(df_ref_d**) (sparseset.h:147)

==50122==by 0xDF5E52: update_df_init(rtx_def*, rtx_def*) [clone .isra.11]

(fwprop.c:894)

==50122==by 0xDF65F1: try_fwprop_subst(df_ref_d*, rtx_def**, rtx_def*,

rtx_def*, bool) (fwprop.c:962)

==50122==by 0xDF6A91: forward_propagate_into(df_ref_d*) (fwprop.c:1342)

==50122==by 0xDF7A07: fwprop_addr() (fwprop.c:1528)

==50122==by 0x9021DF: execute_one_pass(opt_pass*) (passes.c:2337)

==50122==by 0x902644: execute_pass_list(opt_pass*) (passes.c:2389)

==50122==by 0x902656: execute_pass_list(opt_pass*) (passes.c:2390)

==50122==by 0x6CC857: expand_function(cgraph_node*) (cgraphunit.c:1640)

==50122==by 0x6CE5FC: compile() (cgraphunit.c:1744)

==50122==by 0x6CEC94: finalize_compilation_unit() (cgraphunit.c:2119)

==50122==by 0x8992FA: write_global_declarations() (langhooks.c:322)


[Bug preprocessor/42921] No error with missing header and -MM

2013-05-07 Thread skannan at redhat dot com


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=42921



Shakthi Kannan  changed:



   What|Removed |Added



 CC||skannan at redhat dot com



--- Comment #3 from Shakthi Kannan  2013-05-08 
05:30:25 UTC ---

Confirmed.



$ ./install/bin/gcc -MM -MF foo.d foo.c && echo succeeded || echo failed 

succeeded



$ ./install/bin/gcc -v

Using built-in specs.

COLLECT_GCC=./install/bin/gcc

COLLECT_LTO_WRAPPER=/home/mbuf/testing/gcc/42921/install/libexec/gcc/x86_64-unknown-linux-gnu/4.9.0/lto-wrapper

Target: x86_64-unknown-linux-gnu

Configured with: ../gcc/configure --prefix=/home/mbuf/testing/gcc/42921/install

Thread model: posix

gcc version 4.9.0 20130507 (experimental) (GCC)


[Bug other/57202] New: Please make the intrinsics headers like immintrin.h be usable without compiler flags

2013-05-07 Thread thiago at kde dot org


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57202



 Bug #: 57202

   Summary: Please make the intrinsics headers like immintrin.h be

usable without compiler flags

Classification: Unclassified

   Product: gcc

   Version: 4.8.1

Status: UNCONFIRMED

  Severity: enhancement

  Priority: P3

 Component: other

AssignedTo: unassig...@gcc.gnu.org

ReportedBy: thi...@kde.org





Please make all headers for intrinsics be includable without special compiler

flags.



In other words, I want the following to work:



$ gcc -fsyntax-only -include smmintrin.h -xc /dev/null

In file included from :0:0:

/usr/lib/gcc/x86_64-redhat-linux/4.7.2/include/smmintrin.h:31:3: error: #error

"SSE4.1 instruction set not enabled"



Note it works with ICC:

$ icc -fsyntax-only -include smmintrin.h -xc /dev/null && echo works

works





Not only that, please make all the intrinsics functions be defined and ready to

be used.



This is necessary so that the following source file could compile even if

-msse4.1 is not passed on the command-line (adapted from

http://gcc.gnu.org/gcc-4.8/changes.html):



#include 



 __attribute__ ((target ("default")))

int foo(void)

{

  return 1;

}



__attribute__ ((target ("sse4.2")))

int foo(void)

{

  __m128i v;

  _mm_blendv_epi8(v, v, v);

  return 2;

}



There are several reasons for that, number one among them that it makes the GCC

4.8 feature above actually useful for non-trivial code. Also, passing extra

options on the command-line are simply not an option for C++ code (where the

feature above is useful) if that code is moderately complex and uses inline

functions, and those options cannot be used if LTO is to be used (bug 54231).


[Bug c/57201] Using --save-temps affects whether warning is printed

2013-05-07 Thread ian at airs dot com


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57201



--- Comment #2 from Ian Lance Taylor  2013-05-08 03:18:17 
UTC ---

I should have clarified that the warning is correct with --save-temps.  When

--save-temps is omitted, the warning is missing.  That is wrong.  There should

be a warning in this case.  The presence of "#define stdout stdout" should not

inhibit a warning.



Also, this is a regression, as GCC 4.6 does warn for this case (I didn't test

4.7).


[Bug c/57201] Using --save-temps affects whether warning is printed

2013-05-07 Thread paolo.carlini at oracle dot com


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57201



Paolo Carlini  changed:



   What|Removed |Added



   Severity|trivial |normal


[Bug c/57201] Using --save-temps affects whether warning is printed

2013-05-07 Thread pinskia at gcc dot gnu.org


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57201



Andrew Pinski  changed:



   What|Removed |Added



   Keywords||diagnostic

   Severity|normal  |trivial



--- Comment #1 from Andrew Pinski  2013-05-08 
01:01:49 UTC ---

This is a hard problem to solve as with the integrated C preprocessor we track

where the token came from but with -save-temps it is hard to track where the

tokens came from.


[Bug c/57201] New: Using --save-temps affects whether warning is printed

2013-05-07 Thread ian at airs dot com

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57201

 Bug #: 57201
   Summary: Using --save-temps affects whether warning is printed
Classification: Unclassified
   Product: gcc
   Version: 4.8.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: i...@airs.com


Consider this C file:

#include 
void
f(void)
{
  stdout;
}

When I compile it on my Ubuntu Precise system with GCC 4.8 branch with the
-Wall option, I get no error.  When I compile it with -Wall --save-temps, I get
this:

foo.c: In function ‘f’:
foo.c:5:3: warning: statement with no effect [-Wunused-value]
   stdout;
   ^

This appears to happen because  on my system has this line:

#define stdout stdout

When not using --save-temps, something about this is causing
linemap_location_in_system_header_p to return true for "stdout" on line 5.

[Bug c/57200] [4.8/4.9 Regression] aggressive-loop-optimizations notes appear even when warning itself is suppressed

2013-05-07 Thread paolo.carlini at oracle dot com


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57200



Paolo Carlini  changed:



   What|Removed |Added



 Status|UNCONFIRMED |NEW

   Last reconfirmed||2013-05-07

   Target Milestone|--- |4.9.0

Summary|[4.8/4.9]   |[4.8/4.9 Regression]

   |aggressive-loop-optimizatio |aggressive-loop-optimizatio

   |ns notes appear even when   |ns notes appear even when

   |warning itself is   |warning itself is

   |suppressed  |suppressed

 Ever Confirmed|0   |1



--- Comment #1 from Paolo Carlini  2013-05-07 
23:08:40 UTC ---

This issue is easy, isn't it? Something like:



Index: tree-ssa-loop-niter.c

===

--- tree-ssa-loop-niter.c(revision 198676)

+++ tree-ssa-loop-niter.c(working copy)

@@ -2553,10 +2553,11 @@ do_warn_aggressive_loop_optimizations (struct loop

 return;



   gimple estmt = last_stmt (e->src);

-  warning_at (gimple_location (stmt), OPT_Waggressive_loop_optimizations,

-  "iteration %E invokes undefined behavior",

-  double_int_to_tree (TREE_TYPE (loop->nb_iterations), i_bound));

-  inform (gimple_location (estmt), "containing loop");

+  if (warning_at (gimple_location (stmt), OPT_Waggressive_loop_optimizations,

+  "iteration %E invokes undefined behavior",

+  double_int_to_tree (TREE_TYPE (loop->nb_iterations),

+  i_bound)))

+inform (gimple_location (estmt), "containing loop");

   loop->warned_aggressive_loop_optimizations = true;

 }


[Bug c++/57199] [4.8/4.9 Regression] Bogus warning: iteration NNNN invokes undefined behavior -Waggressive-loop-optimizations

2013-05-07 Thread paolo.carlini at oracle dot com


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57199



Paolo Carlini  changed:



   What|Removed |Added



 Status|UNCONFIRMED |NEW

   Last reconfirmed||2013-05-07

Version|unknown |4.9.0

Summary|[4.8, 4.9] Bogus warning:   |[4.8/4.9 Regression] Bogus

   |iteration  invokes  |warning: iteration 

   |undefined behavior  |invokes undefined behavior

   |-Waggressive-loop-optimizat |-Waggressive-loop-optimizat

   |ions|ions

 Ever Confirmed|0   |1


[Bug rtl-optimization/55278] [4.8/4.9 Regression] Botan performance regressions apparently due to LRA

2013-05-07 Thread glisse at gcc dot gnu.org


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55278



--- Comment #7 from Marc Glisse  2013-05-07 22:48:40 
UTC ---

(In reply to comment #6)

> I'm surprised that

> the 16-bit rotations aren't detected/folded into rotations (or rotate_left

> (u16, 8) into a bswap16).



See also PR 45216 for rotate, where the initial report is about rotate16, and

the last comment is about a C++ regression likely related to the sizeof changes

(it is folded too late for fold_binary of | to see the constant).


[Bug rtl-optimization/55278] [4.8/4.9 Regression] Botan performance regressions apparently due to LRA

2013-05-07 Thread jakub at gcc dot gnu.org


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55278



--- Comment #6 from Jakub Jelinek  2013-05-07 
22:34:15 UTC ---

To:

unsigned char KASUMI_SBOX_S7[128];

unsigned short KASUMI_SBOX_S9[512];



static inline unsigned short

rotate_left (unsigned short input, unsigned long rot)

{

  return ((input << rot) | (input >> (8 * sizeof (unsigned short) - rot)));

}



static inline unsigned short

reverse_bytes (unsigned short val)

{

  return rotate_left (val, 8);

}



static inline unsigned short

load_be (const unsigned char in[], unsigned long off)

{

  return reverse_bytes (*((const unsigned short *)in + off));

}



static inline void

store_be (unsigned short in, unsigned char out[2])

{

  *(unsigned short *)out = reverse_bytes (in);

}



static inline void

store_be4 (unsigned char out[], unsigned short x0, unsigned short x1,

  unsigned short x2, unsigned short x3)

{

  store_be (x0, out + (0 * sizeof (unsigned short)));

  store_be (x1, out + (1 * sizeof (unsigned short)));

  store_be (x2, out + (2 * sizeof (unsigned short)));

  store_be (x3, out + (3 * sizeof (unsigned short)));

}



unsigned short

FI (unsigned short I, unsigned short K)

{

  unsigned short D9 = (I >> 7);

  unsigned char D7 = (I & 0x7F);

  D9 = KASUMI_SBOX_S9[D9] ^ D7;

  D7 = KASUMI_SBOX_S7[D7] ^ (D9 & 0x7F);



  D7 ^= (K >> 9);

  D9 = KASUMI_SBOX_S9[D9 ^ (K & 0x1FF)] ^ D7;

  D7 = KASUMI_SBOX_S7[D7] ^ (D9 & 0x7F);

  return (D7 << 9) | D9;

}



__attribute__((noinline, noclone))

void

encrypt_n (unsigned short **EK, const unsigned char in[], unsigned char out[],

   unsigned long blocks)

{

  unsigned long i, j;

  for (i = 0; i != blocks; ++i)

{

  unsigned short B0 = load_be (in, 0);

  unsigned short B1 = load_be (in, 1);

  unsigned short B2 = load_be (in, 2);

  unsigned short B3 = load_be (in, 3);

  for (j = 0; j != 8; j += 2)

{

  const unsigned short *K = &(*EK)[8 * j];

  unsigned short R = B1 ^ (rotate_left (B0, 1) & K[0]);

  unsigned short L = B0 ^ (rotate_left (R, 1) | K[1]);

  L = FI (L ^ K[2], K[3]) ^ R;

  R = FI (R ^ K[4], K[5]) ^ L;

  L = FI (L ^ K[6], K[7]) ^ R;

  R = B2 ^= R;

  L = B3 ^= L;

  R = FI (R ^ K[10], K[11]) ^ L;

  L = FI (L ^ K[12], K[13]) ^ R;

  R = FI (R ^ K[14], K[15]) ^ L;

  R ^= (rotate_left (L, 1) & K[8]);

  L ^= (rotate_left (R, 1) | K[9]);

  B0 ^= L;

  B1 ^= R;

}

  store_be4 (out, B0, B1, B2, B3);

  in += 8;

  out += 8;

}

}



unsigned char in[4096], out[4096];



int

main ()

{

  unsigned short EKb[64], *EK = EKb;

  __builtin_memset (EKb, 0, sizeof EKb);

  asm volatile ("" : : : "memory");

  int i;

  for (i = 0; i < 10; i++)

encrypt_n (&EK, in, out, 4096 / 8);

  return 0;

}



actually (note different code in store_be and load_be).  I'm surprised that

the 16-bit rotations aren't detected/folded into rotations (or rotate_left

(u16, 8) into a bswap16).


[Bug rtl-optimization/55278] [4.8/4.9 Regression] Botan performance regressions apparently due to LRA

2013-05-07 Thread mpolacek at gcc dot gnu.org


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55278



--- Comment #5 from Marek Polacek  2013-05-07 
22:31:37 UTC ---

Created attachment 30049

  --> http://gcc.gnu.org/bugzilla/attachment.cgi?id=30049

kasumi_clang.s



Clang assembly


[Bug rtl-optimization/55278] [4.8/4.9 Regression] Botan performance regressions apparently due to LRA

2013-05-07 Thread mpolacek at gcc dot gnu.org


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55278



--- Comment #4 from Marek Polacek  2013-05-07 
22:31:05 UTC ---

Created attachment 30048

  --> http://gcc.gnu.org/bugzilla/attachment.cgi?id=30048

kasumi_gcc.s



Adding GCC assembly


[Bug rtl-optimization/55278] [4.8/4.9 Regression] Botan performance regressions apparently due to LRA

2013-05-07 Thread mpolacek at gcc dot gnu.org


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55278



Marek Polacek  changed:



   What|Removed |Added



 CC||mpolacek at gcc dot gnu.org



--- Comment #3 from Marek Polacek  2013-05-07 
22:28:56 UTC ---

Reduced by Jakub to this:



unsigned char KASUMI_SBOX_S7[128];

unsigned short KASUMI_SBOX_S9[512];



static inline unsigned short

rotate_left (unsigned short input, unsigned long rot)

{

  return ((input << rot) | (input >> (8 * sizeof (unsigned short) - rot)));

}



static inline unsigned short

reverse_bytes (unsigned short val)

{

  return rotate_left (val, 8);

}



static inline unsigned short

load_be (const unsigned char in[], unsigned long off)

{

  return reverse_bytes (*((in) + off));

}



static inline void

store_be (unsigned short in, unsigned char out[2])

{

  *out = reverse_bytes (in);

}



static inline void

store_be4 (unsigned char out[], unsigned short x0, unsigned short x1,

  unsigned short x2, unsigned short x3)

{

  store_be (x0, out + (0 * sizeof (unsigned short)));

  store_be (x1, out + (1 * sizeof (unsigned short)));

  store_be (x2, out + (2 * sizeof (unsigned short)));

  store_be (x3, out + (3 * sizeof (unsigned short)));

}



unsigned short

FI (unsigned short I, unsigned short K)

{

  unsigned short D9 = (I >> 7);

  unsigned char D7 = (I & 0x7F);

  D9 = KASUMI_SBOX_S9[D9] ^ D7;

  D7 = KASUMI_SBOX_S7[D7] ^ (D9 & 0x7F);



  D7 ^= (K >> 9);

  D9 = KASUMI_SBOX_S9[D9 ^ (K & 0x1FF)] ^ D7;

  D7 = KASUMI_SBOX_S7[D7] ^ (D9 & 0x7F);

  return (D7 << 9) | D9;

}



__attribute__((noinline, noclone))

void

encrypt_n (unsigned short **EK, const unsigned char in[], unsigned char out[],

   unsigned long blocks)

{

  unsigned long i, j;

  for (i = 0; i != blocks; ++i)

{

  unsigned short B0 = load_be (in, 0);

  unsigned short B1 = load_be (in, 1);

  unsigned short B2 = load_be (in, 2);

  unsigned short B3 = load_be (in, 3);

  for (j = 0; j != 8; j += 2)

{

  const unsigned short *K = &(*EK)[8 * j];

  unsigned short R = B1 ^ (rotate_left (B0, 1) & K[0]);

  unsigned short L = B0 ^ (rotate_left (R, 1) | K[1]);

  L = FI (L ^ K[2], K[3]) ^ R;

  R = FI (R ^ K[4], K[5]) ^ L;

  L = FI (L ^ K[6], K[7]) ^ R;

  R = B2 ^= R;

  L = B3 ^= L;

  R = FI (R ^ K[10], K[11]) ^ L;

  L = FI (L ^ K[12], K[13]) ^ R;

  R = FI (R ^ K[14], K[15]) ^ L;

  R ^= (rotate_left (L, 1) & K[8]);

  L ^= (rotate_left (R, 1) | K[9]);

  B0 ^= L;

  B1 ^= R;

}

  store_be4 (out, B0, B1, B2, B3);

  in += 8;

  out += 8;

}

}



unsigned char in[4096], out[4096];



int

main ()

{

  unsigned short EKb[64], *EK = EKb;

  __builtin_memset (EKb, 0, sizeof EKb);

  asm volatile ("" : : : "memory");

  int i;

  for (i = 0; i < 10; i++)

encrypt_n (&EK, in, out, 4096 / 8);

  return 0;

}



Using -O3  -finline-functions  -D_REENTRANT -Wno-long-long -W -Wall -fPIC

-fvisibility=hidden, then trunk gcc:

$ time ./a.out 

real0m15.727s

user0m15.639s

sys0m0.004s



while with trunk clang:

$ time ./a.out 

real0m7.864s

user0m7.796s

sys0m0.005s


[Bug c/57200] New: [4.8/4.9] aggressive-loop-optimizations notes appear even when warning itself is suppressed

2013-05-07 Thread ppluzhnikov at google dot com

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57200

 Bug #: 57200
   Summary: [4.8/4.9] aggressive-loop-optimizations notes appear
even when warning itself is suppressed
Classification: Unclassified
   Product: gcc
   Version: unknown
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: ppluzhni...@google.com


Test:

int x[10];

void fn ()
{
  int i;

  for (i = 0; i < 100; ++i)
x[i] = 1;
}


Using trunk at r198689:

gcc -O2 -c t.c 
t.c: In function ‘fn’:
t.c:8:10: warning: iteration 10u invokes undefined behavior
[-Waggressive-loop-optimizations]
 x[i] = 1;
  ^
t.c:7:3: note: containing loop
   for (i = 0; i < 100; ++i)
   ^


Looks good. But this doesn't:

gcc -O2 -c t.c -w
t.c: In function ‘fn’:
t.c:7:3: note: containing loop
   for (i = 0; i < 100; ++i)
   ^

A note suddenly appears from "nowhere" :-(

[Bug c++/57199] New: [4.8, 4.9] Bogus warning: iteration NNNN invokes undefined behavior -Waggressive-loop-optimizations

2013-05-07 Thread ppluzhnikov at google dot com

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57199

 Bug #: 57199
   Summary: [4.8, 4.9] Bogus warning: iteration  invokes
undefined behavior -Waggressive-loop-optimizations
Classification: Unclassified
   Product: gcc
   Version: unknown
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c++
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: ppluzhni...@google.com


Google ref: b/8856275

Test case:



typedef decltype(sizeof(0)) size_t;

struct Foo {
  ~Foo(); // comment out -> problem disappears
  int x[20];
};

template 
struct InlinedVector {
  inline InlinedVector() : size_(0) { }
  inline size_t size() const {
return size_;
  }
  T* mutable_array();
  void resize(size_t n) {
size_t s = size();
DestroyElements(mutable_array() + n, s - n);
  }
  static void DestroyElements(T* ptr, size_t num) {
for (size_t i = 0; i < num; i++) {
  ptr[i].~T();
}
  }

  size_t size_;
};

struct CP {
  void Add();
  InlinedVector foo_;
};

void CP::Add() {
  foo_.resize(foo_.size() + 1);
}



Using trunk r198689:

g++ -std=c++11 -O2 -c tt.cc
tt.cc: In member function ‘void CP::Add()’:
tt.cc:21:7: warning: iteration 230584300921369396ul invokes undefined behavior
[-Waggressive-loop-optimizations]
   ptr[i].~T();
   ^
tt.cc:20:5: note: containing loop
 for (size_t i = 0; i < num; i++) {
 ^

[Bug c++/54427] Expose more vector extensions

2013-05-07 Thread glisse at gcc dot gnu.org


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54427



--- Comment #13 from Marc Glisse  2013-05-07 
21:59:08 UTC ---

(In reply to comment #11)

> - support &&, ||, !



A patch was posted at:

http://gcc.gnu.org/ml/gcc-patches/2013-04/msg00783.html



but the only answer was against supporting the logical operators for vectors.


[Bug c++/57198] New: ICE in warn_logical_operator for vectors

2013-05-07 Thread glisse at gcc dot gnu.org


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57198



 Bug #: 57198

   Summary: ICE in warn_logical_operator for vectors

Classification: Unclassified

   Product: gcc

   Version: 4.9.0

Status: UNCONFIRMED

  Keywords: ice-on-invalid-code

  Severity: normal

  Priority: P3

 Component: c++

AssignedTo: unassig...@gcc.gnu.org

ReportedBy: gli...@gcc.gnu.org





g++ crashes on the following program:



typedef int vec __attribute__((vector_size(4*sizeof(int;

void f(vec* a, vec* b, vec* c){

  *c = (*a < *b) && (*b < *a);

}



http://gcc.gnu.org/ml/gcc-patches/2013-04/msg00783.html

includes a fix, but it is probably not the right place for that check if we

keep this code invalid.


[Bug fortran/57197] New: [Fortran-Dev][Regression] ICE in record_reference, at cgraphbuild.c:66

2013-05-07 Thread burnus at gcc dot gnu.org


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57197



 Bug #: 57197

   Summary: [Fortran-Dev][Regression] ICE in record_reference, at

cgraphbuild.c:66

Classification: Unclassified

   Product: gcc

   Version: fortran-dev

Status: UNCONFIRMED

  Keywords: ice-on-valid-code

  Severity: normal

  Priority: P3

 Component: fortran

AssignedTo: unassig...@gcc.gnu.org

ReportedBy: bur...@gcc.gnu.org





The example from bug 45170 comment 41 fails with an ICE on Fortran-Dev

  internal compiler error: in record_reference, at cgraphbuild.c:66



It works with GCC 4.8/4.9





module thing

implicit none

character(len=:), allocatable :: array_of_chars(:)

contains



  subroutine allocatestuff()

implicit none

integer :: length_names = 15

integer :: number_arrays  = 5



allocate(character(15) :: array_of_chars(number_arrays))

!allocate(character(length_names) :: array_of_chars(number_arrays))



  end subroutine allocatestuff



end module thing



program test1

implicit none





  call allocatestuff()



end program test1


[Bug c++/57196] [4.8 regression] Bogus "aggregate ... has incomplete type and cannot be defined"

2013-05-07 Thread daniel.kruegler at googlemail dot com

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57196

Daniel Krügler  changed:

   What|Removed |Added

 CC||daniel.kruegler at
   ||googlemail dot com

--- Comment #1 from Daniel Krügler  
2013-05-07 20:52:28 UTC ---
Here a more simplified version that reproduces the problem:

//---
#include 

template
struct set {
  set() = default;
  set(std::initializer_list){}
};

struct string {
  string(const char*){}
  ~string(){}
};

typedef decltype(sizeof(0)) size_t;

template  struct EqHelper { };

int IsNullLiteralHelper(...);

void Fn() {
  EqHelper{1})>eq1;  // ok
  EqHelper())>  eq2;  // ok
  EqHelper{"foo"})> eq3;  // error
}
//---

It seems to be relevant that string has a non-trivial destructor and that set
has an initializer-list constructor (When e.g. replacing
set(std::initializer_list){} by set(T){} causes the code to be accepted)

[Bug middle-end/57192] [4.9 Regression] miscompilation at -O3

2013-05-07 Thread wschmidt at gcc dot gnu.org


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57192



--- Comment #7 from Bill Schmidt  2013-05-07 
20:13:10 UTC ---

Ah, and thanks for noting the compile warning.  I would have expected that to

get caught in bootstrap, odd.  I'll fix that.


[Bug middle-end/57192] [4.9 Regression] miscompilation at -O3

2013-05-07 Thread wschmidt at gcc dot gnu.org


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57192



Bill Schmidt  changed:



   What|Removed |Added



 Status|UNCONFIRMED |RESOLVED

 CC||wschmidt at gcc dot gnu.org

 Resolution||FIXED



--- Comment #6 from Bill Schmidt  2013-05-07 
20:11:09 UTC ---

OK, thanks!  Current trunk has a half-good fix that I put in this morning.  The

proposed patch fixes it the right way.  Good to hear that both versions appear

to solve this problem!



Closing as resolved.  Please feel free to re-open if the problem comes back.


[Bug c++/57196] New: [4.8 regression] Bogus "aggregate ... has incomplete type and cannot be defined"

2013-05-07 Thread ppluzhnikov at google dot com

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57196

 Bug #: 57196
   Summary: [4.8 regression] Bogus "aggregate ... has incomplete
type and cannot be defined"
Classification: Unclassified
   Product: gcc
   Version: unknown
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c++
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: ppluzhni...@google.com


Google ref: b/8853908

Test case reduced from gUnit.

#include 
#include 

using std::set;
using std::string;

int& IsNullLiteralHelper(...);

template  struct EqHelper { };

void Fn() {
  EqHelper{1})>eq1;  // ok
  EqHelper())>  eq2;  // ok
  EqHelper{"foo"})> eq3;  // error
}


Using trunk built at r198689:


g++  -std=c++11 -c tt.cc
tt.cc: In function ‘void Fn()’:
tt.cc:14:60: error: aggregate ‘EqHelper
>(std::initializer_list >{((const
std::basic_string*)(& const std::basic_string
[1]{std::basic_string(((const char*)"foo"), (*(const
std::allocator*)(& std::allocator(})), 1u}, (*(const
std::less >*)(& std::less
>())), (*(const std::allocator >*)(&
std::allocator >())> eq3’ has incomplete type and
cannot be defined
   EqHelper{"foo"})> eq3;
^

[Bug middle-end/57192] [4.9 Regression] miscompilation at -O3

2013-05-07 Thread Joost.VandeVondele at mat dot ethz.ch


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57192



--- Comment #5 from Joost VandeVondele  
2013-05-07 19:16:31 UTC ---

Current trunk (without the patch) seems to fix also the original problem. At

least for this case, the proposed patch seems not necessary. I think the bug

can be closed as fixed.


[Bug middle-end/57192] [4.9 Regression] miscompilation at -O3

2013-05-07 Thread Joost.VandeVondele at mat dot ethz.ch

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57192

--- Comment #4 from Joost VandeVondele  
2013-05-07 19:01:56 UTC ---
BTW, on trunk:

../../gcc/gcc/gimple-ssa-strength-reduction.c: In function ‘void
analyze_candidates_and_replace()’:
../../gcc/gcc/gimple-ssa-strength-reduction.c:3394:17: warning: comparison
between signed and unsigned integer expressions [-Wsign-compare]


It actually seems current trunk r198693 also works for the testcase (with and
without your patch)?

[Bug middle-end/57192] [4.9 Regression] miscompilation at -O3

2013-05-07 Thread Joost.VandeVondele at mat dot ethz.ch


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57192



--- Comment #3 from Joost VandeVondele  
2013-05-07 18:54:55 UTC ---

(In reply to comment #2)

> Created attachment 30047 [details]

> Proposed patch



I'll give it a try. 



Meanwhile, this might be an easy way to get the testcase (and rename to

test.f90)



wget http://gcc.gnu.org/bugzilla/attachment.cgi?id=30045


[Bug go/57194] go binaries give "no debug info in ELF executable errno -1"

2013-05-07 Thread ian at airs dot com


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57194



Ian Lance Taylor  changed:



   What|Removed |Added



 Status|UNCONFIRMED |NEW

   Last reconfirmed||2013-05-07

 Ever Confirmed|0   |1



--- Comment #1 from Ian Lance Taylor  2013-05-07 18:47:42 
UTC ---

Note that in general Go requires debug info.  It will not work to build a Go

program without -g, nor will it work to strip a Go program.


[Bug middle-end/57192] [4.9 Regression] miscompilation at -O3

2013-05-07 Thread wschmidt at gcc dot gnu.org


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57192



--- Comment #2 from Bill Schmidt  2013-05-07 
18:23:21 UTC ---

Created attachment 30047

  --> http://gcc.gnu.org/bugzilla/attachment.cgi?id=30047

Proposed patch



Hi Joost,



Can you please apply the proposed patch and see if this fixes your problem?  My

browser is having trouble downloading your attachment (doesn't grok

text/x-fortran and won't allow me to set an association for it).



Thanks,

Bill


[Bug c++/55942] [C++11] sorry, unimplemented: calling a member function of the object being constructed in a constant expression

2013-05-07 Thread paolo.carlini at oracle dot com


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55942



Paolo Carlini  changed:



   What|Removed |Added



 Status|UNCONFIRMED |NEW

   Last reconfirmed||2013-05-07

 Ever Confirmed|0   |1


[Bug rtl-optimization/57193] [4.5/4.6/4.7/4.8/4.9 Regression] suboptimal register allocation for SSE registers

2013-05-07 Thread hjl.tools at gmail dot com


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57193



H.J. Lu  changed:



   What|Removed |Added



 CC||hjl.tools at gmail dot com

Summary|suboptimal register |[4.5/4.6/4.7/4.8/4.9

   |allocation for SSE  |Regression] suboptimal

   |registers   |register allocation for SSE

   ||registers



--- Comment #2 from H.J. Lu  2013-05-07 18:17:11 
UTC ---

It is caused by revision 156641:



http://gcc.gnu.org/ml/gcc-cvs/2010-02/msg00222.html


[Bug lto/57084] 483. xalancbmk run fails with -O2 -flto for i686

2013-05-07 Thread jamborm at gcc dot gnu.org


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57084



Martin Jambor  changed:



   What|Removed |Added



URL||http://gcc.gnu.org/ml/gcc-p

   ||atches/2013-05/msg00366.htm

   ||l



--- Comment #5 from Martin Jambor  2013-05-07 
17:56:41 UTC ---

Proposed fix submitted to the mailing list:



http://gcc.gnu.org/ml/gcc-patches/2013-05/msg00366.html


[Bug fortran/57142] [4.7/4.8/4.9 Regression] SIZE/SHAPE overflow despite kind=8

2013-05-07 Thread burnus at gcc dot gnu.org


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57142



Tobias Burnus  changed:



   What|Removed |Added



 Status|NEW |RESOLVED

 Resolution||FIXED



--- Comment #6 from Tobias Burnus  2013-05-07 
17:29:22 UTC ---

FIXED on the trunk (4.9) and on the 4.7/4.8 branch.


[Bug fortran/57142] [4.7/4.8/4.9 Regression] SIZE/SHAPE overflow despite kind=8

2013-05-07 Thread burnus at gcc dot gnu.org


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57142



--- Comment #5 from Tobias Burnus  2013-05-07 
17:28:51 UTC ---

Author: burnus

Date: Tue May  7 17:28:12 2013

New Revision: 198690



URL: http://gcc.gnu.org/viewcvs?rev=198690&root=gcc&view=rev

Log:

2013-05-07  Tobias Burnus  



Backport from mainline

2013-05-02  Tobias Burnus  



PR fortran/57142

* simplify.c (gfc_simplify_size): Renamed from

simplify_size; fix kind=8 handling.

(gfc_simplify_size): New function.

(gfc_simplify_shape): Add range check.



2013-05-07  Tobias Burnus  



Backport from mainline

2013-05-02  Tobias Burnus  



PR fortran/57142

* gfortran.dg/size_kind_2.f90: New.

* gfortran.dg/size_kind_3.f90: New.





Added:

branches/gcc-4_7-branch/gcc/testsuite/gfortran.dg/size_kind_2.f90

branches/gcc-4_7-branch/gcc/testsuite/gfortran.dg/size_kind_3.f90

Modified:

branches/gcc-4_7-branch/gcc/fortran/ChangeLog

branches/gcc-4_7-branch/gcc/fortran/resolve.c

branches/gcc-4_7-branch/gcc/fortran/simplify.c

branches/gcc-4_7-branch/gcc/testsuite/ChangeLog


[Bug fortran/57142] [4.7/4.8/4.9 Regression] SIZE/SHAPE overflow despite kind=8

2013-05-07 Thread burnus at gcc dot gnu.org


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57142



--- Comment #4 from Tobias Burnus  2013-05-07 
17:26:40 UTC ---

Author: burnus

Date: Tue May  7 16:36:48 2013

New Revision: 198687



URL: http://gcc.gnu.org/viewcvs?rev=198687&root=gcc&view=rev

Log:

2013-05-07  Tobias Burnus  



Backport from mainline

2013-05-02  Tobias Burnus  



PR fortran/57142

* simplify.c (gfc_simplify_size): Renamed from

simplify_size; fix kind=8 handling.

(gfc_simplify_size): New function.

(gfc_simplify_shape): Add range check.



2013-05-07  Tobias Burnus  



Backport from mainline

2013-05-02  Tobias Burnus  



PR fortran/57142

* gfortran.dg/size_kind_2.f90: New.

* gfortran.dg/size_kind_3.f90: New.





Added:

branches/gcc-4_8-branch/gcc/testsuite/gfortran.dg/size_kind_2.f90

branches/gcc-4_8-branch/gcc/testsuite/gfortran.dg/size_kind_3.f90

Modified:

branches/gcc-4_8-branch/gcc/fortran/ChangeLog

branches/gcc-4_8-branch/gcc/fortran/resolve.c

branches/gcc-4_8-branch/gcc/fortran/simplify.c

branches/gcc-4_8-branch/gcc/testsuite/ChangeLog


[Bug bootstrap/54659] [4.8 Regression] Bootstrap with --disable-nls broken under Windows

2013-05-07 Thread dnovillo at google dot com


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54659



--- Comment #26 from dnovillo at google dot com  
2013-05-07 17:10:07 UTC ---

On 2013-05-07 13:06 , roland at gnu dot org wrote:

> http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54659

>

> --- Comment #25 from roland at gnu dot org 2013-05-07 17:06:56 UTC ---

> I have been using a straightforward revert of r190487 to build on mingw with

> --disable-nls.  It works.

>





Thanks.  Then I just need to confirm that this doesn't re-introduce 

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54281.  Richi, could you 

check that?  Do you still have access to 4.1 host compilers?


[Bug bootstrap/54659] [4.8 Regression] Bootstrap with --disable-nls broken under Windows

2013-05-07 Thread roland at gnu dot org


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54659



--- Comment #25 from roland at gnu dot org 2013-05-07 17:06:56 UTC ---

I have been using a straightforward revert of r190487 to build on mingw with

--disable-nls.  It works.


[Bug fortran/57094] [Fortran-Dev] ICE: in lhd_incomplete_type_error, at langhooks.c:203

2013-05-07 Thread burnus at gcc dot gnu.org


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57094



Tobias Burnus  changed:



   What|Removed |Added



 Status|UNCONFIRMED |RESOLVED

 Resolution||FIXED



--- Comment #4 from Tobias Burnus  2013-05-07 
17:04:13 UTC ---

That should now be fixed since the commit http://gcc.gnu.org/r198688 /

http://gcc.gnu.org/ml/fortran/2013-05/msg00031.html



(I think some other patches before also contributed to this fix.)





(In reply to comment #1)

> Note that the test compiles, but generates a wrong code, without the module:



I think it works - but I am too lazy to look through the test case to

understand whether it indeed works.


[Bug c++/55942] [C++11] sorry, unimplemented: calling a member function of the object being constructed in a constant expression

2013-05-07 Thread mattyclarkson at gmail dot com


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55942



Matt Clarkson  changed:



   What|Removed |Added



 CC||mattyclarkson at gmail dot

   ||com



--- Comment #1 from Matt Clarkson  2013-05-07 
17:04:11 UTC ---

I just came across this too.


[Bug bootstrap/54659] [4.8 Regression] Bootstrap with --disable-nls broken under Windows

2013-05-07 Thread dnovillo at gcc dot gnu.org


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54659



Diego Novillo  changed:



   What|Removed |Added



 Status|REOPENED|WAITING



--- Comment #24 from Diego Novillo  2013-05-07 
16:56:49 UTC ---

The patch I just attached reverts the commit that caused this problem, but I am

unable to test it properly. I need help with:



1- Making sure this reversal does not re-introduce

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54281

2- Testing it on MinGW.  I have no access to this system.


[Bug bootstrap/54659] [4.8 Regression] Bootstrap with --disable-nls broken under Windows

2013-05-07 Thread dnovillo at gcc dot gnu.org


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54659



Diego Novillo  changed:



   What|Removed |Added



  Attachment #29020|0   |1

is obsolete||



--- Comment #23 from Diego Novillo  2013-05-07 
16:55:07 UTC ---

Created attachment 30046

  --> http://gcc.gnu.org/bugzilla/attachment.cgi?id=30046

Proposed fix.  Revert trunk commit r190487


[Bug target/57150] GCC when targeting power7 spills long double using VSX instructions.

2013-05-07 Thread meissner at gcc dot gnu.org


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57150



Michael Meissner  changed:



   What|Removed |Added



 Status|ASSIGNED|RESOLVED

 Resolution||FIXED



--- Comment #5 from Michael Meissner  2013-05-07 
16:26:02 UTC ---

Fixed in subversion id 198593.


[Bug ada/57188] [4.9 regression] Ada bootstrap broken on Solaris/x64: No_Implicit_Dynamic_Code violation

2013-05-07 Thread ebotcazou at gcc dot gnu.org


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57188



--- Comment #5 from Eric Botcazou  2013-05-07 
16:04:07 UTC ---

> This seems to argue for reverting or at least reworking the change.  I

> suppose I'll withhold my patch until it's decided how to proceed.



I'd post it on the list in any case and see what the other maintainers think.


[Bug other/57195] New: Mode attributes with specific mode iterator can not be used as mode iterators in *.md files

2013-05-07 Thread ubizjak at gmail dot com


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57195



 Bug #: 57195

   Summary: Mode attributes with specific mode iterator can not be

used as mode iterators in *.md files

Classification: Unclassified

   Product: gcc

   Version: 4.9.0

Status: UNCONFIRMED

  Severity: normal

  Priority: P3

 Component: other

AssignedTo: unassig...@gcc.gnu.org

ReportedBy: ubiz...@gmail.com





There is a strange undocumented limitation when using mode attributes with

specific mode iterator as mode iterators in *.md files. As an example from

i386.md, following RTX is accepted:



(define_insn_and_split "copysign3_const"

  [(set (match_operand:CSGNMODE 0 "register_operand" "=x")

(unspec:CSGNMODE

  [(match_operand: 1 "vector_move_operand" "xmC")

   (match_operand:CSGNMODE 2 "register_operand" "0")

   (match_operand: 3 "nonimmediate_operand" "xm")]

  UNSPEC_COPYSIGN))]

  ...)



However, when equivalent named mode attribute (i.e.  below)

is used in place of a mode iterator:



(define_insn_and_split "copysign3_const"

  [(set (match_operand:CSGNMODE 0 "register_operand" "=x")

(unspec:CSGNMODE

  [(match_operand: 1 "vector_move_operand" "xmC")

   (match_operand:CSGNMODE 2 "register_operand" "0")

   (match_operand: 3 "nonimmediate_operand" "xm")]

  UNSPEC_COPYSIGN))]

  ...)



compilation breaks with:



build/genconditions

../../gcc-svn/branches/gcc-4_8-branch/gcc/config/i386/i386.md > tmp-condmd.c

../../gcc-svn/branches/gcc-4_8-branch/gcc/config/i386/i386.md:8866: unknown

mode ` 1 "vector_move_operand" "xmC")'



The iterators are defined as:



(define_mode_iterator CSGNMODE [SF DF TF])

(define_mode_attr CSGNVMODE [(SF "V4SF") (DF "V2DF") (TF "TF")])



I would like to use mode attribute with named mode in the following pattern:



(define_insn "*vec_extract_zext"

  [(set (match_operand:SWI48 0 "register_operand" "=r")

(zero_extend:SWI48

  (vec_select:

(match_operand:PEXTR_MODE 1 "register_operand" "x")

(parallel

  [(match_operand:SI 2

 "const_0_to__operand")]]



where ssescalarmode mode attribute applies to PEXTR_MODE mode iterator, and not

to SWI48.


[Bug ada/57188] [4.9 regression] Ada bootstrap broken on Solaris/x64: No_Implicit_Dynamic_Code violation

2013-05-07 Thread ro at CeBiTec dot Uni-Bielefeld.DE


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57188



--- Comment #4 from ro at CeBiTec dot Uni-Bielefeld.DE  2013-05-07 15:09:04 UTC ---

> --- Comment #3 from Eric Botcazou  2013-05-07

> 15:06:45 UTC ---

>> But what's the justification for the relevant change, which wasn't

>> posted to gcc-patches AFAICS?

>> 

>> 2013-04-23  Eric Botcazou  

>> Pascal Obry

>> 

>> * gcc-interface/Makefile.in (targ): Fix target name check.

>> 

>> Having to deal with the target_alias instead of the canonical form found

>> in target seems rather counterintuitive and fragile to me.

>

> The ChangeLog entry is misleading, neither Pascal nor I have anything to do

> with the change.  Yes, this is very fragile and has already caused various

> issues.



This seems to argue for reverting or at least reworking the change.  I

suppose I'll withhold my patch until it's decided how to proceed.



Rainer


[Bug bootstrap/54659] [4.8 Regression] Bootstrap with --disable-nls broken under Windows

2013-05-07 Thread dnovillo at gcc dot gnu.org


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54659



--- Comment #22 from Diego Novillo  2013-05-07 
15:07:54 UTC ---

Looking at this today.


[Bug ada/57188] [4.9 regression] Ada bootstrap broken on Solaris/x64: No_Implicit_Dynamic_Code violation

2013-05-07 Thread ebotcazou at gcc dot gnu.org


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57188



--- Comment #3 from Eric Botcazou  2013-05-07 
15:06:45 UTC ---

> But what's the justification for the relevant change, which wasn't

> posted to gcc-patches AFAICS?

> 

> 2013-04-23  Eric Botcazou  

> Pascal Obry

> 

> * gcc-interface/Makefile.in (targ): Fix target name check.

> 

> Having to deal with the target_alias instead of the canonical form found

> in target seems rather counterintuitive and fragile to me.



The ChangeLog entry is misleading, neither Pascal nor I have anything to do

with the change.  Yes, this is very fragile and has already caused various

issues.


[Bug ada/57188] [4.9 regression] Ada bootstrap broken on Solaris/x64: No_Implicit_Dynamic_Code violation

2013-05-07 Thread ro at CeBiTec dot Uni-Bielefeld.DE


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57188



--- Comment #2 from ro at CeBiTec dot Uni-Bielefeld.DE  2013-05-07 14:57:20 UTC ---

> --- Comment #1 from Eric Botcazou  2013-05-06 
> 16:55:04 UTC ---

>> This doesn't happen in sparcv9-sun-solaris2* or i386-pc-solaris2*

>> configurations.

>

> gcc-interface/Makefile.in was a little changed so you probably need to adjust

> the relevant regexp here:

>

> # x86 and x86-64 solaris

> ifeq ($(strip $(filter-out %86 %x86_64 solaris2%,$(arch) $(osys))),)

>   LIBGNAT_TARGET_PAIRS_COMMON = \



That was it indeed.  The following patch restored amd64-pc-solaris2.10

bootstrap for, and also survived i386-pc-solaris2.11 bootstrap:



diff --git a/gcc/ada/gcc-interface/Makefile.in

b/gcc/ada/gcc-interface/Makefile.in

--- a/gcc/ada/gcc-interface/Makefile.in

+++ b/gcc/ada/gcc-interface/Makefile.in

@@ -1098,7 +1098,7 @@ ifeq ($(strip $(filter-out sparc% sun so

 endif



 # x86 and x86-64 solaris

-ifeq ($(strip $(filter-out %86 %x86_64 solaris2%,$(arch) $(osys))),)

+ifeq ($(strip $(filter-out %86 %x86_64 %amd64 solaris2%,$(arch) $(osys))),)

   LIBGNAT_TARGET_PAIRS_COMMON = \

   a-intnam.ads

Pascal Obry



* gcc-interface/Makefile.in (targ): Fix target name check.



Having to deal with the target_alias instead of the canonical form found

in target seems rather counterintuitive and fragile to me.



Rainer


[Bug preprocessor/41329] -M does not properly escape special characters.

2013-05-07 Thread sch...@linux-m68k.org


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41329



--- Comment #3 from Andreas Schwab  2013-05-07 12:14:50 
UTC ---

This is not true.  POSIX does not *require* support for colon in a filename,

but supporting it as an extension is perfectly ok.


[Bug rtl-optimization/57193] suboptimal register allocation for SSE registers

2013-05-07 Thread rguenth at gcc dot gnu.org


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57193



Richard Biener  changed:



   What|Removed |Added



   Keywords||missed-optimization, ra

 Status|UNCONFIRMED |NEW

   Last reconfirmed||2013-05-07

 CC||vmakarov at gcc dot gnu.org

 Ever Confirmed|0   |1



--- Comment #1 from Richard Biener  2013-05-07 
11:47:25 UTC ---

Confirmed.


[Bug tree-optimization/57190] [4.9 Regression] verify_ssa failed: SSA_NAME_OCCURS_IN_ABNORMAL_PHI should be set

2013-05-07 Thread rguenth at gcc dot gnu.org


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57190



Richard Biener  changed:



   What|Removed |Added



 Status|ASSIGNED|RESOLVED

 Resolution||FIXED



--- Comment #2 from Richard Biener  2013-05-07 
11:24:00 UTC ---

Author: rguenth

Date: Tue May  7 11:23:39 2013

New Revision: 198675



URL: http://gcc.gnu.org/viewcvs?rev=198675&root=gcc&view=rev

Log:

2013-05-07  Richard Biener  



PR middle-end/57190

* tree-eh.c (sink_clobbers): Properly propagate

SSA_NAME_OCCURS_IN_ABNORMAL_PHI.



* g++.dg/torture/pr57190.C: New testcase.



Added:

trunk/gcc/testsuite/g++.dg/torture/pr57190.C

Modified:

trunk/gcc/ChangeLog

trunk/gcc/testsuite/ChangeLog

trunk/gcc/tree-eh.c


[Bug preprocessor/41329] -M does not properly escape special characters.

2013-05-07 Thread skannan at redhat dot com


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41329



Shakthi Kannan  changed:



   What|Removed |Added



 CC||skannan at redhat dot com



--- Comment #2 from Shakthi Kannan  2013-05-07 
11:20:11 UTC ---

POSIX standard doesn't allow colon as part of the filename.



http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap03.html#tag_03_276


[Bug go/57194] New: go binaries give "no debug info in ELF executable errno -1"

2013-05-07 Thread allan at archlinux dot org


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57194



 Bug #: 57194

   Summary: go binaries give "no debug info in ELF executable

errno -1"

Classification: Unclassified

   Product: gcc

   Version: unknown

Status: UNCONFIRMED

  Severity: normal

  Priority: P3

 Component: go

AssignedTo: i...@airs.com

ReportedBy: al...@archlinux.org





Since revision r195931, running anything compiled with gccgo without any

compile flags gives:



# ./a.out 

no debug info in ELF executable errno -1

fatal error: no debug info in ELF executable



Adding "-g" to the compile line results in a working binary, but stripping this

binary results in the same error.


[Bug tree-optimization/57149] [4.8/4.9 Regression] wrong -Wmaybe-uninitialized warning with -Os

2013-05-07 Thread jakub at gcc dot gnu.org


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57149



Jakub Jelinek  changed:



   What|Removed |Added



 Status|NEW |RESOLVED

 Resolution||FIXED



--- Comment #6 from Jakub Jelinek  2013-05-07 
10:40:10 UTC ---

Author: jakub

Date: Tue May  7 10:30:13 2013

New Revision: 198671



URL: http://gcc.gnu.org/viewcvs?rev=198671&root=gcc&view=rev

Log:

PR tree-optimization/57149

* tree-ssa-uninit.c (uninit_undefined_value_p): New inline.

(can_skip_redundant_opnd, compute_uninit_opnds_pos,

collect_phi_def_edges, execute_late_warn_uninitialized): Use

uninit_undefined_value_p instead of ssa_undefined_value_p.



* gcc.dg/pr57149.c: New test.



Added:

trunk/gcc/testsuite/gcc.dg/pr57149.c

Modified:

trunk/gcc/ChangeLog

trunk/gcc/testsuite/ChangeLog

trunk/gcc/tree-ssa-uninit.c



Author: jakub

Date: Tue May  7 10:32:41 2013

New Revision: 198672



URL: http://gcc.gnu.org/viewcvs?rev=198672&root=gcc&view=rev

Log:

PR tree-optimization/57149

* tree-ssa-uninit.c (uninit_undefined_value_p): New inline.

(can_skip_redundant_opnd, compute_uninit_opnds_pos,

collect_phi_def_edges, execute_late_warn_uninitialized): Use

uninit_undefined_value_p instead of ssa_undefined_value_p.



* gcc.dg/pr57149.c: New test.



Added:

branches/gcc-4_8-branch/gcc/testsuite/gcc.dg/pr57149.c

Modified:

branches/gcc-4_8-branch/gcc/ChangeLog

branches/gcc-4_8-branch/gcc/testsuite/ChangeLog

branches/gcc-4_8-branch/gcc/tree-ssa-uninit.c


[Bug debug/57184] [4.8/4.9 Regression] ICE in expand_expr_real_1, at expr.c:10478

2013-05-07 Thread jakub at gcc dot gnu.org


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57184



Jakub Jelinek  changed:



   What|Removed |Added



 Status|ASSIGNED|RESOLVED

 Resolution||FIXED



--- Comment #6 from Jakub Jelinek  2013-05-07 
10:39:37 UTC ---

Author: jakub

Date: Tue May  7 08:28:01 2013

New Revision: 198666



URL: http://gcc.gnu.org/viewcvs?rev=198666&root=gcc&view=rev

Log:

PR debug/57184

* expr.c (expand_expr_addr_expr_1): Handle COMPOUND_LITERAL_EXPR

for modifier == EXPAND_INITIALIZER.



* gcc.dg/pr57184.c: New test.



Added:

trunk/gcc/testsuite/gcc.dg/pr57184.c

Modified:

trunk/gcc/ChangeLog

trunk/gcc/expr.c

trunk/gcc/testsuite/ChangeLog



Author: jakub

Date: Tue May  7 09:02:37 2013

New Revision: 198668



URL: http://gcc.gnu.org/viewcvs?rev=198668&root=gcc&view=rev

Log:

PR debug/57184

* expr.c (expand_expr_addr_expr_1): Handle COMPOUND_LITERAL_EXPR

for modifier == EXPAND_INITIALIZER.



* gcc.dg/pr57184.c: New test.



Added:

branches/gcc-4_8-branch/gcc/testsuite/gcc.dg/pr57184.c

Modified:

branches/gcc-4_8-branch/gcc/ChangeLog

branches/gcc-4_8-branch/gcc/expr.c

branches/gcc-4_8-branch/gcc/testsuite/ChangeLog


[Bug web/55933] Missing attachment download link

2013-05-07 Thread skannan at redhat dot com


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55933



Shakthi Kannan  changed:



   What|Removed |Added



 CC||skannan at redhat dot com



--- Comment #4 from Shakthi Kannan  2013-05-07 
10:15:41 UTC ---

Right click and save as on "Created attachment # [details]" downloads a

HTML page with the diff output.



The attachment can be downloaded from the attachment table, but, it will be

good to download the patch directly from the above comment itself.


[Bug ada/57187] [4.9 regression] Ada bootstrap broken on Solaris/SPARC: ICE in check_probability, at basic-block.h:941

2013-05-07 Thread ro at gcc dot gnu.org


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57187



Rainer Orth  changed:



   What|Removed |Added



 Status|WAITING |RESOLVED

 Resolution||DUPLICATE

   Target Milestone|--- |4.9.0



--- Comment #2 from Rainer Orth  2013-05-07 10:10:50 UTC 
---

Right, somehow I missed that patch.  sparc-sun-solaris2.11 bootstrap with Ada

is fine again.



Thanks.

  Rainer



*** This bug has been marked as a duplicate of bug 57154 ***


[Bug bootstrap/57154] [4.9 Regression] Bootstrap broken for powerpc64-unknown-linux-gnu

2013-05-07 Thread ro at gcc dot gnu.org


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57154



Rainer Orth  changed:



   What|Removed |Added



 CC||ro at gcc dot gnu.org



--- Comment #15 from Rainer Orth  2013-05-07 10:10:50 
UTC ---

*** Bug 57187 has been marked as a duplicate of this bug. ***


[Bug fortran/56800] [fortran-dev Regression] move_alloc_13.f90 failure

2013-05-07 Thread burnus at gcc dot gnu.org


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56800



Tobias Burnus  changed:



   What|Removed |Added



 Status|NEW |RESOLVED

 Resolution||FIXED



--- Comment #7 from Tobias Burnus  2013-05-07 
10:01:47 UTC ---

really mark as FIXED


[Bug fortran/56800] [fortran-dev Regression] move_alloc_13.f90 failure

2013-05-07 Thread burnus at gcc dot gnu.org


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56800



--- Comment #6 from Tobias Burnus  2013-05-07 
10:00:20 UTC ---

FIXED by the following commit (on the Fortran-dev branch).



Thanks for the report!





Author: burnus

Date: Tue May  7 09:37:19 2013

New Revision: 198669



URL: http://gcc.gnu.org/viewcvs?rev=198669&root=gcc&view=rev

Log:

2013-05-07  Tobias Burnus  



* trans-array.c (gfc_conv_descriptor_stride_get,

gfc_conv_descriptor_stride_set): Use elem_len, unless it is

a nonstring intrinsic type for which size_in_bytes is used.

(gfc_array_init_size): Set elem_len before handling the

strides.

* trans-expr.c (gfc_conv_subref_array_arg): Remove no-op

extent shifting code.





Modified:

branches/fortran-dev/gcc/fortran/ChangeLog.fortran-dev

branches/fortran-dev/gcc/fortran/trans-array.c

branches/fortran-dev/gcc/fortran/trans-expr.c


[Bug libfortran/57174] [Fortran-Dev] RTE triggered by type component allocation

2013-05-07 Thread burnus at gcc dot gnu.org


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57174



Tobias Burnus  changed:



   What|Removed |Added



 Status|UNCONFIRMED |RESOLVED

 Resolution||FIXED



--- Comment #2 from Tobias Burnus  2013-05-07 
09:59:59 UTC ---

FIXED by the following commit (on the Fortran-dev branch).



Thanks for the report!





Author: burnus

Date: Tue May  7 09:37:19 2013

New Revision: 198669



URL: http://gcc.gnu.org/viewcvs?rev=198669&root=gcc&view=rev

Log:

2013-05-07  Tobias Burnus  



* trans-array.c (gfc_conv_descriptor_stride_get,

gfc_conv_descriptor_stride_set): Use elem_len, unless it is

a nonstring intrinsic type for which size_in_bytes is used.

(gfc_array_init_size): Set elem_len before handling the

strides.

* trans-expr.c (gfc_conv_subref_array_arg): Remove no-op

extent shifting code.





Modified:

branches/fortran-dev/gcc/fortran/ChangeLog.fortran-dev

branches/fortran-dev/gcc/fortran/trans-array.c

branches/fortran-dev/gcc/fortran/trans-expr.c


[Bug rtl-optimization/57193] New: suboptimal register allocation for SSE registers

2013-05-07 Thread vermaelen.wouter at gmail dot com


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57193



 Bug #: 57193

   Summary: suboptimal register allocation for SSE registers

Classification: Unclassified

   Product: gcc

   Version: 4.9.0

Status: UNCONFIRMED

  Severity: normal

  Priority: P3

 Component: rtl-optimization

AssignedTo: unassig...@gcc.gnu.org

ReportedBy: vermaelen.wou...@gmail.com





This bug _might_ be related to PR56339, although that report talks about a

regression compared to 4.7, while this bug seems to be a regression compared to

4.4.



I was converting some hand-written asm code to SSE-intrinsics, but

unfortunately the version using intrinsics generates worse code. It contains

two unnecessary 'movdqa' instructions.



I managed to reduce my test to this routine:



//--

#include 



void test1(const __m128i* in1, const __m128i* in2, __m128i* out,

   __m128i f, __m128i zero)

{

__m128i c = _mm_avg_epu8(*in1, *in2);

__m128i l = _mm_unpacklo_epi8(c, zero);

__m128i h = _mm_unpackhi_epi8(c, zero);

__m128i m = _mm_mulhi_epu16(l, f);

__m128i n = _mm_mulhi_epu16(h, f);

*out = _mm_packus_epi16(m, n);

}

//--



A (few days old) gcc snapshot generates the following code. Versions 4.5, 4.6

and 4.7 generate similar code:



   0:   66 0f 6f 17 movdqa (%rdi),%xmm2

   4:   66 0f e0 16 pavgb  (%rsi),%xmm2

   8:   66 0f 6f da movdqa %xmm2,%xmm3

   c:   66 0f 68 d1 punpckhbw %xmm1,%xmm2

  10:   66 0f 60 d9 punpcklbw %xmm1,%xmm3

  14:   66 0f e4 d0 pmulhuw %xmm0,%xmm2

  18:   66 0f 6f cb movdqa %xmm3,%xmm1

  1c:   66 0f e4 c8 pmulhuw %xmm0,%xmm1

  20:   66 0f 6f c1 movdqa %xmm1,%xmm0

  24:   66 0f 67 c2 packuswb %xmm2,%xmm0

  28:   66 0f 7f 02 movdqa %xmm0,(%rdx)

  2c:   c3  retq



Gcc version 4.3 and 4.4 (and clang) generate the following optimal(?) code:

   0:   66 0f 6f 17 movdqa (%rdi),%xmm2

   4:   66 0f e0 16 pavgb  (%rsi),%xmm2

   8:   66 0f 6f da movdqa %xmm2,%xmm3

   c:   66 0f 68 d1 punpckhbw %xmm1,%xmm2

  10:   66 0f 60 d9 punpcklbw %xmm1,%xmm3

  14:   66 0f e4 d8 pmulhuw %xmm0,%xmm3

  18:   66 0f e4 c2 pmulhuw %xmm2,%xmm0

  1c:   66 0f 67 d8 packuswb %xmm0,%xmm3

  20:   66 0f 7f 1a movdqa %xmm3,(%rdx)

  24:   c3  retq


[Bug middle-end/57192] [4.9 Regression] miscompilation at -O3

2013-05-07 Thread Joost.VandeVondele at mat dot ethz.ch


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57192



Joost VandeVondele  changed:



   What|Removed |Added



 CC||Joost.VandeVondele at mat

   ||dot ethz.ch, wschmidt at

   ||linux dot vnet.ibm.com



--- Comment #1 from Joost VandeVondele  
2013-05-07 09:26:20 UTC ---

I think this is triggered by slsr om r198586 as it shortly disappeared r198592

and reappeared after r198627.


[Bug tree-optimization/57186] implement load sinking in loops

2013-05-07 Thread rguenth at gcc dot gnu.org


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57186



Richard Biener  changed:



   What|Removed |Added



 Status|UNCONFIRMED |NEW

   Last reconfirmed||2013-05-07

 CC||rguenth at gcc dot gnu.org

 Ever Confirmed|0   |1



--- Comment #4 from Richard Biener  2013-05-07 
09:02:48 UTC ---

In theory we have the SCCP patch to address at least case #1.  It looks

at loop exit PHIs and tries to replace them with the overall effect of

the loop (using SCEV analysis, which is why it fails for loads).



  :

  # i_15 = PHI 

  _4 = (long unsigned int) i_15;

  _5 = _4 * 4;

  _7 = v_6(D) + _5;

  r_9 = *_7;

  i_10 = i_15 + 1;

  if (i_10 != 64)

goto ;

  else

goto ;



  :

  # r_20 = PHI 



the complication with handling the above in existing passes (for example

code sinking) is that the final value of _7 is needed to sink the dependent

computations.  So I think what SCCP should do here is look at the

single-use chain from the defs of r_20 and analyze the evolution of

the dependent loop variant SSA names, performing sinking of the dependencies

as well.  Conveniently LIM runs before SCCP and performs the necessary

store sinking to allow handling of the last case.


[Bug ada/57188] [4.9 regression] Ada bootstrap broken on Solaris/x64: No_Implicit_Dynamic_Code violation

2013-05-07 Thread rguenth at gcc dot gnu.org


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57188



Richard Biener  changed:



   What|Removed |Added



   Target Milestone|--- |4.9.0


[Bug rtl-optimization/57189] [4.9 Regression] Vector register is spilled for vector extract pattern

2013-05-07 Thread rguenth at gcc dot gnu.org


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57189



Richard Biener  changed:



   What|Removed |Added



   Target Milestone|--- |4.9.0


[Bug rtl-optimization/57189] [4.9 Regression] Vector register is spilled for vector extract pattern

2013-05-07 Thread rguenth at gcc dot gnu.org


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57189



Richard Biener  changed:



   What|Removed |Added



   Keywords||missed-optimization

 Status|UNCONFIRMED |NEW

   Last reconfirmed||2013-05-07

 Ever Confirmed|0   |1



--- Comment #1 from Richard Biener  2013-05-07 
08:51:45 UTC ---

In particular store forwarding will likely not work


[Bug tree-optimization/57190] [4.9 Regression] verify_ssa failed: SSA_NAME_OCCURS_IN_ABNORMAL_PHI should be set

2013-05-07 Thread rguenth at gcc dot gnu.org


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57190



Richard Biener  changed:



   What|Removed |Added



 Status|UNCONFIRMED |ASSIGNED

   Last reconfirmed||2013-05-07

  Component|c++ |tree-optimization

   Target Milestone|--- |4.9.0

Summary|verify_ssa failed:  |[4.9 Regression] verify_ssa

   |SSA_NAME_OCCURS_IN_ABNORMAL |failed:

   |_PHI should be set  |SSA_NAME_OCCURS_IN_ABNORMAL

   ||_PHI should be set

 Ever Confirmed|0   |1



--- Comment #1 from Richard Biener  2013-05-07 
08:49:52 UTC ---

Mine.


[Bug middle-end/57192] [4.9 Regression] miscompilation at -O3

2013-05-07 Thread rguenth at gcc dot gnu.org


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57192



Richard Biener  changed:



   What|Removed |Added



   Target Milestone|--- |4.9.0


[Bug middle-end/57192] New: [4.9 Regression] miscompilation at -O3

2013-05-07 Thread Joost.VandeVondele at mat dot ethz.ch


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57192



 Bug #: 57192

   Summary: [4.9 Regression] miscompilation at -O3

Classification: Unclassified

   Product: gcc

   Version: 4.9.0

Status: UNCONFIRMED

  Severity: normal

  Priority: P3

 Component: middle-end

AssignedTo: unassig...@gcc.gnu.org

ReportedBy: joost.vandevond...@mat.ethz.ch





Created attachment 30045

  --> http://gcc.gnu.org/bugzilla/attachment.cgi?id=30045

testcase, reproduce with 'gfortran  -g -O3 orbital_pointers.f90  ; valgrind

./a.out'



For the attached testcase, recently 4.9 trunk started generating the following

error under valgrind:





gfortran  -g -O3 orbital_pointers.f90  ; valgrind ./a.out





==61245== Invalid write of size 4

==61245==at 0x400EED: __orbital_pointers_MOD_init_orbital_pointers

(orbital_pointers.f90:102)

==61245==by 0x401B71: main (orbital_pointers.f90:214)

==61245==  Address 0x4da2ee4 is not stack'd, malloc'd or (recently) free'd



when compiled at -O3 . Compiling with 4.8 branch, or 4.9 and -O2 doesn't cause

this behavior. 



It has been reduced from CP2K after observing that CP2K segfaults due to a

change made between rev198568 and rev198590 (but I'm not yet 100% sure this

testcase is the root cause).


[Bug tree-optimization/57185] [4.8/4.9 Regression] ICE: Segmentation fault in add_field_for_reduction with -ftree-parallelize-loops=2 -fipa-pta

2013-05-07 Thread rguenth at gcc dot gnu.org


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57185



Richard Biener  changed:



   What|Removed |Added



 Status|ASSIGNED|RESOLVED

 Resolution||FIXED



--- Comment #3 from Richard Biener  2013-05-07 
08:12:59 UTC ---

Author: rguenth

Date: Mon May  6 15:06:41 2013

New Revision: 198630



URL: http://gcc.gnu.org/viewcvs?rev=198630&root=gcc&view=rev

Log:

2013-05-06  Richard Biener  



PR tree-optimization/57185

* tree-parloops.c (add_field_for_reduction): Handle anonymous

SSA names properly.



* gcc.dg/autopar/pr57185.c: New testcase.



Added:

trunk/gcc/testsuite/gcc.dg/autopar/pr57185.c

Modified:

trunk/gcc/ChangeLog

trunk/gcc/testsuite/ChangeLog

trunk/gcc/tree-parloops.c





Author: rguenth

Date: Tue May  7 08:11:46 2013

New Revision: 198665



URL: http://gcc.gnu.org/viewcvs?rev=198665&root=gcc&view=rev

Log:

2013-05-07  Richard Biener  



Backport from mainline

2013-05-06  Richard Biener  



PR tree-optimization/57185

* tree-parloops.c (add_field_for_reduction): Handle anonymous

SSA names properly.



* gcc.dg/autopar/pr57185.c: New testcase.



2013-04-19  Richard Biener  



PR tree-optimization/57000

* tree-ssa-reassoc.c (pass_reassoc): Add TODO_update_ssa_only_virtuals.



* gcc.dg/tree-ssa/reassoc-27.c: New testcase.



Added:

branches/gcc-4_8-branch/gcc/testsuite/gcc.dg/autopar/pr57185.c

branches/gcc-4_8-branch/gcc/testsuite/gcc.dg/tree-ssa/reassoc-27.c

Modified:

branches/gcc-4_8-branch/gcc/ChangeLog

branches/gcc-4_8-branch/gcc/testsuite/ChangeLog

branches/gcc-4_8-branch/gcc/tree-parloops.c


[Bug tree-optimization/57000] [4.8 Regression] ICE with -Ofast and -frounding-math

2013-05-07 Thread rguenth at gcc dot gnu.org


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57000



Richard Biener  changed:



   What|Removed |Added



 Status|ASSIGNED|RESOLVED

  Known to work||4.8.1

 Resolution||FIXED



--- Comment #9 from Richard Biener  2013-05-07 
08:12:17 UTC ---

Author: rguenth

Date: Tue May  7 08:11:46 2013

New Revision: 198665



URL: http://gcc.gnu.org/viewcvs?rev=198665&root=gcc&view=rev

Log:

2013-05-07  Richard Biener  



Backport from mainline

2013-05-06  Richard Biener  



PR tree-optimization/57185

* tree-parloops.c (add_field_for_reduction): Handle anonymous

SSA names properly.



* gcc.dg/autopar/pr57185.c: New testcase.



2013-04-19  Richard Biener  



PR tree-optimization/57000

* tree-ssa-reassoc.c (pass_reassoc): Add TODO_update_ssa_only_virtuals.



* gcc.dg/tree-ssa/reassoc-27.c: New testcase.



Added:

branches/gcc-4_8-branch/gcc/testsuite/gcc.dg/autopar/pr57185.c

branches/gcc-4_8-branch/gcc/testsuite/gcc.dg/tree-ssa/reassoc-27.c

Modified:

branches/gcc-4_8-branch/gcc/ChangeLog

branches/gcc-4_8-branch/gcc/testsuite/ChangeLog

branches/gcc-4_8-branch/gcc/tree-parloops.c


[Bug ada/56474] [4.8/4.9 regression] bogus Storage_Error raised for record containing empty zero-based array

2013-05-07 Thread ebotcazou at gcc dot gnu.org


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56474



Eric Botcazou  changed:



   What|Removed |Added



 Status|NEW |RESOLVED

 Resolution||FIXED



--- Comment #21 from Eric Botcazou  2013-05-07 
08:08:18 UTC ---

Fixed at last.


[Bug ada/56474] [4.8/4.9 regression] bogus Storage_Error raised for record containing empty zero-based array

2013-05-07 Thread ebotcazou at gcc dot gnu.org


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56474



--- Comment #20 from Eric Botcazou  2013-05-07 
08:07:45 UTC ---

Author: ebotcazou

Date: Tue May  7 08:03:15 2013

New Revision: 198664



URL: http://gcc.gnu.org/viewcvs?rev=198664&root=gcc&view=rev

Log:

PR ada/56474

* gcc-interface/decl.c (gnat_to_gnu_entity) : Use

int_const_binop to shift bounds by 1 when they are integer constants.



Added:

branches/gcc-4_8-branch/gcc/testsuite/gnat.dg/specs/array3.ads

  - copied unchanged from r198663,

trunk/gcc/testsuite/gnat.dg/specs/array3.ads

Modified:

branches/gcc-4_8-branch/gcc/ada/ChangeLog

branches/gcc-4_8-branch/gcc/ada/gcc-interface/decl.c

branches/gcc-4_8-branch/gcc/testsuite/ChangeLog


[Bug ada/56474] [4.8/4.9 regression] bogus Storage_Error raised for record containing empty zero-based array

2013-05-07 Thread ebotcazou at gcc dot gnu.org


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56474



--- Comment #19 from Eric Botcazou  2013-05-07 
08:07:27 UTC ---

Author: ebotcazou

Date: Tue May  7 07:59:37 2013

New Revision: 198663



URL: http://gcc.gnu.org/viewcvs?rev=198663&root=gcc&view=rev

Log:

PR ada/56474

* gcc-interface/decl.c (gnat_to_gnu_entity) : Use

int_const_binop to shift bounds by 1 when they are integer constants.



Added:

trunk/gcc/testsuite/gnat.dg/specs/array3.ads

Modified:

trunk/gcc/ada/ChangeLog

trunk/gcc/ada/gcc-interface/decl.c

trunk/gcc/testsuite/ChangeLog


[Bug ada/56474] [4.8/4.9 regression] bogus Storage_Error raised for record containing empty zero-based array

2013-05-07 Thread ebotcazou at gcc dot gnu.org


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56474



Eric Botcazou  changed:



   What|Removed |Added



  Component|middle-end  |ada



--- Comment #18 from Eric Botcazou  2013-05-07 
07:50:39 UTC ---

Recategorizing.


[Bug tree-optimization/57149] [4.8/4.9 Regression] wrong -Wmaybe-uninitialized warning with -Os

2013-05-07 Thread jakub at gcc dot gnu.org


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57149



--- Comment #5 from Jakub Jelinek  2013-05-07 
07:00:58 UTC ---

The difference in *.uninit before/after that commit is small, just:

@@ -78,7 +79,7 @@ fn4 (struct F * x, unsigned int k)

 goto ;



   :

-  # retval_25 = PHI <0(3), retval_26(6)>

+  # err_25 = PHI <0(3), retval_26(6)>

   _12 = y_9->f;

   if (_12 == 0)

 goto ;

@@ -89,17 +90,17 @@ fn4 (struct F * x, unsigned int k)

   goto ;



   :

-  if (retval_25 > 0)

+  if (err_25 > 0)

 goto ;

   else

 goto ;



   :

-  retval_14 = fn0 ();

+  err_14 = fn0 ();



   :

-  # retval_2 = PHI 

-  if (retval_2 < 0)

+  # err_2 = PHI 

+  if (err_2 < 0)

 goto ;

   else

 goto ;



and in both cases there is

   # retval_26 = PHI 

that is the reason for the warning.  The important thing is that the retval

decl has TREE_NO_WARNING set  (because of the retval = retval uninit warning

suppression), while err doesn't.



Trying a patch not to consider TREE_NO_WARNING SSA_NAME_VARs

ssa_undefined_value_p when inside of tree-ssa-uninit.c now.