[Bug c++/54413] Option for turning off compiler extensions for -std=c++11 with respect to complex/fixed-point numbers missing

2012-11-12 Thread redi at gcc dot gnu.org


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



--- Comment #15 from Jonathan Wakely redi at gcc dot gnu.org 2012-11-12 
09:12:35 UTC ---

Ed, N.B. if you use the ChangeLog entry as the svn commit log then the PR

number in the log means Bugzilla gets automatically updated with a link to the

commit, and you don't need to attach it


[Bug c++/55280] Compiler error: Class definition is recognized as function declaration

2012-11-12 Thread redi at gcc dot gnu.org


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



Jonathan Wakely redi at gcc dot gnu.org changed:



   What|Removed |Added



 Status|UNCONFIRMED |RESOLVED

 Resolution||INVALID



--- Comment #2 from Jonathan Wakely redi at gcc dot gnu.org 2012-11-12 
09:16:39 UTC ---

As Andrew said, this is not a bug, see

http://en.wikipedia.org/wiki/Most_vexing_parse



You can force it to be parsed as a variable declaration with A a((B()))


[Bug fortran/55272] [4.8 Regression] ICE on passing coarray argument between files

2012-11-12 Thread burnus at gcc dot gnu.org


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



Tobias Burnus burnus at gcc dot gnu.org changed:



   What|Removed |Added



   Keywords||ice-on-valid-code

   Target Milestone|--- |4.8.0



--- Comment #2 from Tobias Burnus burnus at gcc dot gnu.org 2012-11-12 
09:21:16 UTC ---

The culprit seems to be Rev. 189881.



Untested patch:



--- module.c(Revision 193396)

+++ module.c(Arbeitskopie)

@@ -2395,7 +2395,7 @@ mio_array_spec (gfc_array_spec **asp)

   if (iomode == IO_INPUT  as-corank)

 as-cotype = (as-type == AS_DEFERRED) ? AS_DEFERRED : AS_EXPLICIT;



-  if (as-rank  0)

+  if (as-rank + as-corank  0)

 for (i = 0; i  as-rank + as-corank; i++)

   {

mio_expr (as-lower[i]);


[Bug c++/55280] Compiler error: Class definition is recognized as function declaration

2012-11-12 Thread guangmuzhu at gmail dot com


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



--- Comment #3 from Guangmu Zhu guangmuzhu at gmail dot com 2012-11-12 
09:22:01 UTC ---

(In reply to comment #2)

 As Andrew said, this is not a bug, see

 http://en.wikipedia.org/wiki/Most_vexing_parse

 

 You can force it to be parsed as a variable declaration with A a((B()))



I got it. Thanks a lot!


[Bug tree-optimization/55281] New: [4.8 Regression] ICE in build_int_cst_wide, at tree.c:1217 (with Ofast, ok with O3)

2012-11-12 Thread vincenzo.innocente at cern dot ch

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

 Bug #: 55281
   Summary: [4.8 Regression] ICE in  build_int_cst_wide, at
tree.c:1217  (with Ofast, ok with O3)
Classification: Unclassified
   Product: gcc
   Version: 4.8.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: tree-optimization
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: vincenzo.innoce...@cern.ch


Created attachment 28666
  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=28666
preprocesse real-file code

c++ -std=gnu++11  -Ofast -c PhiPattern.ii
plugins/PhiPattern.cc: In member function 'virtual int
PhiPattern::produce(WhiteBoard)':
plugins/PhiPattern.cc:26:5: internal compiler error: in build_int_cst_wide, at
tree.c:1217
 int PhiPattern::produce(WhiteBoard  event) {
 ^
0xd393ab build_int_cst_wide(tree_node*, unsigned long, long)
../../gcc-trunk/gcc/tree.c:1217
0xd3990e double_int_to_tree(tree_node*, double_int)
../../gcc-trunk/gcc/tree.c:1067
0xd39dea build_int_cst(tree_node*, long)
../../gcc-trunk/gcc/tree.c:1044
0xbefd2b fold_relational_const(tree_code, tree_node*, tree_node*, tree_node*)
[clone .437619]
../../gcc-trunk/gcc/fold-const.c:16163
0xb870b9 fold_binary_loc(unsigned int, tree_code, tree_node*, tree_node*,
tree_node*)
../../gcc-trunk/gcc/fold-const.c:9801
0xba8eef fold_build2_stat_loc(unsigned int, tree_code, tree_node*, tree_node*,
tree_node*)
../../gcc-trunk/gcc/fold-const.c:14676
0xc9f217 fold_binary_op_with_conditional_arg(unsigned int, tree_code,
tree_node*, tree_node*, tree_node*, tree_node*, tree_node*, int) [clone
.437722]
../../gcc-trunk/gcc/fold-const.c:6011
0xb89fb4 fold_binary_loc(unsigned int, tree_code, tree_node*, tree_node*,
tree_node*)
../../gcc-trunk/gcc/fold-const.c:9887
0xa3d04a combine_cond_expr_cond
../../gcc-trunk/gcc/tree-ssa-forwprop.c:367
0xa3d2c4 forward_propagate_into_comparison_1(gimple_statement_d*, tree_code,
tree_node*, tree_node*, tree_node*) [clone .1031067]
../../gcc-trunk/gcc/tree-ssa-forwprop.c:414
0x5fccc5 forward_propagate_into_cond
../../gcc-trunk/gcc/tree-ssa-forwprop.c:562
0x5fccc5 ssa_forward_propagate_and_combine
../../gcc-trunk/gcc/tree-ssa-forwprop.c:3012
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.
[innocent@vinavx0 Octave]$ c++ -std=gnu++11 -O3 -c PhiPattern.ii
[innocent@vinavx0 Octave]$ c++ -v
Using built-in specs.
COLLECT_GCC=c++
COLLECT_LTO_WRAPPER=/afs/cern.ch/user/i/innocent/w2/libexec/gcc/x86_64-unknown-linux-gnu/4.8.0/lto-wrapper
Target: x86_64-unknown-linux-gnu
Configured with: ../gcc-trunk/configure
--prefix=/afs/cern.ch/user/i/innocent/w2 --enable-languages=c,c++,lto,fortran
-enable-gold=yes --enable-lto --with-build-config=bootstrap-lto
--with-gmp-lib=/usr/local/lib64 --with-mpfr-lib=/usr/local/lib64
-with-mpc-lib=/usr/local/lib64 --enable-cloog-backend=isl
--with-cloog=/usr/local --with-ppl-lib=/usr/local/lib64 CFLAGS='-O2
-ftree-vectorize -fPIC' CXXFLAGS='-O2 -fPIC -ftree-vectorize
-fvisibility-inlines-hidden -march=native' -enable-libitm -disable-multilib
Thread model: posix
gcc version 4.8.0 20121112 (experimental) [trunk revision 193427] (GCC) 

same with
bzip2 -d PhiPattern.ii.bz2 
pb-d-128-141-131-26:bugs48 innocent$ c++ -std=gnu++11 -O3 -c PhiPattern.ii
pb-d-128-141-131-26:bugs48 innocent$ c++ -std=gnu++11 -Ofast -c PhiPattern.ii
plugins/PhiPattern.cc: In member function ‘virtual int
PhiPattern::produce(WhiteBoard)’:
plugins/PhiPattern.cc:26:5: internal compiler error: in build_int_cst_wide, at
tree.c:1217

plugins/PhiPattern.cc:26:5: internal compiler error: Abort trap: 6


c++: internal compiler error: Abort trap: 6 (program cc1plus)
Abort trap: 6
pb-d-128-141-131-26:bugs48 innocent$ 
pb-d-128-141-131-26:bugs48 innocent$ 
pb-d-128-141-131-26:bugs48 innocent$ c++ -v
Using built-in specs.
COLLECT_GCC=c++
COLLECT_LTO_WRAPPER=/usr/local/libexec/gcc/x86_64-apple-darwin12.2.0/4.8.0/lto-wrapper
Target: x86_64-apple-darwin12.2.0
Configured with: ./configure --enable-languages=c,c++,fortran
--disable-multilib --disable-bootstrap --enable-lto -disable-libitm
Thread model: posix
gcc version 4.8.0 20121109 (experimental) [trunk revision 193360] (GCC)


[Bug rtl-optimization/54127] [4.7/4.8 Regression] ICE in maybe_record_trace_start with asm goto, --target=powerpc-unknown-linux-gnu

2012-11-12 Thread jakub at gcc dot gnu.org


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



Jakub Jelinek jakub at gcc dot gnu.org changed:



   What|Removed |Added



 Status|NEW |ASSIGNED

 AssignedTo|unassigned at gcc dot   |jakub at gcc dot gnu.org

   |gnu.org |



--- Comment #3 from Jakub Jelinek jakub at gcc dot gnu.org 2012-11-12 
10:18:24 UTC ---

Created attachment 28667

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

gcc48-pr54127.patch



Untested fix.


[Bug fortran/55282] New: openmp directive and classes

2012-11-12 Thread valeryweber at hotmail dot com

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

 Bug #: 55282
   Summary: openmp directive and classes
Classification: Unclassified
   Product: gcc
   Version: 4.8.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: fortran
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: valerywe...@hotmail.com


Dear All

The following code doesnt compile at all with the lattest gfortran. 
The problem seems to be in the class definition of the variable this 
(works fine while declared as type).

gcc version 4.8.0 20121112 (experimental) (GCC) 


module mod
  use omp_lib
  type :: my_t
 integer :: i
  end type my_t
contains
  subroutine init( this )
class( my_t ) :: this
!type( my_t ) :: this
write(*,*) 'init thread=',omp_get_thread_num()
this%i=2
  end subroutine init
end module mod
program prog
  use mod
  type( my_t ) :: a
!$omp parallel default( none )  
!$omp  private( a )  
!$omp  num_threads( 4 )
  call init(a)
!$omp end parallel
end program prog
--
gfortran-trunk prog.f90 -fopenmp
bug.f90: In function ‘prog’:
bug.f90:21:0: error: ‘__vtab_mod_My_t’ not specified in enclosing parallel
   call init(a)
 ^
bug.f90:20:0: error: enclosing parallel
 !$omp  num_threads( 4 )


Thanks
Valery


[Bug tree-optimization/55281] [4.8 Regression] ICE in build_int_cst_wide, at tree.c:1217 (with Ofast, ok with O3)

2012-11-12 Thread jakub at gcc dot gnu.org


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



Jakub Jelinek jakub at gcc dot gnu.org changed:



   What|Removed |Added



 Status|UNCONFIRMED |ASSIGNED

   Last reconfirmed||2012-11-12

 CC||jakub at gcc dot gnu.org

 AssignedTo|unassigned at gcc dot   |jakub at gcc dot gnu.org

   |gnu.org |

   Target Milestone|--- |4.8.0

 Ever Confirmed|0   |1



--- Comment #1 from Jakub Jelinek jakub at gcc dot gnu.org 2012-11-12 
10:33:27 UTC ---

Short testcase:



typedef float VF __attribute__((vector_size (16)));



VF x;



void

foo (void)

{

  VF a, b, c;

  a = (VF) { 1.0, 2.0, 3.0, 4.0 };

  b = (VF) { 5.0, 6.0, 7.0, 8.0 };

  c = (VF) { 0.0, 0.0, 0.0, 0.0 };

  x = c != ((VF) { 0.0, 0.0, 0.0, 0.0 }) ? a : b;

}



with -Ofast.  I was surprised only C++ handles this and not C BTW.


[Bug target/41993] [sh] ICE in create_pre_exit, at mode-switching.c:399

2012-11-12 Thread kkojima at gcc dot gnu.org


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



--- Comment #12 from Kazumoto Kojima kkojima at gcc dot gnu.org 2012-11-12 
10:35:12 UTC ---

(In reply to comment #11)

 Kaz, can you please test following patch, if it works ok SH4?



Works fine.  I've confirmed that there are no new failures on

sh4-unknown-linux-gnu.


[Bug fortran/55272] [4.8 Regression] ICE on passing coarray argument between files

2012-11-12 Thread dominiq at lps dot ens.fr


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



--- Comment #3 from Dominique d'Humieres dominiq at lps dot ens.fr 2012-11-12 
10:40:30 UTC ---

 The culprit seems to be Rev. 189881.



 Untested patch:

 ...



AFAICT the patch does not fix this PR.


[Bug middle-end/55283] New: EON performance regression at -O2 due to loop unrolling changes

2012-11-12 Thread hubicka at gcc dot gnu.org


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



 Bug #: 55283

   Summary: EON performance regression at -O2 due to loop

unrolling changes

Classification: Unclassified

   Product: gcc

   Version: 4.8.0

Status: UNCONFIRMED

  Severity: normal

  Priority: P3

 Component: middle-end

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

ReportedBy: hubi...@gcc.gnu.org





EON regressed by about 20% at -O2 due to



2012-11-06  Jan Hubicka  j...@suse.cz



* cfgloopanal.c (get_loop_hot_path): New function.

* tree-ssa-lop-ivcanon.c (struct loop_size): Add CONSTANT_IV,

NUM_NON_PURE_CALLS_ON_HOT_PATH, NUM_PURE_CALLS_ON_HOT_PATH,

NUM_BRANCHES_ON_HOT_PATH.

(tree_estimate_loop_size): Compute the new values.

(try_unroll_loop_completely): Disable unrolling of loops with only

calls or too many branches.

(tree_unroll_loops_completely): Deal also with outer loops of hot

loops.

* cfgloop.h (get_loop_hot_path): Declare.

* params.def (PARAM_MAX_PEEL_BRANCHES): New parameters.

* invoke.texi (max-peel-branches): Document.



This seems to be bad cost model on array accesses because we unroll only for

size at -O2


[Bug middle-end/55283] EON performance regression at -O2 due to loop unrolling changes

2012-11-12 Thread hubicka at gcc dot gnu.org


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



--- Comment #1 from Jan Hubicka hubicka at gcc dot gnu.org 2012-11-12 
10:44:14 UTC ---

http://gcc.opensuse.org/SPEC/CINT/sb-frescobaldi.suse.de-head-64/252_eon_big.png


[Bug lto/55284] New: [4.8 Regression] ICE in read_cgraph_and_symbols, at lto/lto.c:2944 (when -MMD is passed)

2012-11-12 Thread vincenzo.innocente at cern dot ch


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



 Bug #: 55284

   Summary: [4.8 Regression] ICE in  read_cgraph_and_symbols, at

lto/lto.c:2944 (when -MMD is passed)

Classification: Unclassified

   Product: gcc

   Version: 4.8.0

Status: UNCONFIRMED

  Severity: normal

  Priority: P3

 Component: lto

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

ReportedBy: vincenzo.innoce...@cern.ch





touch foo.cc

[innocent@vinavx0 Octave]$ c++ -flto -MMD foo.cc -o bha

lto1: internal compiler error: in read_cgraph_and_symbols, at lto/lto.c:2944

0xca054e read_cgraph_and_symbols

../../gcc-trunk/gcc/lto/lto.c:2944

0xca054e lto_main()

../../gcc-trunk/gcc/lto/lto.c:3380

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.

lto-wrapper: c++ returned 1 exit status

/afs/cern.ch/user/i/innocent/w2/bin/ld: lto-wrapper failed

collect2: error: ld returned 1 exit status

d -v

GNU ld (GNU Binutils) 2.22


[Bug fortran/55272] [4.8 Regression] ICE on passing coarray argument between files

2012-11-12 Thread dominiq at lps dot ens.fr


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



--- Comment #4 from Dominique d'Humieres dominiq at lps dot ens.fr 2012-11-12 
10:52:30 UTC ---

Actually, the patch fixed the PR (I did not use the patched version

in the previous test).



Sorry for the noise.


[Bug fortran/55272] [4.8 Regression] ICE on passing coarray argument between files

2012-11-12 Thread burnus at gcc dot gnu.org


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



--- Comment #5 from Tobias Burnus burnus at gcc dot gnu.org 2012-11-12 
11:03:46 UTC ---

Author: burnus

Date: Mon Nov 12 11:03:42 2012

New Revision: 193429



URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=193429

Log:

2012-11-12  Tobias Burnus  bur...@net-b.de



PR fortran/55272

* module.c (mio_array_spec): Correctly handle coarray

scalars.



2012-11-12  Tobias Burnus  bur...@net-b.de



PR fortran/55272

* gfortran.dg/coarray_29_1.f90: New.

* gfortran.dg/coarray_29_2.f90: New.





Added:

trunk/gcc/testsuite/gfortran.dg/coarray_29_1.f90

trunk/gcc/testsuite/gfortran.dg/coarray_29_2.f90

Modified:

trunk/gcc/fortran/ChangeLog

trunk/gcc/fortran/module.c

trunk/gcc/testsuite/ChangeLog


[Bug fortran/55272] [4.8 Regression] ICE on passing coarray argument between files

2012-11-12 Thread burnus at gcc dot gnu.org


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



--- Comment #6 from Tobias Burnus burnus at gcc dot gnu.org 2012-11-12 
11:09:50 UTC ---

FIXED on the 4.8 trunk (which was only affected).


[Bug fortran/55272] [4.8 Regression] ICE on passing coarray argument between files

2012-11-12 Thread burnus at gcc dot gnu.org


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



Tobias Burnus burnus at gcc dot gnu.org changed:



   What|Removed |Added



 Status|NEW |RESOLVED

 Resolution||FIXED



--- Comment #7 from Tobias Burnus burnus at gcc dot gnu.org 2012-11-12 
11:10:16 UTC ---

really mark as fixed


[Bug tree-optimization/55281] [4.8 Regression] ICE in build_int_cst_wide, at tree.c:1217 (with Ofast, ok with O3)

2012-11-12 Thread jakub at gcc dot gnu.org


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



--- Comment #2 from Jakub Jelinek jakub at gcc dot gnu.org 2012-11-12 
11:46:30 UTC ---

Actually, that shorter testcase ICEs for a different reason.

static inline float

bar (float k, float j)

{

  float l = 0.0f;

  if (k  j)

l = k;

  float t = k / j;

  float v = t * t;

  if (k == 0)

v = 0.0f;

  if (t  0.4f)

v += 0.7;

  if (l != 0)

v = 1.5 - v;

  return v;

}



void

foo (int *a, int b, float *d, float *e, int *f)

{

  for (int l = 0; l != b; ++l)

for (int i = 0; i != 8; ++i)

  f[i] = e[i] + bar (a[i], d[i]);

}



is where the original testcase ICEs (-Ofast, both C and C++).


[Bug tree-optimization/55253] [4.8 Regression] Revision 193298 miscompiles sqlite with -Os

2012-11-12 Thread jamborm at gcc dot gnu.org


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



Martin Jambor jamborm at gcc dot gnu.org changed:



   What|Removed |Added



 Status|UNCONFIRMED |ASSIGNED

   Last reconfirmed||2012-11-12

 AssignedTo|unassigned at gcc dot   |jamborm at gcc dot gnu.org

   |gnu.org |

 Ever Confirmed|0   |1



--- Comment #2 from Martin Jambor jamborm at gcc dot gnu.org 2012-11-12 
12:03:12 UTC ---

Confirmed and mine, thanks a lot for the reduced testcase.


[Bug target/55285] New: Botan regression on ia-64 at Mar-2012

2012-11-12 Thread hubicka at gcc dot gnu.org


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



 Bug #: 55285

   Summary: Botan regression on ia-64 at Mar-2012

Classification: Unclassified

   Product: gcc

   Version: 4.8.0

Status: UNCONFIRMED

  Severity: normal

  Priority: P3

 Component: target

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

ReportedBy: hubi...@gcc.gnu.org





http://gcc.opensuse.org/c++bench-terbium/botan/botan-summary.txt-1-0.html

shows big regression starting at 2012-03-27

120327.00779 305.24 122247 3599672 73.92 66.60 59.75 48.67 34.98 37.77 27.62

18.96 11.60 29.81 12.71 30.92 45.21 5.05 17.62 39.46 13.04 39.48 31.94 26.33

26.60 44.17 21.35 25.46 84.52 29.83 61.67 29.81 40.88 41.00 35.67 21.19 11.50

5.79 2.94 62.12 40.88 19.23 68.35 122.40 143.46 1097.96 245.17 242.69 90.38

119.04 4.34 165.42 121.75 114.69 68.42 65.40 51.00 109.29 109.04 72.23 56.15

45.92 65.38 23.77 0.75 0.37 

120327.66131 397.96 130439 4987752 42.15 39.60 37.21 33.81 27.98 32.10 17.83

13.42 7.35 24.96 11.75 25.85 25.29 3.06 16.35 31.48 10.52 31.56 26.54 24.27

20.62 38.62 18.81 19.79 45.44 25.04 48.00 24.98 28.71 28.77 25.58 13.17 6.73

3.29 1.65 36.67 27.90 13.71 24.90 55.40 67.98 1097.29 245.29 242.83 64.12 85.94

1.55 129.31 101.46 95.79 63.88 37.83 33.19 111.29 110.35 68.75 55.50 33.62

37.85 17.12 0.53 0.26 



Patches approximately in this range include:



2012-03-27  Aurelien Buhrig  aurelien.buhrig@gmail.com



PR middle-end/51893

* expmed.c (store_bit_field_1): Fix wordnum value for big-endian

targets.



2012-03-27  Martin Jambor  mjam...@suse.cz



PR middle-end/52693

* tree-sra.c (sra_modify_assign): Do not call

load_assign_lhs_subreplacements when working with an unscalarizable

region.



2012-03-27  H.J. Lu  hongjiu...@intel.com



* opth-gen.awk: Allocated a bit for Mask and InverseMask if it

hasn't been allocated.  Define a target macro for Mask and

InverseMask if it hasn't been defined.  Remove MaskExists handling.



* doc/options.texi: Remove MaskExists.



2012-03-27  Richard Guenther  rguent...@suse.de



PR middle-end/52720

* fold-const.c (try_move_mult_to_index): Handle x.array more

explicitely.



2012-03-27  Eric Botcazou  ebotca...@adacore.com



* expmed.c (store_bit_field): Assert that BITREGION_START is a multiple

of a unit before computing the offset in units.

* expr.c (get_bit_range): Return the null range if the enclosing record

is part of a larger bit field.



2012-03-27  Tristan Gingold  ging...@adacore.com



* config/ia64/vms.h (CASE_VECTOR_MODE): Define.

* config/ia64/ia64.md: Remove mode in template.

Sign extend operand in expand_simple_binop.

* config/ia64/ia64.h (ASM_OUTPUT_ADDR_DIFF_ELT): Use

CASE_VECTOR_MODE instead of TARGET_ILP32.

(ADDR_VEC_ALIGN): Make it depends on CASE_VECTOR_MODE.



2012-03-26  Steven Bosscher  ste...@gcc.gnu.org



* varasm.c (assemble_external): #if 0 out the new assert from the

previous commit, it breaks the Java and Go front ends.



2012-03-26  Steven Bosscher  ste...@gcc.gnu.org



* toplev.c (check_global_declaration_1): Do not call assemble_external.

* expr.c (emit_block_move_libcall_fn): Likewise.

(clear_storage_libcall_fn): Likewise.

(expand_expr_addr_expr_1): Likewise.

(expand_expr_real_1): Likewise.

* calls.c (rtx_for_function_call): Likewise.



* varasm.c (assemble_external): Assert this function is only called

during or after expanding to RTL.



2012-03-26  Martin Jambor  mjam...@suse.cz



PR tree-optimization/50052

* tree-sra.c (tree_non_aligned_mem_p): Removed.

(tree_non_aligned_mem_for_access_p): Likewise.

(build_accesses_from_assign): Removed strict alignment requirements

checks.

(access_precludes_ipa_sra_p): Likewise.



2012-03-26  Richard Guenther  rguent...@suse.de



PR tree-optimization/52701

* tree-vect-loop.c (vect_analyze_scalar_cycles_1): Always

compute and set the evolution part of PHI nodes.



2012-03-26  Richard Guenther  rguent...@suse.de



PR tree-optimization/52721

* tree-vect-stmts.c (vect_init_vector): Handle scalars.



2012-03-26  Ulrich Weigand  ulrich.weig...@linaro.org



PR tree-optimization/52686

* tree-vect-data-refs.c (vect_get_smallest_scalar_type): Handle

WIDEN_LSHIFT_EXPR.



2012-03-26  Tristan Gingold  ging...@adacore.com



* config/alpha/vms.h (LINK_SPEC): Simplify.

(STARTFILE_SPEC): Remove -mvms-return-codes handling.

(STARTFILE_SPEC): Remove -mvms-return-codes handling.

(NAME__MAIN, SYMBOL__MAIN): Remove.

(VMS_DEBUG_MAIN_POINTER): Remove.

* config/ia64/vms.h: Likewise.

[Bug fortran/48636] Enable more inlining with -O2 and higher

2012-11-12 Thread hubicka at gcc dot gnu.org


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



--- Comment #37 from Jan Hubicka hubicka at gcc dot gnu.org 2012-11-12 
12:16:18 UTC ---

Fatigue now gets all inlining with -O3 -fwhole-program, with -O3 it gets only

half of inlining because jump functions are not able to track array descriptors

in both calls to generalized_hookes_law.  



What are the other testcases to look at?


[Bug target/55285] Botan regression on ia-64 at Mar-2012

2012-11-12 Thread ebotcazou at gcc dot gnu.org


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



Eric Botcazou ebotcazou at gcc dot gnu.org changed:



   What|Removed |Added



 Status|UNCONFIRMED |NEW

   Last reconfirmed||2012-11-12

 CC||ebotcazou at gcc dot

   ||gnu.org

 Ever Confirmed|0   |1



--- Comment #1 from Eric Botcazou ebotcazou at gcc dot gnu.org 2012-11-12 
12:18:24 UTC ---

There are known performance regressions on strict-alignment platforms because

of the SRA changes, see PR tree-opt/54386.


[Bug fortran/48636] Enable more inlining with -O2 and higher

2012-11-12 Thread izamyatin at gmail dot com


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



Igor Zamyatin izamyatin at gmail dot com changed:



   What|Removed |Added



 CC||izamyatin at gmail dot com



--- Comment #38 from Igor Zamyatin izamyatin at gmail dot com 2012-11-12 
12:44:43 UTC ---

Looks like for x86 r193331 led to significant regression on 172.mgrid for -m32

-O3 -funroll-loops


[Bug lto/55284] [4.8 Regression] ICE in read_cgraph_and_symbols, at lto/lto.c:2944 (when -MMD is passed)

2012-11-12 Thread paolo.carlini at oracle dot com


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



Paolo Carlini paolo.carlini at oracle dot com changed:



   What|Removed |Added



 Status|UNCONFIRMED |WAITING

   Last reconfirmed||2012-11-12

 Ever Confirmed|0   |1



--- Comment #1 from Paolo Carlini paolo.carlini at oracle dot com 2012-11-12 
12:49:32 UTC ---

Attachment missing


[Bug lto/55284] [4.8 Regression] ICE in read_cgraph_and_symbols, at lto/lto.c:2944 (when -MMD is passed)

2012-11-12 Thread vincenzo.innocente at cern dot ch

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

--- Comment #2 from vincenzo Innocente vincenzo.innocente at cern dot ch 
2012-11-12 12:55:50 UTC ---
just 
touch foo.cc
enough…


[Bug lto/55284] [4.8 Regression] ICE in read_cgraph_and_symbols, at lto/lto.c:2944 (when -MMD is passed)

2012-11-12 Thread paolo.carlini at oracle dot com


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



Paolo Carlini paolo.carlini at oracle dot com changed:



   What|Removed |Added



 Status|WAITING |NEW



--- Comment #3 from Paolo Carlini paolo.carlini at oracle dot com 2012-11-12 
12:59:26 UTC ---

Ah, sorry, I missed the touch foo.cc, seems a rather simple issue then.


[Bug lto/55284] [4.8 Regression] ICE in read_cgraph_and_symbols, at lto/lto.c:2944 (when -MMD is passed)

2012-11-12 Thread vincenzo.innocente at cern dot ch


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



--- Comment #4 from vincenzo Innocente vincenzo.innocente at cern dot ch 
2012-11-12 13:07:35 UTC ---

and most probably is already fixed at linker level as does not happen with

GNU ld (GNU Binutils) 2.23.51.20121020


[Bug tree-optimization/55286] New: [4.7/4.8 Regression] Bytemark ASSIGNMENT 4% - 10% slower

2012-11-12 Thread wbrana at gmail dot com


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



 Bug #: 55286

   Summary: [4.7/4.8 Regression] Bytemark ASSIGNMENT 4% - 10%

slower

Classification: Unclassified

   Product: gcc

   Version: 4.7.3

Status: UNCONFIRMED

  Severity: normal

  Priority: P3

 Component: tree-optimization

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

ReportedBy: wbr...@gmail.com





gcc 4.6 branch

ASSIGNMENT  :  64.389  : 245.01  :  63.55

gcc 4.7 branch

ASSIGNMENT  :  57.737  : 219.70  :  56.98

gcc 4.7 branch without 175752

ASSIGNMENT  :  64.163  : 244.15  :  63.33

gcc 4.8 branch

ASSIGNMENT  :  61.751  : 234.97  :  60.95



175752:



Date:   Fri Jul 1 10:00:25 2011 +



2011-07-01  Kai Tietz  kti...@redhat.com



* tree-ssa-forwprop.c (simplify_bitwise_binary): Fix typo.



2011-07-01  Kai Tietz  kti...@redhat.com



* gcc.dg/tree-ssa/bitwise-sink.c: New test.


[Bug tree-optimization/54077] Bytemark FP EMULATION 9%-15% slower than with clang

2012-11-12 Thread wbrana at gmail dot com


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



--- Comment #17 from wbrana wbrana at gmail dot com 2012-11-12 13:17:08 UTC 
---

there is another bug caused by revision 175752

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


[Bug lto/54966] Does LTO requires a larger inline-unit-growth?

2012-11-12 Thread vincenzo.innocente at cern dot ch


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



--- Comment #11 from vincenzo Innocente vincenzo.innocente at cern dot ch 
2012-11-12 13:19:42 UTC ---

much better with 

gcc version 4.8.0 20121112 (experimental) [trunk revision 193427] (GCC) 

but for size 6.  v1 with lto



[innocent@vinavx0 bugs48]$ c++ -Ofast smatrix.ii -march=native ; taskset -c 2

./a.out

size 5.  v1: time in cycles 6925.32

size 5.  v2: time in cycles 2123.49

size 5.  v3: time in cycles 1067.43

size 6.  v1: time in cycles 31216.7

size 6.  v2: time in cycles 3521.98

size 6.  v3: time in cycles 2523.74

[innocent@vinavx0 bugs48]$ c++ -Ofast smatrix.ii -march=native -flto; taskset

-c 2 ./a.out

size 5.  v1: time in cycles 6367.09

size 5.  v2: time in cycles 1181.97

size 5.  v3: time in cycles 1194.82

size 6.  v1: time in cycles 34811.5

size 6.  v2: time in cycles 1909.71

size 6.  v3: time in cycles 1803.48



of course inlining also the case   v1 would be even better !(the code is

equivalent to v2 and v3)



I've some other more complex functions where inline is different than 4.7.2

but not necessarily better

will try to cut a test case


[Bug tree-optimization/55286] [4.7/4.8 Regression] Bytemark ASSIGNMENT 4% - 10% slower

2012-11-12 Thread mikpe at it dot uu.se


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



--- Comment #1 from Mikael Pettersson mikpe at it dot uu.se 2012-11-12 
13:44:32 UTC ---

r175752 is a follow-up fix to r175589, so my guess is that it's the combination

of the two that's causing the regression.



Can you construct a small test case that demonstrates the code quality

regression from these two revisions?


[Bug testsuite/55230] UNSUPPORTED: g++.dg/mv1.C -std=gnu++11

2012-11-12 Thread kyrylo.tkachov at arm dot com


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



Kyrill Tkachov kyrylo.tkachov at arm dot com changed:



   What|Removed |Added



 Status|UNCONFIRMED |RESOLVED

 Resolution||WONTFIX



--- Comment #2 from Kyrill Tkachov kyrylo.tkachov at arm dot com 2012-11-12 
14:06:50 UTC ---

Ah ok,

Since we don't have a g++.target directory, g++.dg does seem the most

appropriate.



I think though that if we end up adding a lot of tests like that in the future,

it would be a good idea to create a g++.target directory to reduce the number

of UNSUPPORTED complaints on other targets.



Thanks,

Kyrill


[Bug fortran/55282] [OOP] openmp directive and classes

2012-11-12 Thread janus at gcc dot gnu.org

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

janus at gcc dot gnu.org changed:

   What|Removed |Added

 CC||janus at gcc dot gnu.org
Summary|openmp directive and|[OOP] openmp directive and
   |classes |classes

--- Comment #1 from janus at gcc dot gnu.org 2012-11-12 14:35:42 UTC ---
(In reply to comment #0)
 The following code doesnt compile at all with the lattest gfortran. 
 The problem seems to be in the class definition of the variable this 
 (works fine while declared as type).

 [...]
 
 bug.f90: In function ‘prog’:
 bug.f90:21:0: error: ‘__vtab_mod_My_t’ not specified in enclosing parallel

This is a known problem, see PR 52531.

Note that Fortran 2003 is not supported in OpenMP 3.1. This may change with
OpenMP 4, but I'm not sure of that.


[Bug fortran/55282] [OOP] openmp directive and classes

2012-11-12 Thread janus at gcc dot gnu.org


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



--- Comment #2 from janus at gcc dot gnu.org 2012-11-12 14:47:11 UTC ---

(In reply to comment #1)

 Note that Fortran 2003 is not supported in OpenMP 3.1. This may change with

 OpenMP 4, but I'm not sure of that.



Just checked: The public RC at http://openmp.org/wp/openmp-specifications/ says

the following:



This OpenMP API specification refers to ISO/IEC 1539-1:2004 as Fortran 2003.

The

following features are not supported:

 * ...

 * Polymorphic entities

 * ...



So, it looks like CLASS declarations are still not allowed in OpenMP 4. Too

bad!


[Bug c++/55267] double operation giving different results depending on context and optimization level

2012-11-12 Thread paolo.carlini at oracle dot com


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



Paolo Carlini paolo.carlini at oracle dot com changed:



   What|Removed |Added



 Status|UNCONFIRMED |RESOLVED

 Resolution||DUPLICATE



--- Comment #2 from Paolo Carlini paolo.carlini at oracle dot com 2012-11-12 
14:53:28 UTC ---

Dup



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


[Bug middle-end/323] optimized code gives strange floating point results

2012-11-12 Thread paolo.carlini at oracle dot com


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



Paolo Carlini paolo.carlini at oracle dot com changed:



   What|Removed |Added



 CC||jkuittinen293482 at gmail

   ||dot com



--- Comment #185 from Paolo Carlini paolo.carlini at oracle dot com 
2012-11-12 14:53:28 UTC ---

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


[Bug c++/52538] Extend C++11 UDLs to be compatible with inttypes.h macros

2012-11-12 Thread paolo.carlini at oracle dot com


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



Paolo Carlini paolo.carlini at oracle dot com changed:



   What|Removed |Added



 Status|NEW |RESOLVED

 Resolution||FIXED

   Target Milestone|--- |4.8.0



--- Comment #6 from Paolo Carlini paolo.carlini at oracle dot com 2012-11-12 
14:57:22 UTC ---

Fixed for 4.8.0.


[Bug c++/52485] [c++11] add an option to disable c++11 user-defined literals

2012-11-12 Thread paolo.carlini at oracle dot com


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



Paolo Carlini paolo.carlini at oracle dot com changed:



   What|Removed |Added



 Status|UNCONFIRMED |RESOLVED

 Resolution||INVALID



--- Comment #5 from Paolo Carlini paolo.carlini at oracle dot com 2012-11-12 
14:59:40 UTC ---

Closing.


[Bug tree-optimization/55281] [4.8 Regression] ICE in build_int_cst_wide, at tree.c:1217 (with Ofast, ok with O3)

2012-11-12 Thread jakub at gcc dot gnu.org


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



--- Comment #3 from Jakub Jelinek jakub at gcc dot gnu.org 2012-11-12 
15:12:20 UTC ---

Created attachment 28668

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

gcc48-pr55281.patch



Untested fix.


[Bug c++/55287] New: GCC crashes and asks to file bug report

2012-11-12 Thread gordoncichon at gmail dot com


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



 Bug #: 55287

   Summary: GCC crashes and asks to file bug report

Classification: Unclassified

   Product: gcc

   Version: 4.4.5

Status: UNCONFIRMED

  Severity: normal

  Priority: P3

 Component: c++

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

ReportedBy: gordoncic...@gmail.com





This is a compiler bug that occurs on Debian squeeze..



uname -a 

Linux caraway 2.6.32-5-686 #1 SMP Sun Sep 23 09:49:36 UTC 2012 i686 GNU/Linux

gcc -v

Using built-in specs.

Target: i486-linux-gnu

Configured with: ../src/configure -v --with-pkgversion='Debian 4.4.5-8'

--with-bugurl=file:///usr/share/doc/gcc-4.4/README.Bugs

--enable-languages=c,c++,fortran,objc,obj-c++ --prefix=/usr

--program-suffix=-4.4 --enable-shared --enable-multiarch

--enable-linker-build-id --with-system-zlib --libexecdir=/usr/lib

--without-included-gettext --enable-threads=posix

--with-gxx-include-dir=/usr/include/c++/4.4 --libdir=/usr/lib --enable-nls

--enable-clocale=gnu --enable-libstdcxx-debug --enable-objc-gc

--enable-targets=all --with-arch-32=i586 --with-tune=generic

--enable-checking=release --build=i486-linux-gnu --host=i486-linux-gnu

--target=i486-linux-gnu

Thread model: posix

gcc version 4.4.5 (Debian 4.4.5-8) 

g++ -save-temps   -c -o gcc-bug.o gcc-bug.cc

g++: Internal error: Killed (program cc1plus)

Please submit a full bug report.

See file:///usr/share/doc/gcc-4.4/README.Bugs for instructions.


[Bug c++/55287] GCC crashes and asks to file bug report

2012-11-12 Thread paolo.carlini at oracle dot com


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



Paolo Carlini paolo.carlini at oracle dot com changed:



   What|Removed |Added



 Status|UNCONFIRMED |RESOLVED

 Resolution||INVALID



--- Comment #1 from Paolo Carlini paolo.carlini at oracle dot com 2012-11-12 
15:22:25 UTC ---

gcc4.4.x is not maintained anymore. Please try again with a GCC from a

currently maintained branch and in case file a proper report:



  http://gcc.gnu.org/bugs/#report


[Bug tree-optimization/55281] [4.8 Regression] ICE in build_int_cst_wide, at tree.c:1217 (with Ofast, ok with O3)

2012-11-12 Thread vincenzo.innocente at cern dot ch


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



--- Comment #4 from vincenzo Innocente vincenzo.innocente at cern dot ch 
2012-11-12 15:37:23 UTC ---

regression removed by the patch

at first sight performances are similar to 4.7.2, so also vectorization is ok


[Bug c++/53475] [4.8 Regression] Section type conflict errors in libstdc++ testsuite

2012-11-12 Thread paolo.carlini at oracle dot com


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



--- Comment #13 from Paolo Carlini paolo.carlini at oracle dot com 2012-11-12 
15:38:12 UTC ---

Honza, I'm a bit confused here: if I understand correctly your r187631 was only

about a C++ optimization, but now I see C testcases too here?!? Do we have two

separate issues?


[Bug tree-optimization/55281] [4.8 Regression] ICE in build_int_cst_wide, at tree.c:1217 (with Ofast, ok with O3)

2012-11-12 Thread glisse at gcc dot gnu.org


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



--- Comment #5 from Marc Glisse glisse at gcc dot gnu.org 2012-11-12 16:18:52 
UTC ---

(In reply to comment #1)

[ Using ?: with a vector condition ]

 I was surprised only C++ handles this and not C BTW.



Sorry, I didn't have time to do a C version (harder than C++ because of things

like c_wrap_maybe_const that I don't understand yet). Even the C++ version

isn't documented yet (I should do it), because it has a number of bugs like

this one.



By the way, I assume you are not calling pedantic_omit_one_operand_loc because

the vector operand is unlikely to have a side effect?


[Bug tree-optimization/55281] [4.8 Regression] ICE in build_int_cst_wide, at tree.c:1217 (with Ofast, ok with O3)

2012-11-12 Thread jakub at gcc dot gnu.org


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



--- Comment #6 from Jakub Jelinek jakub at gcc dot gnu.org 2012-11-12 
16:23:29 UTC ---

I'm just testing that, so I know it doesn't have side-effects.  COND_EXPR

handling which I've copied was doing the same thing.  The reason for the

fold-const.c change was that while you handle that case in forwprop, it only

triggers if forwprop actually simplifies the condition, but if e.g. copyprop

does that, then nothing will fix it up afterwards till expansion.


[Bug tree-optimization/55281] [4.8 Regression] ICE in build_int_cst_wide, at tree.c:1217 (with Ofast, ok with O3)

2012-11-12 Thread glisse at gcc dot gnu.org


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



--- Comment #7 from Marc Glisse glisse at gcc dot gnu.org 2012-11-12 16:39:27 
UTC ---

(In reply to comment #6)

 I'm just testing that, so I know it doesn't have side-effects.



I meant: instead of testing, so the optimization still occurs when there is a

side effect.



 COND_EXPR handling which I've copied was doing the same thing.



Ah, indeed.



 The reason for the

 fold-const.c change was that while you handle that case in forwprop, it only

 triggers if forwprop actually simplifies the condition, but if e.g. copyprop

 does that, then nothing will fix it up afterwards till expansion.



Understood.


[Bug c++/55287] GCC crashes and asks to file bug report

2012-11-12 Thread pinskia at gcc dot gnu.org


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



--- Comment #2 from Andrew Pinski pinskia at gcc dot gnu.org 2012-11-12 
17:01:57 UTC ---

Also this ICE is really the kernel killing the program as it ran out of

memory or it was over one of the ulimits.  Most likely ran of memory.


[Bug debug/55257] [4.8 Regression]: g++.dg/debug/dwarf2/non-virtual-thunk.C scan-assembler thunk.C:30

2012-11-12 Thread hp at gcc dot gnu.org


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



Hans-Peter Nilsson hp at gcc dot gnu.org changed:



   What|Removed |Added



 Status|UNCONFIRMED |ASSIGNED

   Last reconfirmed||2012-11-12

 AssignedTo|unassigned at gcc dot   |hp at gcc dot gnu.org

   |gnu.org |

   Target Milestone|--- |4.8.0

 Ever Confirmed|0   |1



--- Comment #2 from Hans-Peter Nilsson hp at gcc dot gnu.org 2012-11-12 
17:08:12 UTC ---

(In reply to comment #1)

 If the target doesn't call final_start_function and final_end_function in

 output_mi_thunk targhook (or equivalent), it is a target bug.



I see.  I either missed this requirement when I implemented those bits for CRIS

or it wasn't a requirement at the time.  BTW, I see several ports are missing

those calls.  I guess in the general case it can't be left to middle-end to

call those functions at the right time, so I'll just update the port and

hopefully the documentation, but no promises.  Assigning the PR to myself while

verifying that this is the cause.


[Bug debug/55257] [4.8 Regression]: g++.dg/debug/dwarf2/non-virtual-thunk.C scan-assembler thunk.C:30

2012-11-12 Thread jakub at gcc dot gnu.org


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



--- Comment #3 from Jakub Jelinek jakub at gcc dot gnu.org 2012-11-12 
17:14:41 UTC ---

It is a requirement if you want proper debug info or unwind info for the thunk,

without that (or without calling the corresponding functions yourself, which is

harder to maintain) you don't get proper debug info.  It can't be called from

the middle end, because some targets need to perform various things before

final_start_function (or perhaps after final_end_function).


[Bug debug/55257] [4.8 Regression]: g++.dg/debug/dwarf2/non-virtual-thunk.C scan-assembler thunk.C:30

2012-11-12 Thread hp at gcc dot gnu.org


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



--- Comment #4 from Hans-Peter Nilsson hp at gcc dot gnu.org 2012-11-12 
17:21:57 UTC ---

(In reply to comment #3)

 It can't be called from

 the middle end, because some targets need to perform various things before

 final_start_function (or perhaps after final_end_function).



Yes, that's what I meant, so let's just document the requirement.


[Bug c++/55275] abi_tag attribute doesn't work on explicit specializations of class templates

2012-11-12 Thread jason at gcc dot gnu.org


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



Jason Merrill jason at gcc dot gnu.org changed:



   What|Removed |Added



 Status|UNCONFIRMED |NEW

   Last reconfirmed||2012-11-12

 Ever Confirmed|0   |1



--- Comment #1 from Jason Merrill jason at gcc dot gnu.org 2012-11-12 
17:28:59 UTC ---

I agree this is a bug, but I still don't think you need to tag future, since

it's new in C++11.


[Bug c++/54413] Option for turning off compiler extensions for -std=c++11 with respect to complex/fixed-point numbers missing

2012-11-12 Thread 3dw4rd at verizon dot net


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



--- Comment #16 from Ed Smith-Rowland 3dw4rd at verizon dot net 2012-11-12 
17:48:29 UTC ---

Thanks, So If there are several ChangeLogs in the tree to get updated which one

do I put in the svn commit?  Or does it matter?



Also, I just realized that maybe I should whip up a sentence or two for

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


[Bug c++/55287] GCC crashes and asks to file bug report

2012-11-12 Thread paolo.carlini at oracle dot com


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



--- Comment #3 from Paolo Carlini paolo.carlini at oracle dot com 2012-11-12 
17:50:20 UTC ---

Indeed.


[Bug c++/55275] abi_tag attribute doesn't work on explicit specializations of class templates

2012-11-12 Thread redi at gcc dot gnu.org


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



--- Comment #2 from Jonathan Wakely redi at gcc dot gnu.org 2012-11-12 
18:04:53 UTC ---

Yep, I filed this before your reply on the list.  I'm happy to change future

without using the tag, I was just being (maybe too) cautious about ABI changes.

 Thanks.


[Bug c++/55288] New: Improve handling/suppression of maybe-uninitialized warnings

2012-11-12 Thread scovich at gmail dot com


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



 Bug #: 55288

   Summary: Improve handling/suppression of maybe-uninitialized

warnings

Classification: Unclassified

   Product: gcc

   Version: 4.7.1

Status: UNCONFIRMED

  Severity: enhancement

  Priority: P3

 Component: c++

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

ReportedBy: scov...@gmail.com





Created attachment 28669

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

maybe-uninitialized false positive



Enabling -Wmaybe-unused (part of -Wall) can result in false positives, which is

fine (the warning is still quite useful). However, there is currently no way to

disable such warnings on a per-variable basis. 



It is possible, but ineffective, to push a diagnostic pragma to ignore such

warnings: Warnings are generated where the uninitialized value (!= variable) is

eventually consumed, and that can easily happen outside the range covered by

the pragma. Inlining makes the problem much worse [1]. 



The attached test case (reduced from actual code) illustrates the problem

clearly, failing to compile with `-O2 -Wall -Werror' even though (a) the value

*is* always written before being read and (b) even though the containing

function has maybe-uninitialized warnings disabled. Adding -DWORKS allows it to

compile by disabling the warning for the call site, even though the offending

variable is not in scope at any part of the source code where the pragma is in

effect.



Since the compiler can clearly track which variable was the problem, I would

instead propose a new variable attribute, ((maybe_uninitialized)), to suppress

all maybe-uninitialized warnings the marked variable might trigger for its

consumers. That way, known false positives can be whitelisted without disabling

a useful warning for large swaths of unrelated code [2].



[1] First, it can vastly expand the number of problematice end points that lie

outside the pragma (they may even reside in different files). Second, the

resulting error message is extremely unhelpful, because it names the variable

that was originally uninitialized, rather than the variable that ended up

holding the poisoned value at the point of use (the former might not even be

in the same file, let alone be in scope, and there's no easy way to figure out

which of its uses causes the problem). It would be much better in this case if

the diagnostic listed the call site(s) and/or assignments that led to the

identified line of code depending on the potentially-uninitialized value,

similar to how template substitution failures or errors in included headers are

handled today.



[2] Another potential solution would be to propagate the pragma to inlined call

sites, but that seems like a horrifically hacky and error prone solution.


[Bug c++/27557] OpenMP threadprivate directive does not work with non-POD types

2012-11-12 Thread carlos at systemhalted dot org


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



Carlos O'Donell carlos at systemhalted dot org changed:



   What|Removed |Added



 CC||carlos at systemhalted dot

   ||org



--- Comment #8 from Carlos O'Donell carlos at systemhalted dot org 2012-11-12 
18:29:12 UTC ---

The glibc community is aware of this issue. I've added it to our generic todo

list from which developers can help coordinate an implementation.



http://sourceware.org/glibc/wiki/Development_Todo/Generic


[Bug c++/54413] Option for turning off compiler extensions for -std=c++11 with respect to complex/fixed-point numbers missing

2012-11-12 Thread redi at gcc dot gnu.org


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



--- Comment #17 from Jonathan Wakely redi at gcc dot gnu.org 2012-11-12 
18:30:27 UTC ---

(In reply to comment #16)

 Thanks, So If there are several ChangeLogs in the tree to get updated which 
 one

 do I put in the svn commit?  Or does it matter?



I put all of them, prefixed by the dir e.g.

http://gcc.gnu.org/viewcvs?view=revisionrevision=192968



 Also, I just realized that maybe I should whip up a sentence or two for

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



That would be great, thanks.


[Bug fortran/55282] [OOP] openmp directive and classes

2012-11-12 Thread valeryweber at hotmail dot com


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



--- Comment #3 from Valery Weber valeryweber at hotmail dot com 2012-11-12 
19:18:34 UTC ---

Thanks pointing that. Is there any reason for not allowing the classes in

openmp?

I noticed that other compilers (eg ifort, xlf) can accommodate with this

deviation from the standard, is gfortran going in the same direction?


[Bug bootstrap/55289] New: darwin bootstrap fails due to missing libsanitizer/interception/mach_override directory and files

2012-11-12 Thread howarth at nitro dot med.uc.edu


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



 Bug #: 55289

   Summary: darwin bootstrap fails due to missing

libsanitizer/interception/mach_override directory and

files

Classification: Unclassified

   Product: gcc

   Version: 4.8.0

Status: UNCONFIRMED

  Severity: normal

  Priority: P3

 Component: bootstrap

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

ReportedBy: howa...@nitro.med.uc.edu





The merge of the asan branch breaks the bootstrap on darwin due to the missing

libsanitizer/interception/mach_override directory and associated files. These

were never ported from llvm compiler-rt into the asan gcc branch. Manually

adding the libsanitizer/interception/mach_override directory from the llvm

compiler-rt 3.2 branch restores the bootstrap on x86_64-apple-darwin12.


[Bug bootstrap/55289] darwin bootstrap fails due to missing libsanitizer/interception/mach_override directory and files

2012-11-12 Thread howarth at nitro dot med.uc.edu


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



Jack Howarth howarth at nitro dot med.uc.edu changed:



   What|Removed |Added



 Target||*-*-darwin*

   Host||*-*-darwin*

  Build||*-*-darwin*

   Severity|normal  |critical


[Bug fortran/55282] [OOP] openmp directive and classes

2012-11-12 Thread kargl at gcc dot gnu.org


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



kargl at gcc dot gnu.org changed:



   What|Removed |Added



 CC||kargl at gcc dot gnu.org



--- Comment #4 from kargl at gcc dot gnu.org 2012-11-12 20:02:02 UTC ---

(In reply to comment #3)

 Thanks pointing that. Is there any reason for not allowing the classes in

 openmp?

 I noticed that other compilers (eg ifort, xlf) can accommodate with this

 deviation from the standard, is gfortran going in the same direction?



Of course there is a good reason.  What if a future OpenMP

standard introduces classes in manner that conflicts with

the way gfortran implements the extension?  gfortran would

then need an option to toggle between the standard conforming

code and the GNU Fortran extension.  Which, then, is the

default?


[Bug c++/55288] Improve handling/suppression of maybe-uninitialized warnings

2012-11-12 Thread manu at gcc dot gnu.org

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

Manuel López-Ibáñez manu at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
   Last reconfirmed||2012-11-12
 CC||manu at gcc dot gnu.org
 Ever Confirmed|0   |1

--- Comment #1 from Manuel López-Ibáñez manu at gcc dot gnu.org 2012-11-12 
20:07:31 UTC ---
Why don't just initialize the variable? It seems simpler than implementing yet
another special attribute in GCC.

That said, I find strange that the warning points to somewhere within a
function without telling the user where from that function was called. For more
complex testcases, this could turn out to be very confusing. Also, the location
is not actually pointing to the variable but to ';'.

Clang says:

pr55288.cc:40:9: warning: variable 'q' may be uninitialized when used here
[-Wconditional-uninitialized]
foo(q);
^
pr55288.cc:22:8: note: initialize the variable 'q' to silence this warning
  int q;
   ^
= 0


[Bug c/47599] -fno-short-wchar does not force long wchar

2012-11-12 Thread earnie at users dot sourceforge.net


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



Earnie earnie at users dot sourceforge.net changed:



   What|Removed |Added



 CC||earnie at users dot

   ||sourceforge.net



--- Comment #9 from Earnie earnie at users dot sourceforge.net 2012-11-12 
20:15:07 UTC ---

Looking at http://msdn.microsoft.com/en-us/library/dh8che7s(v=vs.71).aspx I see

that wchar_t is typically defined as unsigned short.  MSVC provides a

/Zc:wchar_t that causes wchar_t to become a native type that maps to

_wchar_t.



Currently the mingw.org wchar.h file includes the stddef.h file after defining

__need_wchar_t.  I need to walk through stddef.h to determine if we (mingw.org)

needs to define some other macro based on the provided options.  However, I'm

feeling like this will be a coordinated effort between both parties.  I don't

know about Cygwin's versions of the headers, they should match more to what

Linux defines.


[Bug target/41993] [sh] ICE in create_pre_exit, at mode-switching.c:399

2012-11-12 Thread olegendo at gcc dot gnu.org


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



Oleg Endo olegendo at gcc dot gnu.org changed:



   What|Removed |Added



 CC||olegendo at gcc dot gnu.org



--- Comment #13 from Oleg Endo olegendo at gcc dot gnu.org 2012-11-12 
20:20:26 UTC ---

I've also tested this on rev 193423 with

make -k check

RUNTESTFLAGS=--target_board=sh-sim\{-m2a/-mb,-m2a-single/-mb,-m4/-ml,-m4-single/-ml,-m4/-mb,-m4-single/-mb}



and no new failures.


[Bug rtl-optimization/51447] [4.6/4.7/4.8 Regression] global register variable definition incorrectly removed as dead code

2012-11-12 Thread steven at gcc dot gnu.org


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



--- Comment #14 from Steven Bosscher steven at gcc dot gnu.org 2012-11-12 
20:22:05 UTC ---

Author: steven

Date: Mon Nov 12 20:21:59 2012

New Revision: 193453



URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=193453

Log:

gcc/

PR rtl-optimization/51447

* df-scan.c (df_get_entry_block_def_set): Add global regs to the set.

* df-problems.c (df_lr_local_compute): Make global regs always live.

* dce.c (deletable_insn_p): Make insns setting a global reg

inherently necessary.



testsuite/

PR rtl-optimization/51447

* gcc.c-torture/execute/pr51447.c: New test.





Added:

trunk/gcc/testsuite/gcc.c-torture/execute/pr51447.c

Modified:

trunk/gcc/ChangeLog

trunk/gcc/dce.c

trunk/gcc/df-problems.c

trunk/gcc/df-scan.c

trunk/gcc/testsuite/ChangeLog


[Bug rtl-optimization/55290] New: LRA depends on uninitialised values

2012-11-12 Thread hjl.tools at gmail dot com


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



 Bug #: 55290

   Summary: LRA depends on uninitialised values

Classification: Unclassified

   Product: gcc

   Version: 4.8.0

Status: UNCONFIRMED

  Severity: normal

  Priority: P3

 Component: rtl-optimization

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

ReportedBy: hjl.to...@gmail.com

CC: vmaka...@redhat.com





[hjl@gnu-tools-1 gcc]$ cat /tmp/z.i

int a[10];



void g(int *p);

void h(int p);



int* f(void) {

int b[10] = { };

struct {

   int c[10];

} c = { { } };



g(a[8]);

g(a[9]);



g(a[0]);

g(b[0]);

g(c.c[0]);



return a;

}

[hjl@gnu-tools-1 gcc]$ valgrind ./cc1 -fpreprocessed /tmp/z.i -quiet -dumpbase

z.i -m64 -mtune=generic -march=x86-64 -auxbase z -O2 -version -o z.s

==5815== Memcheck, a memory error detector

==5815== Copyright (C) 2002-2012, and GNU GPL'd, by Julian Seward et al.

==5815== Using Valgrind-3.8.1 and LibVEX; rerun with -h for copyright info

==5815== Command: ./cc1 -fpreprocessed /tmp/z.i -quiet -dumpbase z.i -m64

-mtune=generic -march=x86-64 -auxbase z -O2 -version -o z.s

==5815== 

GNU C (GCC) version 4.8.0 20121112 (experimental) (x86_64-unknown-linux-gnu)

compiled by GNU C version 4.7.2 20120921 (Red Hat 4.7.2-2), GMP version

5.0.2, MPFR version 3.1.0, MPC version 0.9

GGC heuristics: --param ggc-min-expand=30 --param ggc-min-heapsize=4096

GNU C (GCC) version 4.8.0 20121112 (experimental) (x86_64-unknown-linux-gnu)

compiled by GNU C version 4.7.2 20120921 (Red Hat 4.7.2-2), GMP version

5.0.2, MPFR version 3.1.0, MPC version 0.9

GGC heuristics: --param ggc-min-expand=30 --param ggc-min-heapsize=4096

Compiler executable checksum: 28512814d6c61d240aec0db5bb852766

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

==5815==at 0x8A4EA5: sparseset_bit_p(sparseset_def*, unsigned long)

(sparseset.h:147)

==5815==by 0x8A5A18: mark_pseudo_regno_live(int) (ira-lives.c:291)

==5815==by 0x8A5CC7: mark_pseudo_reg_live(rtx_def*, unsigned int)

(ira-lives.c:375)

==5815==by 0x8A5D34: mark_ref_live(df_ref_d*) (ira-lives.c:389)

==5815==by 0x8A849F: process_bb_node_lives(ira_loop_tree_node*)

(ira-lives.c:1322)

==5815==by 0x884217: ira_traverse_loop_tree(bool, ira_loop_tree_node*, void

(*)(ira_loop_tree_node*), void (*)(ira_loop_tree_node*)) (ira-build.c:1609)

==5815==by 0x8A90BE: ira_create_allocno_live_ranges() (ira-lives.c:1596)

==5815==by 0x8885FD: ira_build() (ira-build.c:3210)

==5815==by 0x87F5EE: ira(_IO_FILE*) (ira.c:4476)

==5815==by 0x87FB86: rest_of_handle_ira() (ira.c:4710)

==5815==by 0x937D39: execute_one_pass(opt_pass*) (passes.c:2339)

==5815==by 0x937FB0: execute_pass_list(opt_pass*) (passes.c:2400)

==5815== 

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

==5815==at 0x8A4EA5: sparseset_bit_p(sparseset_def*, unsigned long)

(sparseset.h:147)

==5815==by 0x8A4F37: sparseset_set_bit(sparseset_def*, unsigned long)

(sparseset.h:166)

==5815==by 0x8A5355: make_object_born(ira_object*) (ira-lives.c:122)

==5815==by 0x8A5A37: mark_pseudo_regno_live(int) (ira-lives.c:295)

==5815==by 0x8A5CC7: mark_pseudo_reg_live(rtx_def*, unsigned int)

(ira-lives.c:375)

==5815==by 0x8A5D34: mark_ref_live(df_ref_d*) (ira-lives.c:389)

==5815==by 0x8A849F: process_bb_node_lives(ira_loop_tree_node*)

(ira-lives.c:1322)

==5815==by 0x884217: ira_traverse_loop_tree(bool, ira_loop_tree_node*, void

(*)(ira_loop_tree_node*), void (*)(ira_loop_tree_node*)) (ira-build.c:1609)

==5815==by 0x8A90BE: ira_create_allocno_live_ranges() (ira-lives.c:1596)

==5815==by 0x8885FD: ira_build() (ira-build.c:3210)

==5815==by 0x87F5EE: ira(_IO_FILE*) (ira.c:4476)

==5815==by 0x87FB86: rest_of_handle_ira() (ira.c:4710)

==5815== 

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

==5815==at 0x88FD3C: sparseset_bit_p(sparseset_def*, unsigned long)

(sparseset.h:147)

==5815==by 0x88FDCE: sparseset_set_bit(sparseset_def*, unsigned long)

(sparseset.h:166)

==5815==by 0x890B9A: build_conflict_bit_table() (ira-conflicts.c:174)

==5815==by 0x892B9F: ira_build_conflicts() (ira-conflicts.c:856)

==5815==by 0x888647: ira_build() (ira-build.c:3227)

==5815==by 0x87F5EE: ira(_IO_FILE*) (ira.c:4476)

==5815==by 0x87FB86: rest_of_handle_ira() (ira.c:4710)

==5815==by 0x937D39: execute_one_pass(opt_pass*) (passes.c:2339)

==5815==by 0x937FB0: execute_pass_list(opt_pass*) (passes.c:2400)

==5815==by 0x937FE1: execute_pass_list(opt_pass*) (passes.c:2401)

==5815==by 0x667BCD: expand_function(cgraph_node*) (cgraphunit.c:1643)

==5815==by 0x668088: expand_all_functions() (cgraphunit.c:1747)

==5815== 

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

==5815==at 0x8E2237

[Bug rtl-optimization/51447] [4.6/4.7 Regression] global register variable definition incorrectly removed as dead code

2012-11-12 Thread steven at gcc dot gnu.org


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



Steven Bosscher steven at gcc dot gnu.org changed:



   What|Removed |Added



 Status|ASSIGNED|NEW

 AssignedTo|steven at gcc dot gnu.org   |unassigned at gcc dot

   ||gnu.org

Summary|[4.6/4.7/4.8 Regression]|[4.6/4.7 Regression] global

   |global register variable|register variable

   |definition incorrectly  |definition incorrectly

   |removed as dead code|removed as dead code



--- Comment #15 from Steven Bosscher steven at gcc dot gnu.org 2012-11-12 
20:23:37 UTC ---

Fixed on trunk. Could be back-ported, but IMHO this issue is not

important enough for that so I'm not going to work on back-ports.


[Bug objc/55291] New: libsanitizer doesn't build multilib

2012-11-12 Thread hjl.tools at gmail dot com


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



 Bug #: 55291

   Summary: libsanitizer doesn't build multilib

Classification: Unclassified

   Product: gcc

   Version: 4.8.0

Status: UNCONFIRMED

  Severity: normal

  Priority: P3

 Component: objc

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

ReportedBy: hjl.to...@gmail.com





On Linux/x86-64, libsanitizer doesn't build multilib, like -m32 and

-mx32.


[Bug rtl-optimization/55290] sparseset by design depends on uninitialised values but valgrind doesn't get it

2012-11-12 Thread steven at gcc dot gnu.org


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



Steven Bosscher steven at gcc dot gnu.org changed:



   What|Removed |Added



 CC||steven at gcc dot gnu.org

Summary|LRA depends on  |sparseset by design depends

   |uninitialised values|on uninitialised values but

   ||valgrind doesn't get it



--- Comment #1 from Steven Bosscher steven at gcc dot gnu.org 2012-11-12 
20:41:19 UTC ---

Looks like a valgrind bug to me. There is a VALGRIND_DISCARD for this

in sparseset.c:39.


[Bug other/55292] New: libsanitizer doesn't support x32

2012-11-12 Thread hjl.tools at gmail dot com


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



 Bug #: 55292

   Summary: libsanitizer doesn't support x32

Classification: Unclassified

   Product: gcc

   Version: 4.8.0

Status: UNCONFIRMED

  Severity: normal

  Priority: P3

 Component: other

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

ReportedBy: hjl.to...@gmail.com





sanitizer_common/sanitizer_linux.cc has



void *internal_mmap(void *addr, uptr length, int prot, int flags,

int fd, u64 offset) {

#if __WORDSIZE == 64

  return (void *)syscall(__NR_mmap, addr, length, prot, flags, fd, offset);

#else

  return (void *)syscall(__NR_mmap2, addr, length, prot, flags, fd, offset);

#endif

}



uptr internal_filesize(fd_t fd) {

#if __WORDSIZE == 64

  struct stat st;

  if (syscall(__NR_fstat, fd, st))

return -1;

#else

  struct stat64 st;

  if (syscall(__NR_fstat64, fd, st))

return -1;

#endif

  return (uptr)st.st_size;

}



They are incorrect for x32.


[Bug bootstrap/55289] darwin bootstrap fails due to missing libsanitizer/interception/mach_override directory and files

2012-11-12 Thread dominiq at lps dot ens.fr


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



Dominique d'Humieres dominiq at lps dot ens.fr changed:



   What|Removed |Added



 Status|UNCONFIRMED |NEW

   Last reconfirmed||2012-11-12

 Ever Confirmed|0   |1



--- Comment #1 from Dominique d'Humieres dominiq at lps dot ens.fr 2012-11-12 
20:53:31 UTC ---

 Manually adding the libsanitizer/interception/mach_override directory from 
 the llvm

 compiler-rt 3.2 branch restores the bootstrap on x86_64-apple-darwin12.



How do I get the libsanitizer/interception/mach_override directory on Xcode

3.2.6?


[Bug target/50457] SH2A atomic functions

2012-11-12 Thread olegendo at gcc dot gnu.org


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



--- Comment #16 from Oleg Endo olegendo at gcc dot gnu.org 2012-11-12 
20:57:12 UTC ---

Another thing that might be useful for dealing with atomics on SH1* and SH2*

targets is to make the compiler generate the rewind sequences in interrupt

handler functions.



On SH3* and SH4* targets, the interrupt handling jump table is usually designed

in such a way, that it can contain (small) setup code before a user specified

interrupt handling function is invoked.

However, on SH1* and SH2* targets, the processor directly jumps to the user

specified interrupt handling function via the interrupt jump table.  It would

be possible to have two such jump tables, where code in the first table handles

atomic sequence rewinding and then jumps to the second (actual) interrupt

handling function specified by the user.  This is not necessary, if the

compiler can insert the atomic sequence rewind code snippet (according to the

currently selected atomic model) at the beginning of an interrupt handler

function.  Moreover, the compiler can omit the atomic rewind sequence if...

* an ISR doesn't call any other (non-inlined) functions

* an ISR doesn't contain any atomic sequences itself



For example, a very simple timer ISR that just increments the high word of the

system's free running timer doesn't need to handle any atomics.



Another example would be an SCI/SCIF ISR that receives/sends data to/from a

buffer.  In this case, the ISR probably has two code execution paths.  While

the receive/send operation is still in progress the code path is probably very

short and updates only a few internal variables, which doesn't need any atomic

handling.  When the receive/send operation has completed, the completion

condition has to be propagated to user code and most likely requires calling

other functions and thus handling atomic sequences.  Ideally, the compiler

would insert atomic handling code in the ISR only to those paths, which

actually need it.  This would reduce interrupt handling time.



I'd propose to add a new function attribute 'handle_atomics' that can be used

in combination with the 'interrupt_handler' function attribute for this.

SH3* and SH4* targets could also benefit from this.


[Bug c++/55288] Improve handling/suppression of maybe-uninitialized warnings

2012-11-12 Thread scovich at gmail dot com


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



--- Comment #2 from Ryan Johnson scovich at gmail dot com 2012-11-12 21:11:43 
UTC ---

(In reply to comment #1)

 Why don't just initialize the variable? It seems simpler than implementing yet

 another special attribute in GCC.



In the original program, the variable is a largish struct, the function is

hot, and the 'valid' execution path is not the most common one. Avoiding

unnecessary initialization there has a measurable impact on performance. 



Note that, in other parts of the code that gcc understands better, the

initialization is unnecessary (no warning) and gets optimized away even if I do

have it in place... much to my chagrin once, after I did a lot of work to

refactor a complex function, only to realize that gcc emitted *exactly* the

same machine code afterward, because it had already noticed and eliminated the

dead stores. 



There's also a philosophical argument to be made... if we agree that all

warnings subject to false positives should be supressible, the current

mechanism for maybe-uninitialized is inadequate, and a variable attribute would

resolve the issue very nicely. There's precedent for this: you *could* use

#ifndef NDEBUG (or even pragma diagnostic) to avoid unused-variable warnings

for helper variables used by multiple assertions scattered over a region of

code, but setting ((unused)) on the offending variable is much easier to read

and maintain, while still allowing other unused variables to be flagged

properly.


[Bug tree-optimization/55238] [4.8 Regression] ICE in find_aggregate_values_for_callers_subset, at ipa-cp.c:2908 building zlib

2012-11-12 Thread pinskia at gcc dot gnu.org


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



Andrew Pinski pinskia at gcc dot gnu.org changed:



   What|Removed |Added



 CC||pinskia at gcc dot gnu.org

   Target Milestone|--- |4.8.0

Summary|ICE in  |[4.8 Regression] ICE in

   |find_aggregate_values_for_c |find_aggregate_values_for_c

   |allers_subset, at   |allers_subset, at

   |ipa-cp.c:2908 building zlib |ipa-cp.c:2908 building zlib


[Bug c/55293] New: Attempt to bootstrap 7.7.2 on Solaris 10 Sparc fails with gcc/pretty-print.c:954:28: error: invalid conversion from 'char**' to 'const char**' [-fpermissive]

2012-11-12 Thread dclarke at blastwave dot org


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



 Bug #: 55293

   Summary: Attempt to bootstrap 7.7.2 on Solaris 10 Sparc fails

with gcc/pretty-print.c:954:28: error: invalid

conversion from 'char**' to 'const char**'

[-fpermissive]

Classification: Unclassified

   Product: gcc

   Version: 4.7.3

Status: UNCONFIRMED

  Severity: normal

  Priority: P3

 Component: c

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

ReportedBy: dcla...@blastwave.org





On a Solaris 10 server : 



$ uname -a 

SunOS node002 5.10 Generic_147440-23 sun4v sparc SUNW,T5240



With gcc 4.5.1 from Blastwave : 



$ which gcc 

/opt/csw/gcc4/bin/gcc

$ gcc --version

gcc (Blastwave.org Inc. Mon Aug  9 07:10:45 GMT 2010) 4.5.1

Copyright (C) 2010 Free Software Foundation, Inc.

This is free software; see the source for copying conditions.  There is NO

warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.



See test report filed :



http://gcc.gnu.org/ml/gcc-testresults/2010-08/msg01023.html



With gmp-5.0.5, mpfr-3.1.1, and mpc-1.0.1 all previously built, tested clean

and installed into /usr/local.



Configure of GCC 4.7.2 looks fine thus : 



$ pwd

/usr/local/build/gcc-4.7.2_sparc64-sun-solaris2.10.ebotcazou





$ CC='gcc -m64' CXX='g++ -m64' ../gcc-4.7.2/configure --prefix=/usr/local/gcc4

\

 --build=sparc64-sun-solaris2.10 --without-gnu-as --without-gnu-ld \

 --with-gmp=/usr/local --with-mpfr=/usr/local --with-mpc=/usr/local \

 --with-ld=/usr/ccs/bin/ld --enable-nls --enable-threads=posix --enable-shared 
 \

 --libdir=/usr/local/gcc4/lib --with-local-prefix=/usr/local/gcc4 \

 --with-cpu=v9 --enable-stage1-languages=c --disable-multilib \

 --libexecdir=/usr/local/gcc4/lib \

 --with-pkgversion=Blastwave.org\ Inc.\ Mon\ Nov\ 12\ 04\:18\:15\ GMT\ 2012 \

 --with-bugurl=http\:\/\/www.blastwave.org\/support \

 --enable-languages=c,c++,objc,fortran,ada --enable-bootstrap

checking build system type... sparc64-sun-solaris2.10

checking host system type... sparc64-sun-solaris2.10

checking target system type... sparc64-sun-solaris2.10

checking for a BSD-compatible install... ../gcc-4.7.2/install-sh -c

checking whether ln works... yes

checking whether ln -s works... yes

checking for a sed that does not truncate output... /usr/local/bin/gsed

checking for gawk... gawk

checking for libitm support... yes

checking for gcc... gcc -m64

checking for C compiler default output file name... a.out

checking whether the C compiler works... yes

checking whether we are cross compiling... no

checking for suffix of executables... 

checking for suffix of object files... o

checking whether we are using the GNU C compiler... yes

checking whether gcc -m64 accepts -g... yes

checking for gcc -m64 option to accept ISO C89... none needed

checking whether we are using the GNU C++ compiler... yes

checking whether g++ -m64 accepts -g... yes

checking for gnatbind... gnatbind

checking for gnatmake... gnatmake

checking whether compiler driver understands Ada... yes

checking how to compare bootstrapped objects... cmp $$f1 $$f2 16 16

checking for objdir... .libs

checking for the correct version of gmp.h... yes

checking for the correct version of mpfr.h... yes

checking for the correct version of mpc.h... yes

checking for the correct version of the gmp/mpfr/mpc libraries... yes

checking for PWL_handle_timeout in -lpwl... no

checking for version 0.11 (revision 0 or later) of PPL... no

The following languages will be built: c,ada,c++,fortran,lto,objc

*** This configuration is not supported in the following subdirectories:

 target-libmudflap target-libgo target-libffi target-zlib target-libjava

target-boehm-gc

(Any other directories should still work fine.)

checking for default BUILD_CONFIG... 

checking for bison... bison -y

checking for bison... bison

checking for gm4... /usr/local/bin/gm4

checking for flex... flex

checking for flex... flex

checking for makeinfo... makeinfo

checking for expect... expect

checking for runtest... runtest

checking for ar... (cached) /usr/ccs/bin/ar

checking for as... (cached) /usr/ccs/bin/as

checking for dlltool... no

checking for ld... (cached) /usr/ccs/bin/ld

checking for lipo... no

checking for nm... nm

checking for ranlib... ranlib

checking for strip... strip

checking for windres... no

checking for windmc... no

checking for objcopy... no

checking for objdump... no

checking for readelf... no

checking for cc... cc

checking for c++... c++

checking for gcc... gcc

checking for gcj... no

checking for gfortran... gfortran

checking for gccgo... no

checking for ar... no

checking for ar... ar

checking for as... no

checking for as... as

checking for dlltool... no

checking for dlltool... no

checking for ld... no

checking for ld... ld

checking for lipo... no

checking for lipo... no


[Bug c/55293] Attempt to bootstrap GCC 4.7.2 on Solaris 10 Sparc fails with gcc/pretty-print.c:954:28: error: invalid conversion from 'char**' to 'const char**' [-fpermissive]

2012-11-12 Thread redi at gcc dot gnu.org


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



--- Comment #1 from Jonathan Wakely redi at gcc dot gnu.org 2012-11-12 
21:48:46 UTC ---

Solaris defines a non-standard iconv() signature unless you request POSIX 2001



Try adding -D_XOPEN_SOURCE=600 to the compilation flags


[Bug c/55293] Attempt to bootstrap GCC 4.7.2 on Solaris 10 Sparc fails with gcc/pretty-print.c:954:28: error: invalid conversion from 'char**' to 'const char**' [-fpermissive]

2012-11-12 Thread redi at gcc dot gnu.org


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



--- Comment #2 from Jonathan Wakely redi at gcc dot gnu.org 2012-11-12 
21:50:08 UTC ---

Or -D_POSIX_C_SOURCE=200112L


[Bug rtl-optimization/55294] New: Invalid RTL sharing in lower-subreg

2012-11-12 Thread olegendo at gcc dot gnu.org


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



 Bug #: 55294

   Summary: Invalid RTL sharing in lower-subreg

Classification: Unclassified

   Product: gcc

   Version: 4.8.0

Status: UNCONFIRMED

  Severity: normal

  Priority: P3

 Component: rtl-optimization

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

ReportedBy: olege...@gcc.gnu.org

Target: sh*-*-*





I ran into this one while trying out a couple of things on rev 193423 in the SH

backend.



What I did was to disallow SF subregs of integer regs/pseudos in the

'fp_arith_reg_operand' predicate, like that:



Index: gcc/config/sh/predicates.md

===

--- gcc/config/sh/predicates.md(revision 193423)

+++ gcc/config/sh/predicates.md(working copy)

@@ -319,16 +319,24 @@

   if (register_operand (op, mode))

 {

   int regno;

+  machine_mode m;



   if (REG_P (op))

-regno = REGNO (op);

+{

+  regno = REGNO (op);

+  m = GET_MODE (op);

+}

   else if (GET_CODE (op) == SUBREG  REG_P (SUBREG_REG (op)))

-regno = REGNO (SUBREG_REG (op));

+{

+  regno = REGNO (SUBREG_REG (op));

+  m = GET_MODE (SUBREG_REG (op));

+}

   else

 return 1;



-  return (regno = FIRST_PSEUDO_REGISTER

-  || FP_REGISTER_P (regno));

+  return (regno = FIRST_PSEUDO_REGISTER || FP_REGISTER_P (regno))

+  (GET_MODE_CLASS (m) == MODE_FLOAT

+ || GET_MODE_CLASS (m) == MODE_VECTOR_FLOAT);

 }

   return 0;

 })



... to avoid operands such as 'subreg:SF (reg:SI)'.  On SH FP values might end

up in GP regs (in particular FP vectors .. see e.g. PR 13423) and have to be

loaded into FP regs first.  This is currently done during/by reload, but there

are some cases where this causes trouble.  Doing the GP - FP reg copies before

reload seems to be a bit better.

After applying the patch above, the following code:



typedef float V2SF __attribute__ ((vector_size (8)));



V2SF

foo (V2SF a, float x, float y)

{

  return a * (V2SF) { x, y };

}



compiled with -m4 -O2, makes the lower-subreg 2 pass transform the two insns:



(insn 23 7 24 2 (parallel [

(set (reg:SF 174 [ D.1360 ])

(mult:SF (reg:SF 69 fr5 [ x ])

(subreg:SF (reg/v:V2SF 167 [ a ]) 0)))

(use (reg/v:PSI 151 ))

]) sh_tmp.cpp:7 426 {mulsf3_i}

 (expr_list:REG_DEAD (reg:SF 69 fr5 [ x ])

(nil)))



...



(insn 27 24 28 2 (parallel [

(set (reg:SF 177 [ D.1360 ])

(mult:SF (reg:SF 68 fr4 [ y ])

(subreg:SF (reg/v:V2SF 167 [ a ]) 4)))

(use (reg/v:PSI 151 ))

]) sh_tmp.cpp:7 426 {mulsf3_i}

 (expr_list:REG_DEAD (reg/v:V2SF 167 [ a ])

(expr_list:REG_DEAD (reg:SF 68 fr4 [ y ])

(nil



into:



(insn 23 7 24 2 (parallel [

(set (reg:SF 174 [ D.1360 ])

(mult:SF (reg:SF 69 fr5 [ x ])

(subreg:SF (concatn/v:V2SF [

(reg:SI 191 [ a ])

(reg:SI 192 [ a+4 ])

]) 0)))

(use (reg/v:PSI 151 ))

]) sh_tmp.cpp:7 426 {mulsf3_i}

 (expr_list:REG_DEAD (reg:SF 69 fr5 [ x ])

(nil)))



...



(insn 27 24 28 2 (parallel [

(set (reg:SF 177 [ D.1360 ])

(mult:SF (reg:SF 68 fr4 [ y ])

(subreg:SF (concatn/v:V2SF [

(reg:SI 191 [ a ])

(reg:SI 192 [ a+4 ])

]) 4)))

(use (reg/v:PSI 151 ))

]) sh_tmp.cpp:7 426 {mulsf3_i}

 (expr_list:REG_DEAD (reg:SF 68 fr4 [ y ])

(nil)))



.. which results in an invalid rtl sharing:



sh_tmp.cpp:8:1: error: shared rtx

(concatn/v:V2SF [

(reg:SI 191 [ a ])

(reg:SI 192 [ a+4 ])

])

sh_tmp.cpp:8:1: internal compiler error: internal consistency failure





Note: I had to disable the assert in lower-subreg.c:1582 to get this info,

because the assert would actually trigger before it gets to the rtl sharing

checks.  The original call stack is:



sh_tmp.cpp: In function 'foo':

sh_tmp.cpp:8:1: internal compiler error: in decompose_multiword_subregs, at

lower-subreg.c:1582

 }

 ^

0x89184f5 decompose_multiword_subregs

../../gcc-trunk2/gcc/lower-subreg.c:1582

0x89185ac rest_of_handle_lower_subreg2

../../gcc-trunk2/gcc/lower-subreg.c:1659

Please submit a full bug report,



I've attached the logs of the split1 pass before subreg2 and the log of the

subreg2 pass which I got after applying this:



Index: gcc/lower-subreg.c

===

--- gcc/lower-subreg.c(revision 193423)

+++ gcc/lower-subreg.c(working copy)

@@ 

[Bug rtl-optimization/55294] Invalid RTL sharing in lower-subreg

2012-11-12 Thread olegendo at gcc dot gnu.org


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



--- Comment #1 from Oleg Endo olegendo at gcc dot gnu.org 2012-11-12 21:53:58 
UTC ---

Created attachment 28670

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

split1 and subreg2 logs


[Bug rtl-optimization/55294] Invalid RTL sharing in lower-subreg

2012-11-12 Thread pinskia at gcc dot gnu.org


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



--- Comment #2 from Andrew Pinski pinskia at gcc dot gnu.org 2012-11-12 
21:55:11 UTC ---

I think this is because:

(subreg:SF (reg/v:V2SF 167 [ a ]) 0)))



is invalid to begin with.  Yes we don't reject it but I think we should.


[Bug c/55293] Attempt to bootstrap GCC 4.7.2 on Solaris 10 Sparc fails with gcc/pretty-print.c:954:28: error: invalid conversion from 'char**' to 'const char**' [-fpermissive]

2012-11-12 Thread dclarke at blastwave dot org


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



--- Comment #3 from Dennis Clarke dclarke at blastwave dot org 2012-11-12 
22:07:29 UTC ---

OKay, I am extracting a fresh gcc 4.7.2 tarball and then running a new

bootstrap with the defines suggested.  Results should appear in seven hours or

so, however I am hoping for results in 24 hours as that would be a full three

stage bootstrap.


[Bug c/55293] Attempt to bootstrap GCC 4.7.2 on Solaris 10 Sparc fails with gcc/pretty-print.c:954:28: error: invalid conversion from 'char**' to 'const char**' [-fpermissive]

2012-11-12 Thread dclarke at blastwave dot org


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



--- Comment #4 from Dennis Clarke dclarke at blastwave dot org 2012-11-12 
22:10:01 UTC ---

bootstrap fails in 71 seconds : 



$ mkdir gcc-4.7.2_sparc64-sun-solaris2.10

$ cd gcc-4.7.2_sparc64-sun-solaris2.10

$ env | sort  ../gcc-4.7.2_sparc64-sun-solaris2.10.env

$ ls -la

total 20

drwxr-xr-x   2 dclarke  other  2 Nov 12 21:58 .

drwxrwxr-x 138 root adbs 247 Nov 12 21:58 ..

$

$ pwd 

/usr/local/build/gcc-4.7.2_sparc64-sun-solaris2.10

$ uname -a 

SunOS node002 5.10 Generic_147440-23 sun4v sparc SUNW,T5240

$ 

$ env | sort 

AR=/usr/ccs/bin/ar

AS=/usr/ccs/bin/as

BUILD=/usr/local/build

CC=/opt/csw/gcc4/bin/gcc

COLUMNS=124

CONFIG_SHELL=/bin/bash

CPPFLAGS=-I/usr/local/include:/opt/csw/gcc4/include

CXX=/opt/csw/gcc4/bin/g++

EDITOR=/usr/xpg4/bin/vi

HOME=/export/home/dclarke

LANG=C

LC_ALL=C

LC_COLLATE=C

LC_CTYPE=C

LC_MESSAGES=C

LC_MONETARY=C

LC_NUMERIC=C

LC_TIME=C

LD=/usr/ccs/bin/ld

LD_LIBRARY_PATH=/usr/local/lib:/opt/csw/gcc4/lib/sparcv9:/opt/csw/gcc4/lib

LD_OPTIONS=-R/usr/local/lib:/opt/csw/gcc4/lib/$ISALIST:/opt/csw/gcc4/lib

-L/usr/local/lib:/opt/csw/gcc4/lib/$ISALIST:/opt/csw/gcc4/lib

LD_RUN_PATH=/usr/local/lib:/opt/csw/gcc4/lib/$ISALIST

LINES=43

LOGNAME=dclarke

M4=/usr/local/bin/gm4

MACHTYPE=sparc-sun-solaris

MAIL=/usr/mail/dclarke

MAKE=/usr/local/bin/gmake

MANPATH=/usr/local/man:/usr/local/share/man:/usr/share/man:/usr/X11/share/man

OSTYPE=solaris

PAGER=/usr/xpg4/bin/more

PATH=/opt/csw/gcc4/bin:/usr/local/bin:/usr/local/sbin:/usr/xpg6/bin:/usr/xpg4/bin:/usr/ccs/bin:/usr/bin:/sbin:/bin:/usr/sbin:/usr/dt/bin:/usr/openwin/bin:/opt/schily/bin:/usr/local/texlive/2012/bin/sparc-solaris

PERL=/usr/local/bin/perl

PKG_CONFIG_PATH=/usr/local/lib/pkgconfig

PWD=/usr/local/build/gcc-4.7.2_sparc64-sun-solaris2.10

SED=/usr/local/bin/gsed

SHELL=/bin/ksh

SRC=/usr/local/src

SSH_CLIENT=66.103.52.207 33595 22

SSH_CONNECTION=66.103.52.207 33595 66.225.151.250 22

SSH_TTY=/dev/pts/1

STY=4301.pts-1.node002

TERM=vt100

TZ=GMT0

USER=dclarke

VISUAL=/usr/xpg4/bin/vi

WINDOW=3

_=/usr/xpg4/bin/env

$ 

$ which gcc

/opt/csw/gcc4/bin/gcc

$ 

$ gcc --version 

gcc (Blastwave.org Inc. Mon Aug  9 07:10:45 GMT 2010) 4.5.1

Copyright (C) 2010 Free Software Foundation, Inc.

This is free software; see the source for copying conditions.  There is NO

warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.



$ 

$ ls -lad ../gcc-4.7.2 

drwxr-xr-x  33 dclarke  other 75 Oct 29 04:04 ../gcc-4.7.2

$ 

$ which as 

/usr/ccs/bin/as

$ which ld 

/usr/ccs/bin/ld

$ 

$ echo $CFLAGS 



$ echo $CXXFLAGS 



$ 

$ CC='gcc -m64 -D_POSIX_C_SOURCE=200112L -D_XOPEN_SOURCE=600 -g -mno-app-regs

-mcpu=v9 -D_TS_ERRNO' \

 CXX='g++ -m64 -D_POSIX_C_SOURCE=200112L -D_XOPEN_SOURCE=600 -g -mno-app-regs 
 -mcpu=v9 -D_TS_ERRNO' \

 ../gcc-4.7.2/configure --prefix=/usr/local/gcc4 \

 --build=sparc64-sun-solaris2.10 --without-gnu-as --without-gnu-ld \

 --with-gmp=/usr/local --with-mpfr=/usr/local --with-mpc=/usr/local \

 --with-ld=/usr/ccs/bin/ld --enable-nls --enable-threads=posix --enable-shared 
 \

 --libdir=/usr/local/gcc4/lib --with-local-prefix=/usr/local/gcc4 \

 --with-cpu=v9 --enable-stage1-languages=c --disable-multilib \

 --libexecdir=/usr/local/gcc4/lib \

 --with-pkgversion=Blastwave.org\ Inc.\ Mon\ Nov\ 12\ 22\:02\:41\ GMT\ 2012 \

 --with-bugurl=http\:\/\/www.blastwave.org\/support \

 --enable-languages=c,c++,objc,fortran,ada --enable-bootstrap

checking build system type... sparc64-sun-solaris2.10

checking host system type... sparc64-sun-solaris2.10

checking target system type... sparc64-sun-solaris2.10

checking for a BSD-compatible install... ../gcc-4.7.2/install-sh -c

checking whether ln works... yes

checking whether ln -s works... yes

checking for a sed that does not truncate output... /usr/local/bin/gsed

checking for gawk... gawk

checking for libitm support... yes

checking for gcc... gcc -m64 -D_POSIX_C_SOURCE=200112L -D_XOPEN_SOURCE=600 -g

-mno-app-regs -mcpu=v9 -D_TS_ERRNO

checking for C compiler default output file name... a.out

checking whether the C compiler works... yes

checking whether we are cross compiling... no

checking for suffix of executables... 

checking for suffix of object files... o

checking whether we are using the GNU C compiler... yes

checking whether gcc -m64 -D_POSIX_C_SOURCE=200112L -D_XOPEN_SOURCE=600 -g

-mno-app-regs -mcpu=v9 -D_TS_ERRNO accepts -g... yes

checking for gcc -m64 -D_POSIX_C_SOURCE=200112L -D_XOPEN_SOURCE=600 -g

-mno-app-regs -mcpu=v9 -D_TS_ERRNO option to accept ISO C89... unsupported

checking whether we are using the GNU C++ compiler... yes

checking whether g++ -m64 -D_POSIX_C_SOURCE=200112L -D_XOPEN_SOURCE=600 -g

-mno-app-regs -mcpu=v9 -D_TS_ERRNO accepts -g... yes

checking for gnatbind... gnatbind

checking for gnatmake... gnatmake

checking whether compiler driver understands Ada... yes

checking how to compare 

[Bug target/55295] New: [SH] Add support for fipr instruction

2012-11-12 Thread olegendo at gcc dot gnu.org


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



 Bug #: 55295

   Summary: [SH] Add support for fipr instruction

Classification: Unclassified

   Product: gcc

   Version: 4.8.0

Status: UNCONFIRMED

  Severity: enhancement

  Priority: P3

 Component: target

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

ReportedBy: olege...@gcc.gnu.org

Target: sh4*-*-*





Created attachment 28671

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

Example combine patterns



On SH4* targets there is a currently unused instruction 'fipr' which can be

used to calculate the dot product of two V4SF vectors:



fipr  FVm, FVn

FR(n+3) = FR(m+0)*FR(n+0) + FR(m+1)*FR(n+1) + FR(m+2)*FR(n+2) + FR(m+3)*FR(n+3)



Some (C++) code that could utilize this:



typedef float v4sf __attribute__ ((vector_size (16)));



float test00 (const v4sf a, const v4sf b)

{

  return a[0] * b[0] + a[1] * b[1] + a[2] * b[2] + a[3] * b[3];

}



float test01 (const v4sf a, const v4sf b, const v4sf c)

{

  float x = a[0] * b[0] + a[1] * b[1] + a[2] * b[2] + a[3] * b[3];

  float y = c[0] * b[0] + c[1] * b[1] + c[2] * b[2] + c[3] * b[3];

  return x + y;

}



float test02 (float a0, float a1, float a2, float a3,

 float b0, float b1, float b2, float b3)

{

  return a0 * b0 + a1 * b1 + a2 * b2 + a3 * b3;

}



float test03 (const float* a, const float* b)

{

  return a[0] * b[0] + a[1] * b[1] + a[2] * b[2] + a[3] * b[3];

}



Dot products of vectors with 3 elements could also be handled by the fipr insn

by setting the irrelevant element to 0.0 in one of the vector operands.  For 2

element vectors an fmul,fmac sequence seems to be adequate (which already

works).



I've tried adding some combine patterns to handle the V2SF case (see

attachment), but the results are not so convincing.  For example, the case



float test02 (float a0, float a1, float a2, float a3,

 float b0, float b1, float b2, float b3)

{

  return a0 * b0 + a1 * b1 + a2 * b2 + a3 * b3;

}



compiled with -O2 -m4-single -mb results in:



fmov.s  fr12,@-r15  ! 42movsf_ie/7[length = 2]

fmov.s  fr13,@-r15  ! 43movsf_ie/7[length = 2]

fmov.s  fr14,@-r15  ! 44movsf_ie/7[length = 2]

fmov.s  fr15,@-r15  ! 45movsf_ie/7[length = 2]

fmovfr9,fr12! 31movsf_ie/1[length = 2]

fmovfr8,fr13! 32movsf_ie/1[length = 2]

fmovfr11,fr14   ! 33movsf_ie/1[length = 2]

fmovfr10,fr15   ! 34movsf_ie/1[length = 2]

fmovfr5,fr0 ! 27movsf_ie/1[length = 2]

fmovfr4,fr1 ! 28movsf_ie/1[length = 2]

fmovfr7,fr2 ! 29movsf_ie/1[length = 2]

fmovfr6,fr3 ! 30movsf_ie/1[length = 2]

fiprfv12,fv0! 35fipr_compact[length = 2]

fmov.s  @r15+,fr15  ! 50movsf_ie/6[length = 2]

fmov.s  @r15+,fr14  ! 51movsf_ie/6[length = 2]

fmovfr3,fr0 ! 36movsf_ie/1[length = 2]

fmov.s  @r15+,fr13  ! 52movsf_ie/6[length = 2]

rts ! 54*return_i[length = 2]

fmov.s  @r15+,fr12  ! 53movsf_ie/6[length = 2]



which actually is supposed to be:



fiprfv4,fv8

rts

fmovfr11,fr0







Also, in the case of



float test01 (const v4sf a, const v4sf b, const v4sf c)

{

  float x = a[0] * b[0] + a[1] * b[1] + a[2] * b[2] + a[3] * b[3];

  float y = c[0] * b[0] + c[1] * b[1] + c[2] * b[2] + c[3] * b[3];

  return x + y;

}



only one fipr insn is generated, due to various other optimization effects.



It seems there is no standard name pattern for doing FP vector dot products

yet.  

I guess it would be better to also have some tree-optimization support for

this.


[Bug target/55295] [SH] Add support for fipr instruction

2012-11-12 Thread olegendo at gcc dot gnu.org


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



--- Comment #1 from Oleg Endo olegendo at gcc dot gnu.org 2012-11-12 22:39:27 
UTC ---

I forgot to mention that at least there should be a target specific built-in

function to generate the fipr insn.  There is already a SHmedia built-in for

that, so adding one for SH4* shouldn't be a big deal.  However, ideally the

compiler would discover fipr opportunities by itself (when compiling with

-ffast-math).


[Bug c/55293] Attempt to bootstrap GCC 4.7.2 on Solaris 10 Sparc fails with gcc/pretty-print.c:954:28: error: invalid conversion from 'char**' to 'const char**' [-fpermissive]

2012-11-12 Thread dclarke at blastwave dot org


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



--- Comment #5 from Dennis Clarke dclarke at blastwave dot org 2012-11-12 
22:44:19 UTC ---

okay, exact same failure happens with -D_POSIX_C_SOURCE=200112L by itself. 



Am trying with _XOPEN_SOURCE=600 defined. Thus far ( well past 70 secs ) the

stage 1 phase seems to be running. 



So I will report what I see in seven hours or more .. hopefully a lot lot more. 



dc


[Bug target/55296] New: [SH] Add support for disinterrupt function attribute

2012-11-12 Thread olegendo at gcc dot gnu.org


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



 Bug #: 55296

   Summary: [SH] Add support for disinterrupt function attribute

Classification: Unclassified

   Product: gcc

   Version: 4.8.0

Status: UNCONFIRMED

  Severity: enhancement

  Priority: P3

 Component: target

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

ReportedBy: olege...@gcc.gnu.org

Target: sh*-*-*





For some low-level code it is sometimes useful to temporarily disable

interrupts.   Enabling/disabling interrupts manually can be error prone.  I

think it would be useful to have support for a function attribute that allows

the user to disable interrupts for individual functions.  There is already a

function attribute 'disinterrupt' that is used by the Epiphany and MeP target,

which could be re-used for this purpose.


[Bug c/55293] Attempt to bootstrap GCC 4.7.2 on Solaris 10 Sparc fails with gcc/pretty-print.c:954:28: error: invalid conversion from 'char**' to 'const char**' [-fpermissive]

2012-11-12 Thread dclarke at blastwave dot org


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



--- Comment #6 from Dennis Clarke dclarke at blastwave dot org 2012-11-12 
23:06:56 UTC ---

the following fails also .. and it fails early : 



$ 

$ CC='gcc -m64 -g -D_XOPEN_SOURCE=600' CXX='g++ -m64 -g -D_XOPEN_SOURCE=600' \

 ../gcc-4.7.2/configure --prefix=/usr/local/gcc4 
 --build=sparc64-sun-solaris2.10 --without-gnu-as \

 --without-gnu-ld --with-gmp=/usr/local --with-mpfr=/usr/local 
 --with-mpc=/usr/local --with-ld=/usr/ccs/bin/ld \

 --enable-nls --enable-threads=posix --enable-shared 
 --libdir=/usr/local/gcc4/lib --with-local-prefix=/usr/local/gcc4 \

 --with-cpu=v9 --enable-stage1-languages=c --disable-multilib 
 --libexecdir=/usr/local/gcc4/lib \

 --with-pkgversion=Blastwave.org\ Inc.\ Mon\ Nov\ 12\ 22\:56\:32\ GMT\ 2012 \

 --with-bugurl=http\:\/\/www.blastwave.org\/support 
 --enable-languages=c,c++,objc,fortran,ada --enable-bootstrap

checking build system type... sparc64-sun-solaris2.10

checking host system type... sparc64-sun-solaris2.10

checking target system type... sparc64-sun-solaris2.10

checking for a BSD-compatible install... ../gcc-4.7.2/install-sh -c

checking whether ln works... yes

checking whether ln -s works... yes

checking for a sed that does not truncate output... /usr/local/bin/gsed

checking for gawk... gawk

checking for libitm support... yes

checking for gcc... gcc -m64 -g -D_XOPEN_SOURCE=600

checking for C compiler default output file name... a.out

checking whether the C compiler works... yes

checking whether we are cross compiling... no

checking for suffix of executables... 

checking for suffix of object files... o

checking whether we are using the GNU C compiler... yes

checking whether gcc -m64 -g -D_XOPEN_SOURCE=600 accepts -g... yes

checking for gcc -m64 -g -D_XOPEN_SOURCE=600 option to accept ISO C89...

unsupported

checking whether we are using the GNU C++ compiler... yes

checking whether g++ -m64 -g -D_XOPEN_SOURCE=600 accepts -g... yes

checking for gnatbind... gnatbind

checking for gnatmake... gnatmake

checking whether compiler driver understands Ada... yes

checking how to compare bootstrapped objects... cmp $$f1 $$f2 16 16

checking for objdir... .libs

checking for the correct version of gmp.h... yes

checking for the correct version of mpfr.h... yes

checking for the correct version of mpc.h... yes

checking for the correct version of the gmp/mpfr/mpc libraries... yes

checking for PWL_handle_timeout in -lpwl... no

checking for version 0.11 (revision 0 or later) of PPL... no

The following languages will be built: c,ada,c++,fortran,lto,objc

*** This configuration is not supported in the following subdirectories:

 target-libmudflap target-libgo target-libffi target-zlib target-libjava

target-boehm-gc

(Any other directories should still work fine.)

checking for default BUILD_CONFIG... bootstrap-debug

checking for bison... bison -y

checking for bison... bison

checking for gm4... /usr/local/bin/gm4

checking for flex... flex

checking for flex... flex

checking for makeinfo... makeinfo

checking for expect... expect

checking for runtest... runtest

checking for ar... (cached) /usr/ccs/bin/ar

checking for as... (cached) /usr/ccs/bin/as

checking for dlltool... no

checking for ld... (cached) /usr/ccs/bin/ld

checking for lipo... no

checking for nm... nm

checking for ranlib... ranlib

checking for strip... strip

checking for windres... no

checking for windmc... no

checking for objcopy... no

checking for objdump... no

checking for readelf... no

checking for cc... cc

checking for c++... c++

checking for gcc... gcc

checking for gcj... no

checking for gfortran... gfortran

checking for gccgo... no

checking for ar... no

checking for ar... ar

checking for as... no

checking for as... as

checking for dlltool... no

checking for dlltool... no

checking for ld... no

checking for ld... ld

checking for lipo... no

checking for lipo... no

checking for nm... no

checking for nm... nm

checking for objdump... no

checking for objdump... no

checking for ranlib... no

checking for ranlib... ranlib

checking for readelf... no

checking for readelf... no

checking for strip... no

checking for strip... strip

checking for windres... no

checking for windres... no

checking for windmc... no

checking for windmc... no

checking where to find the target ar... host tool

checking where to find the target as... host tool

checking where to find the target cc... just compiled

checking where to find the target c++... just compiled

checking where to find the target c++ for libstdc++... just compiled

checking where to find the target dlltool... host tool

checking where to find the target gcc... just compiled

checking where to find the target gcj... host tool

checking where to find the target gfortran... just compiled

checking where to find the target gccgo... host tool

checking where to find the target ld... host tool

checking where to find the target lipo... host 

[Bug fortran/55297] New: 4.8 Regression: type-bound operator clashes with abstract interface

2012-11-12 Thread damian at rouson dot net


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



 Bug #: 55297

   Summary: 4.8 Regression: type-bound operator clashes with

abstract interface

Classification: Unclassified

   Product: gcc

   Version: 4.8.0

Status: UNCONFIRMED

  Severity: normal

  Priority: P3

 Component: fortran

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

ReportedBy: dam...@rouson.net





$ cat athlete.f90

module athlete_module

  type athlete

  contains

procedure :: negative

generic :: operator(-) = negative

  end type

  abstract interface 

integer function sum_interface(this)

  import athlete

  class(athlete) this

end function

  end interface

contains

  integer function negative(this)

class(athlete) ,intent(in) :: this

  end function

end module

$ gfortran-mp-4.7 -c athlete.f90

$ gfortran-mp-4.8 -c athlete.f90

athlete.f90:5.29:



generic :: operator(-) = negative

 1

Error: Entity 'negative' at (1) is already present in the interface

wlan-clients-2916:gnu rouson$ gfortran-mp-4.8 --version

GNU Fortran (MacPorts gcc48 4.8-20121021_0) 4.8.0 20121021 (experimental)


[Bug target/55298] New: [SH] Add support to disable FPU usage for individual functions

2012-11-12 Thread olegendo at gcc dot gnu.org


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



 Bug #: 55298

   Summary: [SH] Add support to disable FPU usage for individual

functions

Classification: Unclassified

   Product: gcc

   Version: 4.8.0

Status: UNCONFIRMED

  Severity: enhancement

  Priority: P3

 Component: target

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

ReportedBy: olege...@gcc.gnu.org

Target: sh*-*-*





On SH3* and SH4* targets, 'fast interrupt handlers' (non-reentrant ISRs) can be

implemented by specifying the 'interrupt_handler' and 'nosave_low_regs'

function attributes.  If such an ISR invokes another function the compiler

currently generates push/pop insns for all call clobbered FP registers.  This

could be avoided by specifying another function attribute ('nofpu') to turn off

hardware FPU usage for a particular function.  A 'nofpu' ISR that invokes only

'nofpu' functions then does not need to push/pop any FP registers.



Some ABI compatibility issues I can think of at the moment are:



When a 'nofpu' function invokes a normal function (that could use the FPU or

takes any args in FP regs) the best thing is probably to issue a compile time

error.



When a normal function invokes a 'nofpu' function that does not take any FP

args (in registers) there is no problem.



When a normal function invokes a 'nofpu' function that takes FP args in GP regs

the call must use the 'nofpu' ABI.

Alternatively, the compiler could generate two versions of 'nofpu' functions. 

One version that follows the 'nofpu' ABI and a normal version.  Normal

functions that invoke 'nofpu' functions could then switch to a call to the

normal variant of the 'nofpu' function.  The duplicated code would then be

eliminated by the linker.





Note: Currently the only way to disable HW FPU usage is to specify e.g.

'-m4-nofpu', which only works for whole translation units.  Also, due to the

ABI differences invoking functions in translation units that were compiled with

'-m4-nofpu' from translation units compiled with '-m4' is not going to work.


[Bug c/55299] New: missed optimization: ASR idiom

2012-11-12 Thread olly at survex dot com


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



 Bug #: 55299

   Summary: missed optimization: ASR idiom

Classification: Unclassified

   Product: gcc

   Version: 4.7.1

Status: UNCONFIRMED

  Severity: normal

  Priority: P3

 Component: c

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

ReportedBy: o...@survex.com





This is similar to http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54579 but for a

different (and perhaps clearer) idiom for arithmetic shift right.  I've filed

this as a separate PR rather than adding it as a comment, but if it's actually

the same issue underneath, please merge or mark as a duplicate.



int asr(int a, int b)

{

  return a  0 ? ~((~a)  b) : a  b;

}



olly@gcc12:~$ /opt/cfarm/gcc-latest/bin/gcc -v

Using built-in specs.

COLLECT_GCC=/opt/cfarm/gcc-latest/bin/gcc

COLLECT_LTO_WRAPPER=/home/iulius/autobuild/bin/gcc-4.7.1/libexec/gcc/x86_64-unknown-linux-gnu/4.7.1/lto-wrapper

Target: x86_64-unknown-linux-gnu

Configured with: ../gcc-4.7.1-src/configure

--prefix=/home/iulius/autobuild/bin/gcc-4.7.1

--with-gmp=/home/iulius/autobuild/bin/gmp-5.0.5

--with-mpfr=/home/iulius/autobuild/bin/mpfr-3.1.0

--with-mpc=/home/iulius/autobuild/bin/mpc-0.9 --disable-nls

--enable-threads=posix --disable-multilib --enable-languages=c,c++

Thread model: posix

gcc version 4.7.1 (GCC) 



Compiling with:



LD_LIBRARY_PATH=/opt/cfarm/mpc-latest/lib:/opt/cfarm/mpfr-latest/lib:/opt/cfarm/gmp-latest/lib

/opt/cfarm/gcc-latest/bin/gcc -O2 -S asr.c -o asr.S



Gives this for the function asr:



asr:

.LFB0:

movl%edi, %eax

movl%esi, %ecx

sarl%cl, %eax

testl%edi, %edi

js.L5

rep

ret

.p2align 4,,10

.p2align 3

.L5:

movl%edi, %eax

notl%eax

sarl%cl, %eax

notl%eax

ret



Ideally the conditional would be optimised down to just the sarl instruction.



I've checked the older compiler versions on gcc12 (back to 4.1.1) and they all

leave the branch in.  So if this is a regression, it isn't at all recent.


[Bug fortran/55297] [4.8 Regression] type-bound operator clashes with abstract interface

2012-11-12 Thread dominiq at lps dot ens.fr


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



Dominique d'Humieres dominiq at lps dot ens.fr changed:



   What|Removed |Added



 Status|UNCONFIRMED |NEW

   Last reconfirmed||2012-11-12

 CC||janus at gcc dot gnu.org

Summary|4.8 Regression: type-bound  |[4.8 Regression] type-bound

   |operator clashes with   |operator clashes with

   |abstract interface  |abstract interface

 Ever Confirmed|0   |1



--- Comment #1 from Dominique d'Humieres dominiq at lps dot ens.fr 2012-11-12 
23:46:10 UTC ---

Revision 188914 (2012-06-24) does not give error; revision 189336 (2012-07-06)

does.


[Bug target/55300] New: [SH] Add support for store queue address space

2012-11-12 Thread olegendo at gcc dot gnu.org


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



 Bug #: 55300

   Summary: [SH] Add support for store queue address space

Classification: Unclassified

   Product: gcc

   Version: 4.8.0

Status: UNCONFIRMED

  Severity: enhancement

  Priority: P3

 Component: target

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

ReportedBy: olege...@gcc.gnu.org

Target: sh4*-*-*





On SH4* targets there is a store queue (SQ) resource.  While the management of

the SQ resource (i.e. how user code obtains a pointer to the SQ) is beyond the

scope of the compiler, there is one thing that it could help with.  The usage

of the SQ has some restrictions on the memory accesses that are valid in the SQ

area:

* Reads from SQ area are not valid (return garbage or zero, don't remember)

* Writes must be 32 bit or 64 bit wide



User code that utilizes the SQ to write data could, for example, do so by

obtaining a pointer to the SQ area from the system, then cast the pointer to

some user defined data struct to be filled in and write data to the SQ area by

setting members in the struct.  However, the members of such a struct must all

be accessed with 32 or 64 bit mem refs.  For example this would be invalid:



struct

{

  int a, b, c;

  char d0,d1,d2,d3;

  int x[4];

};



If I'm not mistaken, such invalid mem refs can be avoided by adding a target

specific address space.


[Bug bootstrap/55293] bootstrap failure: invalid conversion from 'char**' to 'const char**' [-fpermissive]

2012-11-12 Thread ebotcazou at gcc dot gnu.org


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



Eric Botcazou ebotcazou at gcc dot gnu.org changed:



   What|Removed |Added



 Status|UNCONFIRMED |NEW

   Last reconfirmed||2012-11-12

  Component|c   |bootstrap

 CC||ebotcazou at gcc dot

   ||gnu.org

 Ever Confirmed|0   |1

Summary|Attempt to bootstrap GCC|bootstrap failure: invalid

   |4.7.2 on Solaris 10 Sparc   |conversion from 'char**' to

   |fails with  |'const char**'

   |gcc/pretty-print.c:954:28:  |[-fpermissive]

   |error: invalid conversion   |

   |from 'char**' to 'const |

   |char**' [-fpermissive]  |

   Target Milestone|--- |4.7.3

  Build||*-*-solaris2.*



--- Comment #7 from Eric Botcazou ebotcazou at gcc dot gnu.org 2012-11-12 
23:57:53 UTC ---

The workaround is to add --disable-nls to the configure line.  That being said,

we should probably do something.


[Bug target/55301] New: [SH] broken sp_switch function attribute

2012-11-12 Thread olegendo at gcc dot gnu.org


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



 Bug #: 55301

   Summary: [SH] broken sp_switch function attribute

Classification: Unclassified

   Product: gcc

   Version: 4.8.0

Status: UNCONFIRMED

  Severity: normal

  Priority: P3

 Component: target

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

ReportedBy: olege...@gcc.gnu.org

Target: sh*-*-*





The example from the sp_switch function attribute documentation:



void* alt_stack;



void f (void) __attribute__ ((interrupt_handler, sp_switch (alt_stack)));



void f (void)

{

}



results in



sh_tmp.cpp: In function 'void f()':

sh_tmp.cpp:9:1: error: unrecognizable insn:

(insn 8 3 9 2 (parallel [

(const_int 1 [0x1])

(mem/u/c:SI (label_ref 0) [0 S4 A32])

]) sh_tmp.cpp:8 -1

 (nil))

sh_tmp.cpp:9:1: internal compiler error: in extract_insn, at recog.c:2109



This happens on 4.8, 4.7 branch and 4.6 branch.


[Bug bootstrap/55293] bootstrap failure: invalid conversion from 'char**' to 'const char**' [-fpermissive]

2012-11-12 Thread redi at gcc dot gnu.org


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



--- Comment #8 from Jonathan Wakely redi at gcc dot gnu.org 2012-11-13 
00:15:19 UTC ---

pretty-print.c already does:



  ICONV_CONST char *inbuf = CONST_CAST (char *, ident);



and ICONV_CONST should be set to 'const' by gcc/configure (using the macros

from config/iconv.m4)



Could configure be finding GNU libiconv, with a correct signature, so

ICONV_CONST is empty, but during compilation of pretty-print.c the system

iconv.h is found instead, which needs ICONV_CONST?


[Bug target/55302] New: [SH] Add support for logical ops with GBR mems

2012-11-12 Thread olegendo at gcc dot gnu.org


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



 Bug #: 55302

   Summary: [SH] Add support for logical ops with GBR mems

Classification: Unclassified

   Product: gcc

   Version: 4.8.0

Status: UNCONFIRMED

  Severity: enhancement

  Priority: P3

 Component: target

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

ReportedBy: olege...@gcc.gnu.org

Target: sh*-*-*





Since now GCC supports GBR based mem refs through the __builtin_thread_pointer

function (PR 54760), support for logical operations on QImode GBR mem refs

could be added.  The insns in question are:



and.b  #imm,@(r0,gbr)

or.b   #imm,@(r0,gbr)

tst.b  #imm,@(r0,gbr)

xor.b  #imm,@(r0,gbr)



Although the insns are slower than using separate loads/stores and operation

insn sequences, the resulting code can be potentially more compact.  It might

be beneficial to enable these insns when optimizing for size.


[Bug bootstrap/55293] bootstrap failure: invalid conversion from 'char**' to 'const char**' [-fpermissive]

2012-11-12 Thread ebotcazou at gcc dot gnu.org


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



--- Comment #9 from Eric Botcazou ebotcazou at gcc dot gnu.org 2012-11-13 
00:21:03 UTC ---

 pretty-print.c already does:

 

   ICONV_CONST char *inbuf = CONST_CAST (char *, ident);

 

 and ICONV_CONST should be set to 'const' by gcc/configure (using the macros

 from config/iconv.m4)

 

 Could configure be finding GNU libiconv, with a correct signature, so

 ICONV_CONST is empty, but during compilation of pretty-print.c the system

 iconv.h is found instead, which needs ICONV_CONST?



Yup, that's a well-known scenario on Solaris, there is a dozen of PRs about

this in the database I think.


[Bug target/55303] New: [SH] Add support for clips / clipu instructions

2012-11-12 Thread olegendo at gcc dot gnu.org


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



 Bug #: 55303

   Summary: [SH] Add support for clips / clipu instructions

Classification: Unclassified

   Product: gcc

   Version: 4.8.0

Status: UNCONFIRMED

  Severity: enhancement

  Priority: P3

 Component: target

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

ReportedBy: olege...@gcc.gnu.org

Target: sh2a*-*-*





Support for the following SH2A specific instructions should be added:



clips.b  Rn

clips.w  Rn

clipu.b  Rn

clipu.w  Rn



These can be used to implement saturating arithmetic, for example.


[Bug objc/55291] libsanitizer doesn't build multilib

2012-11-12 Thread hjl.tools at gmail dot com


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



--- Comment #1 from H.J. Lu hjl.tools at gmail dot com 2012-11-13 00:33:06 
UTC ---

configure.ac has



#AM_ENABLE_MULTILIB(, ..)


[Bug other/55304] New: libsanitizer can't be used with GCC autoconf

2012-11-12 Thread hjl.tools at gmail dot com


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



 Bug #: 55304

   Summary: libsanitizer can't be used with GCC autoconf

Classification: Unclassified

   Product: gcc

   Version: 4.8.0

Status: UNCONFIRMED

  Severity: normal

  Priority: P3

 Component: other

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

ReportedBy: hjl.to...@gmail.com





GCC only requires autoconf 2.64 while configure.ac has



AC_PREREQ([2.68])


  1   2   >