platform/upstream/gcc.git
12 years agopasses.c (execute_function_todo): Call compute_may_aliases only if flag_tree_pta...
Richard Guenther [Thu, 6 Sep 2012 09:13:08 +0000 (09:13 +0000)]
passes.c (execute_function_todo): Call compute_may_aliases only if flag_tree_pta is set.

2012-09-06  Richard Guenther  <rguenther@suse.de>

* passes.c (execute_function_todo): Call compute_may_aliases
only if flag_tree_pta is set.

From-SVN: r191015

12 years agore PR tree-optimization/54494 (Missing store to volatile)
Andrew Pinski [Thu, 6 Sep 2012 08:08:09 +0000 (08:08 +0000)]
re PR tree-optimization/54494 (Missing store to volatile)

2012-09-06  Andrew Pinski  <apinski@cavium.com>

        PR tree-opt/54494
        * tree-inline.c (remap_gimple_op_r): Copy TREE_SIDE_EFFECTS also.
2012-09-06  Andrew Pinski  <apinski@cavium.com>

        PR tree-opt/54494
        * gcc.dg/tree-ssa/strlen-1.c: New testcase.

From-SVN: r191014

12 years agore PR rtl-optimization/54455 (ICE: RTL check: expected elt 3 type 'B', have '0' ...
Jakub Jelinek [Thu, 6 Sep 2012 07:29:12 +0000 (09:29 +0200)]
re PR rtl-optimization/54455 (ICE: RTL check: expected elt 3 type 'B', have '0' (rtx barrier) in compute_bb_for_insn, at cfgrtl.c:418)

PR rtl-optimization/54455
* sel-sched-ir.c (maybe_tidy_empty_bb): Give up if previous fallthru
bb ends up with asm goto referencing bb's label.

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

From-SVN: r191013

12 years ago2012-09-06 Tobias Burnus
Tobias Burnus [Thu, 6 Sep 2012 07:03:42 +0000 (09:03 +0200)]
2012-09-06  Tobias Burnus

        PR fortran/54463
        * trans-intrinsic.c (gfc_conv_intrinsic_funcall): Fix matmul
        call to BLAS if the default-kind has been promoted.

2012-09-06  Tobias Burnus

        PR fortran/54463
        * gfortran.dg/promotion_2.f90: New.

From-SVN: r191012

12 years agodebug/elf, debug/dwarf: DWARF line number fixes.
Ian Lance Taylor [Thu, 6 Sep 2012 05:28:02 +0000 (05:28 +0000)]
debug/elf, debug/dwarf: DWARF line number fixes.

Support DW_AT_high_pc as a constant.
Support DW_AT_ranges.

PR gcc/52583

From-SVN: r191008

12 years agoscore.c: Remove TARGET_LEGITIMIZE_ADDRESS define and score_legitimize_address function...
Chen Liqin [Thu, 6 Sep 2012 03:07:53 +0000 (03:07 +0000)]
score.c: Remove TARGET_LEGITIMIZE_ADDRESS define and score_legitimize_address function...

2012-09-06  Chen Liqin  <liqin.gcc@gmail.com>

* config/score/score.c: Remove TARGET_LEGITIMIZE_ADDRESS define
and score_legitimize_address function, use compiler default code instead.

From-SVN: r191004

12 years agoDaily bump.
GCC Administrator [Thu, 6 Sep 2012 00:17:59 +0000 (00:17 +0000)]
Daily bump.

From-SVN: r191002

12 years agoipa-inline.c (want_inline_small_function_p): Use INLINE_HINT_loop_iterations hint.
Jan Hubicka [Wed, 5 Sep 2012 22:32:36 +0000 (00:32 +0200)]
ipa-inline.c (want_inline_small_function_p): Use INLINE_HINT_loop_iterations hint.

* ipa-inline.c (want_inline_small_function_p): Use INLINE_HINT_loop_iterations
hint.

From-SVN: r190999

12 years agofpu-387.h (set_fpu): Prefix stmxcsr and ldmxcsr with %v.
Uros Bizjak [Wed, 5 Sep 2012 21:43:45 +0000 (23:43 +0200)]
fpu-387.h (set_fpu): Prefix stmxcsr and ldmxcsr with %v.

* config/fpu-387.h (set_fpu): Prefix stmxcsr and ldmxcsr with %v.

From-SVN: r190997

12 years agooptabs.c (emit_conditional_add): Correct comment about the arguments.
Andrew Pinski [Wed, 5 Sep 2012 20:23:22 +0000 (20:23 +0000)]
optabs.c (emit_conditional_add): Correct comment about the arguments.

2012-09-05  Andrew Pinski  <apinski@cavium.com>

  * optabs.c (emit_conditional_add): Correct comment about the arguments.
Remove code which might swap op2 and op3 since they cannot be swapped.
* doc/md.texi (add@var{mode}cc): Fix document about how the arguments
are used.

From-SVN: r190994

12 years ago* ChangeLog: Fix date of my last commit.
Uros Bizjak [Wed, 5 Sep 2012 19:55:02 +0000 (21:55 +0200)]
* ChangeLog: Fix date of my last commit.

From-SVN: r190993

12 years agofpu-387.h (set_fpu): Use __builtin_ia32_stmxcsr and __builtin_ia32_ldmxcsr intrinsics.
Uros Bizjak [Wed, 5 Sep 2012 19:49:21 +0000 (21:49 +0200)]
fpu-387.h (set_fpu): Use __builtin_ia32_stmxcsr and __builtin_ia32_ldmxcsr intrinsics.

* config/fpu-387.h (set_fpu): Use __builtin_ia32_stmxcsr and
__builtin_ia32_ldmxcsr intrinsics.

From-SVN: r190992

12 years agore PR libstdc++/54296 (using the object in the map to erase element from the map...
François Dumont [Wed, 5 Sep 2012 19:41:16 +0000 (19:41 +0000)]
re PR libstdc++/54296 (using the object in the map to erase element from the map crashes)

2012-09-05  François Dumont  <fdumont@gcc.gnu.org>

PR libstdc++/54296
* include/bits/hashtable.h (_M_erase(size_type, __node_base*,
__node_type*)): New.
(erase(const_iterator)): Use latter.
(_M_erase(std::true_type, const key_type&)): New, likewise.
(_M_erase(std::false_type, const key_type&)): New. Find all nodes
matching the key before deallocating them so that the key doesn't
get invalidated.
(erase(const key_type&)): Use the new member functions.
* testsuite/23_containers/unordered_map/erase/54296.cc: New.
* testsuite/23_containers/unordered_multimap/erase/54296.cc: New.

From-SVN: r190991

12 years agohooks.c (hook_int_rtx_mode_as_bool_0): New function.
Oleg Endo [Wed, 5 Sep 2012 17:31:17 +0000 (17:31 +0000)]
hooks.c (hook_int_rtx_mode_as_bool_0): New function.

* hooks.c (hook_int_rtx_mode_as_bool_0): New function.
* hooks.h (hook_int_rtx_mode_as_bool_0): Declare it.
* output.h (default_address_cost): Add machine_mode and address space
arguments.
* target.def (address_cost): Likewise.
* rtlanal.c (address_cost): Pass mode and address space to target hook.
(default_address_cost): Add unnamed machine_mode and address space
arguments.
* doc/tm.texi: Regenerate.
* config/alpha/alpha.c (TARGET_ADDRESS_COST): Use
hook_int_rtx_mode_as_bool_0 instead of hook_int_rtx_bool_0.
* config/arm/arm.c (arm_address_cost): Add machine_mode and address
space arguments.
* config/avr/avr.c (avr_address_cost): Likewise.
* config/bfin/bfin.c (bfin_address_cost): Likewise.
* config/cr16/cr16.c (cr16_address_cost): Likewise.
* config/cris/cris.c (cris_address_cost): Likewise.
* config/epiphany/epiphany.c (epiphany_address_cost): Likewise.
* config/i386/i386.c (ix86_address_cost): Likewise.
* config/ia64/ia64.c (TARGET_ADDRESS_COST): Use
hook_int_rtx_mode_as_bool_0 instead of hook_int_rtx_bool_0.
* config/iq2000/iq2000.c (iq2000_address_cost): Add machine_mode and
address space arguments.  Pass them on in recursive invocation.
* config/lm32/lm32.c (TARGET_ADDRESS_COST): Use
hook_int_rtx_mode_as_bool_0 instead of hook_int_rtx_bool_0.
* config/m32c/m32c.c (m32c_address_cost): Add machine_mode and address
space arguments.
* config/m32r/m32r.c (TARGET_ADDRESS_COST): Use
hook_int_rtx_mode_as_bool_0 instead of hook_int_rtx_bool_0.
* config/mcore/mcore.c (TARGET_ADDRESS_COST): Likewise.
* config/mep/mep.c (mep_address_cost): Add machine_mode and address
space arguments.
* config/microblaze/microblaze.c (microblaze_address_cost): Likewise.
* config/mips/mips.c (mips_address_cost): Likewise.
* config/mmix/mmix.c (TARGET_ADDRESS_COST): Use
hook_int_rtx_mode_as_bool_0 instead of hook_int_rtx_bool_0.
* config/mn10300/mn10300.c (mn10300_address_cost): Add machine_mode and
address space arguments.
(mn10300_rtx_costs): Pass GET_MODE (x) and MEM_ADDR_SPACE (x) to
mn10300_address_cost.
* config/pa/pa.c (hppa_address_cost): Add machine_mode and address
space arguments.
* config/rs6000/rs6000.c (rs6000_debug_address_cost): Likewise.
(TARGET_ADDRESS_COST): Use hook_int_rtx_mode_as_bool_0 instead of
hook_int_rtx_bool_0.
* config/rx/rx.c (rx_address_cost): Add machine_mode and address
space arguments.
* config/s390/s390.c (s390_address_cost): Likewise.
* config/score/score-protos.h (score_address_cost): Likewise.
* config/score/score.c (score_address_cost): Likewise.
* config/sh/sh.c (sh_address_cost): Likewise.
* config/sparc/sparc.c (TARGET_ADDRESS_COST): Use
hook_int_rtx_mode_as_bool_0 instead of hook_int_rtx_bool_0.
* config/spu/spu.c (TARGET_ADDRESS_COST): Likewise.
* config/stormy16/stormy16.c (xstormy16_address_cost): Add machine_mode
and address space arguments.
* config/v850/v850.c (TARGET_ADDRESS_COST): Use
hook_int_rtx_mode_as_bool_0 instead of hook_int_rtx_bool_0.
* config/vax/vax.c (vax_address_cost): Add machine_mode and address
space arguments.
* config/xtensa/xtensa (TARGET_ADDRESS_COST): Use
hook_int_rtx_mode_as_bool_0 instead of hook_int_rtx_bool_0.

From-SVN: r190990

12 years agore PR fortran/54462 (Another "segmentation fault" after an error in COMMON statement...
Tobias Burnus [Wed, 5 Sep 2012 16:40:48 +0000 (18:40 +0200)]
re PR fortran/54462 (Another "segmentation fault" after an error in COMMON statement after r190853)

2012-09-05  Tobias Burnus  <burnus@net-b.de>

        PR fortran/54462
        * symbol.c (gfc_undo_symbols): Avoid NULL pointer dereference.

From-SVN: r190989

12 years agore PR bootstrap/54484 (r190927 breaks bootstrap with clang compiler)
Diego Novillo [Wed, 5 Sep 2012 16:34:42 +0000 (12:34 -0400)]
re PR bootstrap/54484 (r190927 breaks bootstrap with clang compiler)

PR bootstrap/54484
* vec.h (vec_t::lower_bound): Fix spelling of LESSTHAN
argument.

From-SVN: r190988

12 years agore PR middle-end/54486 (Spurious printf format warning mentions nonexistent type...
Jakub Jelinek [Wed, 5 Sep 2012 16:27:55 +0000 (18:27 +0200)]
re PR middle-end/54486 (Spurious printf format warning mentions nonexistent type 'sizetype')

PR middle-end/54486
* builtins.c (fold_builtin_strspn, fold_builtin_strcspn): Use
build_int_cst with size_type_node instead of size_int.

* c-c++-common/pr54486.c: New test.

From-SVN: r190986

12 years agosse.md (<sse4_1>_blendv<ssemodesuffix><avxsizesuffix>): Use register_operand instead...
Uros Bizjak [Wed, 5 Sep 2012 15:20:01 +0000 (17:20 +0200)]
sse.md (<sse4_1>_blendv<ssemodesuffix><avxsizesuffix>): Use register_operand instead of reg_not_xmm0_operand{,_maybe_avx}.

* config/i386/sse.md (<sse4_1>_blendv<ssemodesuffix><avxsizesuffix>):
Use register_operand instead of reg_not_xmm0_operand{,_maybe_avx}.
Use nonimmediate_operand instead of
nonimm_not_xmm0_operand{,_maybe_avx}.
(<sse4_1_avx2>_pblendvb): Ditto.
(sse4_2_pcmpestr): Ditto.
(*sse4_2_pcmpestr_unaligned): Ditto.
(sse4_2_pcmpistr): Ditto.
(*sse4_2_pcmpistr_unaligned): Ditto.
* config/i386/predicates.md (reg_not_xmm0_operand): Remove predicate.
(nonimm_not_xmm0_operand): Ditto.
(nonimm_not_xmm0_operand_maybe_avx): Ditto.
(nonimm_not_xmm0_operand_maybe_avx): Ditto.
* config/i386/i386.md (rdpmc): Do not force operand 1 into ecx.

From-SVN: r190985

12 years agorandom.cc (random_device::_M_init): Check whether cpuid instruction is available...
Ulrich Drepper [Wed, 5 Sep 2012 13:54:57 +0000 (13:54 +0000)]
random.cc (random_device::_M_init): Check whether cpuid instruction is available by using __get_cpuid_max.

* src/c++11/random.cc (random_device::_M_init): Check whether cpuid
instruction is available by using __get_cpuid_max.

From-SVN: r190982

12 years agobb-reorder.c: Clarify a few points in the head comment and fix long lines in other...
Eric Botcazou [Wed, 5 Sep 2012 13:37:12 +0000 (13:37 +0000)]
bb-reorder.c: Clarify a few points in the head comment and fix long lines in other comments.

* bb-reorder.c: Clarify a few points in the head comment and fix
long lines in other comments.
(find_traces): Fix long line.
(find_traces_1_round): Likewise.
(better_edge_p): Likewise.
(connect_traces): Likewise.
(duplicate_computed_gotos): Likewise.
(find_rarely_executed_basic_blocks_and_cr): Remove trailing spaces.
(fix_up_fall_thru_edges): Fix formatting.

From-SVN: r190979

12 years agore PR tree-optimization/46590 (long compile time with -O2 and many loops)
Richard Guenther [Wed, 5 Sep 2012 13:29:13 +0000 (13:29 +0000)]
re PR tree-optimization/46590 (long compile time with -O2 and many loops)

2012-09-05  Richard Guenther  <rguenther@suse.de>

PR tree-optimization/46590
* tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Do not
update SSA form here.
(canonicalize_induction_variables): Assert we do not need to
update SSA form.
(tree_unroll_loops_completely): Update SSA form here.
* tree-ssa-loop-manip.c (gimple_duplicate_loop_to_header_edge):
Do not verify loop-closed SSA form if SSA form is not up-to-date.

From-SVN: r190978

12 years agore PR fortran/54474 (gfortran.dg/coarray_poly_3.f90)
Dominique d'Humieres [Wed, 5 Sep 2012 13:26:58 +0000 (13:26 +0000)]
re PR fortran/54474 (gfortran.dg/coarray_poly_3.f90)

2012-09-05  Dominique Dhumieres  <dominiq@lps.ens.fr>

PR fortran/54474
* gfortran.dg/coarray_poly_3.f90: Adjust error messages.

From-SVN: r190977

12 years ago* include/ext/random.tcc (__gnu_cxx:normal_mv_distribution<>)
Ulrich Drepper [Wed, 5 Sep 2012 12:41:17 +0000 (12:41 +0000)]
* include/ext/random.tcc (__gnu_cxx:normal_mv_distribution<>)
(operator()): Use __generate() function of _M_nd.

From-SVN: r190975

12 years agore PR c++/54191 ([C++11] SFINAE does not handle conversion to inaccessible base)
Paolo Carlini [Wed, 5 Sep 2012 10:14:37 +0000 (10:14 +0000)]
re PR c++/54191 ([C++11] SFINAE does not handle conversion to inaccessible base)

/cp
2012-09-05  Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/54191
* search.c (lookup_base): Add tsubst_flags_t parameter.
(adjust_result_of_qualified_name_lookup, check_final_overrider):
Adjust.
* name-lookup.c (do_class_using_decl): Adjust.
* typeck2.c (binfo_or_else, build_scoped_ref, build_m_component_ref):
Likewise.
* cvt.c (cp_convert_to_pointer, convert_to_pointer_force,
build_up_reference): Likewise.
* rtti.c (build_dynamic_cast_1): Likewise.
* tree.c (maybe_dummy_object): Likewise.
* call.c (build_conditional_expr_1, build_over_call): Likewise.
* cp-tree.h (UNIQUELY_DERIVED_FROM_P, PUBLICLY_UNIQUELY_DERIVED_P):
Remove.
(enum base_access_flags, ba_quiet): Remove.
(uniquely_derived_from_p, publicly_uniquely_derived_p): Declare.
* except.c (can_convert_eh): Adjust.
* decl.c (grokdeclarator): Likewise.
* typeck.c (comp_except_types, build_class_member_access_expr,
finish_class_member_access_expr, get_member_function_from_ptrfunc,
build_static_cast_1, get_delta_difference_1): Likewise.
* class.c (build_base_path, convert_to_base, build_vtbl_ref_1,
warn_about_ambiguous_bases): Likewise.
(uniquely_derived_from_p, publicly_uniquely_derived_p): Define.

/testsuite
2012-09-05  Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/54191
* g++.dg/cpp0x/sfinae39.C: New.

From-SVN: r190969

12 years agore PR target/54461 ([avr] add configure option for better AVR-Libc integration)
Georg-Johann Lay [Wed, 5 Sep 2012 08:47:50 +0000 (08:47 +0000)]
re PR target/54461 ([avr] add configure option for better AVR-Libc integration)

PR target/54461
* configure.ac (noconfigdirs,target=avr-*-*): Add target-newlib,
target-libgloss if not configured --with-avrlibc=no.
* configure: Regenerate.

libgcc/
PR target/54461
* config.host (tmake_file,host=avr-*-*): Add avr/t-avrlibc if
not configured --with-avrlibc=no.
* config/avr/t-avrlibc: New file.
* Makefile.in (FPBIT_FUNCS): filter-out LIB2FUNCS_EXCLUDE.
(DPBIT_FUNCS): Ditto.
(TPBIT_FUNCS): Ditto.

gcc/
PR target/54461
* config.gcc (tm_file,target=avr-*-*): Add avr/avrlibc.h if
not configured --with-avrlibc=no.
(tm_defines,target=avr-*-*): Add WITH_AVRLIBC if not configured
--with-avrlibc=no.
* config/avr/avrlibc.h: New file.
* config/avr/avr-c.c: Build-in define __WITH_AVRLIBC__ if
not configured --with-avrlibc=no.
* doc/invoke.texi (AVR Built-in Macros): Document __WITH_AVRLIBC__

From-SVN: r190967

12 years agoAdd missed ChangeLog entry for r190919.
Bin Cheng [Wed, 5 Sep 2012 07:44:25 +0000 (07:44 +0000)]
Add missed ChangeLog entry for r190919.

From-SVN: r190965

12 years agore PR c++/54441 (Infinite loop with brace initializer on zero-length array)
Jason Merrill [Wed, 5 Sep 2012 04:17:12 +0000 (00:17 -0400)]
re PR c++/54441 (Infinite loop with brace initializer on zero-length array)

PR c++/54441
* decl.c (reshape_init_class): Handle invalid initializer for
0-length array member.

* error.c (dump_type_suffix): Correct handling of 0-length arrays.

From-SVN: r190962

12 years agore PR c++/54420 (Segmentation fault in decl_mangling_context)
Jason Merrill [Wed, 5 Sep 2012 04:16:58 +0000 (00:16 -0400)]
re PR c++/54420 (Segmentation fault in decl_mangling_context)

PR c++/54420
* cp-tree.h (LAMBDANAME_P): Remove.
(LAMBDA_TYPE_P): Check CLASSTYPE_LAMBDA_EXPR instead.
* cp-lang.c (cxx_dwarf_name): Likewise.
* error.c (dump_aggr_type): Likewise.
* semantics.c (begin_lambda_type): Set CLASSTYPE_LAMBDA_EXPR sooner.

From-SVN: r190961

12 years agorandom: Add __gnu_cxx:normal_mv_distribution<> class.
Ulrich Drepper [Wed, 5 Sep 2012 04:06:24 +0000 (04:06 +0000)]
random: Add __gnu_cxx:normal_mv_distribution<> class.

* include/ext/random: Add __gnu_cxx:normal_mv_distribution<> class.
* include/ext/random.tccAdd out-of-line functions for
__gnu_cxx::normal_mv_distribution<>.
* testsuite/26_numerics/random/normal_mv_distribution/
operators/equal.cc: New file.
* testsuite/26_numerics/random/normal_mv_distribution/
operators/serialize.cc: New file.
* testsuite/26_numerics/random/normal_mv_distribution/
operators/inequal.cc: New file.
* testsuite/26_numerics/random/normal_mv_distribution/
cons/default.cc: New file.
* testsuite/26_numerics/random/normal_mv_distribution/
cons/parms.cc: New file.
* testsuite/26_numerics/random/normal_mv_distribution/
requirements/explicit_instantiation/1.cc: New file.
* testsuite/26_numerics/random/normal_mv_distribution/
requirements/typedefs.cc: New file.

From-SVN: r190960

12 years agoDaily bump.
GCC Administrator [Wed, 5 Sep 2012 00:18:19 +0000 (00:18 +0000)]
Daily bump.

From-SVN: r190957

12 years agorandom: Add __gnu_cxx::beta_distribution<> class.
Ulrich Drepper [Tue, 4 Sep 2012 22:57:09 +0000 (22:57 +0000)]
random: Add __gnu_cxx::beta_distribution<> class.

* libstdc++-v3/include/ext/random: Add __gnu_cxx::beta_distribution<>
class.
* libstdc++-v3/include/ext/random.tcc: Add out-of-line functions for
__gnu_cxx::beta_distribution<>.
* libstdc++-v3/testsuite/26_numerics/random/beta_distribution/
operators/equal.cc: New file.
* libstdc++-v3/testsuite/26_numerics/random/beta_distribution/
operators/serialize.cc: New file.
* libstdc++-v3/testsuite/26_numerics/random/beta_distribution/
operators/inequal.cc: New file.
* libstdc++-v3/testsuite/26_numerics/random/beta_distribution/
cons/parms.cc: New file.
* libstdc++-v3/testsuite/26_numerics/random/beta_distribution/
cons/default.cc: New file.
* libstdc++-v3/testsuite/26_numerics/random/beta_distribution/
requirements/typedefs.cc: New file.
* libstdc++-v3/testsuite/26_numerics/random/beta_distribution/
requirements/explicit_instantiation/1.cc: New file.

From-SVN: r190954

12 years agoAdding change log entries for r190952:
Teresa Johnson [Tue, 4 Sep 2012 21:20:30 +0000 (21:20 +0000)]
Adding change log entries for r190952:

Enhances the gcov program summary by adding a histogram of arc counter
entries. This is used to compute working set information in the compiler
for use by optimizations that need information on hot vs cold counter
values or the rough working set size in terms of the number of counters.
Each working set data point is the minimum counter value and number of
counters required to reach a given percentage of the cumulative counter
sum across the profiled execution (sum_all in the program summary).

2012-09-04  Teresa Johnson  <tejohnson@google.com>

* libgcc/libgcov.c (struct gcov_summary_buffer): New structure.
(gcov_histogram_insert): New function.
(gcov_compute_histogram): Ditto.
(gcov_exit): Invoke gcov_compute_histogram, and perform merging of
histograms during summary merging.
* gcc/gcov-io.c (gcov_write_summary): Write out non-zero histogram
entries to function summary along with an occupancy bit vector.
(gcov_read_summary): Read in the histogram entries.
(gcov_histo_index): New function.
(void gcov_histogram_merge): Ditto.
* gcc/gcov-io.h (gcov_type_unsigned): New type.
(struct gcov_bucket_type): Ditto.
(struct gcov_ctr_summary): Include histogram.
(GCOV_TAG_SUMMARY_LENGTH): Update to include histogram entries.
(GCOV_HISTOGRAM_SIZE): New macro.
(GCOV_HISTOGRAM_BITVECTOR_SIZE): Ditto.
* gcc/profile.c (NUM_GCOV_WORKING_SETS): Ditto.
(gcov_working_sets): New global variable.
(compute_working_sets): New function.
(find_working_set): Ditto.
(get_exec_counts): Invoke compute_working_sets.
* gcc/coverage.c (read_counts_file): Merge histograms, and
fix bug with accessing summary info for non-summable counters.
* gcc/basic-block.h (gcov_type_unsigned): New type.
(struct gcov_working_set_info): Ditto.
(find_working_set): Declare.
* gcc/gcov-dump.c (tag_summary): Dump out histogram.

From-SVN: r190953

12 years agoEnhances the gcov program summary by adding a histogram of arc counter entries.
Teresa Johnson [Tue, 4 Sep 2012 21:16:18 +0000 (21:16 +0000)]
Enhances the gcov program summary by adding a histogram of arc counter entries.

Enhances the gcov program summary by adding a histogram of arc counter
entries. This is used to compute working set information in the compiler
for use by optimizations that need information on hot vs cold counter
values or the rough working set size in terms of the number of counters.
Each working set data point is the minimum counter value and number of
counters required to reach a given percentage of the cumulative counter
sum across the profiled execution (sum_all in the program summary).

2012-09-04  Teresa Johnson  <tejohnson@google.com>

* libgcc/libgcov.c (struct gcov_summary_buffer): New structure.
(gcov_histogram_insert): New function.
(gcov_compute_histogram): Ditto.
(gcov_exit): Invoke gcov_compute_histogram, and perform merging of
histograms during summary merging.
* gcc/gcov-io.c (gcov_write_summary): Write out non-zero histogram
entries to function summary along with an occupancy bit vector.
(gcov_read_summary): Read in the histogram entries.
(gcov_histo_index): New function.
(void gcov_histogram_merge): Ditto.
* gcc/gcov-io.h (gcov_type_unsigned): New type.
(struct gcov_bucket_type): Ditto.
(struct gcov_ctr_summary): Include histogram.
(GCOV_TAG_SUMMARY_LENGTH): Update to include histogram entries.
(GCOV_HISTOGRAM_SIZE): New macro.
(GCOV_HISTOGRAM_BITVECTOR_SIZE): Ditto.
* gcc/profile.c (NUM_GCOV_WORKING_SETS): Ditto.
(gcov_working_sets): New global variable.
(compute_working_sets): New function.
(find_working_set): Ditto.
(get_exec_counts): Invoke compute_working_sets.
* gcc/coverage.c (read_counts_file): Merge histograms, and
fix bug with accessing summary info for non-summable counters.
* gcc/basic-block.h (gcov_type_unsigned): New type.
(struct gcov_working_set_info): Ditto.
(find_working_set): Declare.
* gcc/gcov-dump.c (tag_summary): Dump out histogram.

From-SVN: r190952

12 years agoFix bootstrap failure with clang++.
Diego Novillo [Tue, 4 Sep 2012 21:07:48 +0000 (17:07 -0400)]
Fix bootstrap failure with clang++.

This patch fixes a bootstrap failure when using clang as the host
compiler.  Default arguments for class template member functions
should be added in the declaration, not the definition.

From Jason:

> 8.3.6 says "Default arguments for a member function of a class template shall
> be specified on the initial declaration of the member function within the
> class template."

PR bootstrap/54484
* vec.h (vec_t::embedded_init): Move default argument value
to function declaration.

From-SVN: r190951

12 years agore PR c++/54198 ("error: invalid use of incomplete type" when building Chromium)
Jason Merrill [Tue, 4 Sep 2012 19:35:02 +0000 (15:35 -0400)]
re PR c++/54198 ("error: invalid use of incomplete type" when building Chromium)

PR c++/54198
* decl.c (check_default_argument): Set cp_unevaluated_operand
around call to perform_implicit_conversion_flags.

From-SVN: r190949

12 years agobb-reorder.c (gate_handle_reorder_blocks): Move around.
Eric Botcazou [Tue, 4 Sep 2012 19:11:37 +0000 (19:11 +0000)]
bb-reorder.c (gate_handle_reorder_blocks): Move around.

* bb-reorder.c (gate_handle_reorder_blocks): Move around.
(rest_of_handle_reorder_blocks): Likewise.
(pass_reorder_blocks): Likewise.
(gate_handle_partition_blocks): Likewise.

From-SVN: r190948

12 years agore PR rtl-optimization/54456 (ICE: in init_seqno, at sel-sched.c:6797 with -fschedule...
Eric Botcazou [Tue, 4 Sep 2012 19:05:38 +0000 (19:05 +0000)]
re PR rtl-optimization/54456 (ICE: in init_seqno, at sel-sched.c:6797 with -fschedule-insns -fselective-scheduling)

PR rtl-optimization/54456
* sched-rgn.c (gate_handle_sched): Return 1 only if optimize > 0.

From-SVN: r190947

12 years agore PR c++/54437 (Revision 190664 causes Firefox build failure)
Jason Merrill [Tue, 4 Sep 2012 18:49:51 +0000 (14:49 -0400)]
re PR c++/54437 (Revision 190664 causes Firefox build failure)

PR c++/54437
PR c++/51213
* pt.c (fn_type_unification): Call coerce_template_parms before
entering substitution context.

From-SVN: r190946

12 years ago* configure.ac: Fix --enable-languages=all.
Jason Merrill [Tue, 4 Sep 2012 18:49:41 +0000 (14:49 -0400)]
* configure.ac: Fix --enable-languages=all.

From-SVN: r190945

12 years agoThis patch works around a parsing problem with g++ 4.3.
Diego Novillo [Tue, 4 Sep 2012 18:33:29 +0000 (14:33 -0400)]
This patch works around a parsing problem with g++ 4.3.

This patch works around a parsing problem with g++ 4.3.  The parser is
failing to lookup calls to the template function reserve when called
from other member functions:

vec_t<T>::reserve<A> (...)

The parser thinks that the '<' in reserve<A> is a less-than operation.
This problem does not happen after 4.3.

This code is going to change significantly, so this won't be needed
soon.

Tested on x86_64 with g++ 4.3 and g++ 4.6.

PR bootstrap/54478
* vec.h (vec_t::alloc): Remove explicit type specification
in call to reserve.
(vec_t::copy): Likewise.
(vec_t::reserve): Likewise.
(vec_t::reserve_exact): Likewise.
(vec_t::safe_splice): Likewise.
(vec_t::safe_push): Likewise.
(vec_t::safe_grow): Likewise.
(vec_t::safe_grow_cleared): Likewise.
(vec_t::safe_insert): Likewise.

From-SVN: r190943

12 years ago* alias.c (read_dependence): Return true for ALIAS_SET_MEMORY_BARRIER.
Richard Henderson [Tue, 4 Sep 2012 18:16:24 +0000 (11:16 -0700)]
* alias.c (read_dependence): Return true for ALIAS_SET_MEMORY_BARRIER.

From-SVN: r190941

12 years agore PR bootstrap/54453 (r190783 breaks bootstrap on powerpc64-unknown-linux-gnu)
Steven Bosscher [Tue, 4 Sep 2012 15:28:39 +0000 (15:28 +0000)]
re PR bootstrap/54453 (r190783 breaks bootstrap on powerpc64-unknown-linux-gnu)

PR bootstrap/54453
* include/Makefile.am: Fix regex.
* include/Makefile.in: Regenerate.

From-SVN: r190939

12 years agotree-ssa-pre.c (value_expressions): Make it a vector of bitmaps containing expression...
Richard Guenther [Tue, 4 Sep 2012 15:25:38 +0000 (15:25 +0000)]
tree-ssa-pre.c (value_expressions): Make it a vector of bitmaps containing expression IDs.

2012-09-04  Richard Guenther  <rguenther@suse.de>

* tree-ssa-pre.c (value_expressions): Make it a vector of
bitmaps containing expression IDs.
(add_to_value): Adjust.
(sorted_array_from_bitmap_set): Likewise.
(bitmap_set_replace_value): Likewise.
(print_value_expressions): Likewise.
(get_constant_for_value_id): Likewise.
(get_representative_for): Likewise.
(phi_translate_1): Likewise.
(bitmap_find_leader): Likewise.
(find_or_generate_expression): Likewise.
(do_regular_insertion): Likewise.
(init_pre): Likewise.
(fini_pre): Likewise.

From-SVN: r190938

12 years agore PR bootstrap/54479 (Bootstrap with release-checking broken)
Diego Novillo [Tue, 4 Sep 2012 15:16:51 +0000 (11:16 -0400)]
re PR bootstrap/54479 (Bootstrap with release-checking broken)

PR bootstrap/54479
* vec.h (vec_t::copy): Add cast in call to reserve_exact.

From-SVN: r190937

12 years ago* make_sunver.pl: Add missing newline at the end of extern "C++" block.
Eric Botcazou [Tue, 4 Sep 2012 13:56:06 +0000 (13:56 +0000)]
* make_sunver.pl: Add missing newline at the end of extern "C++" block.

From-SVN: r190932

12 years agotree-ssa-pre.c (add_to_exp_gen): Adjust.
Richard Guenther [Tue, 4 Sep 2012 13:26:25 +0000 (13:26 +0000)]
tree-ssa-pre.c (add_to_exp_gen): Adjust.

2012-09-04  Richard Guenther  <rguenther@suse.de>

* tree-ssa-pre.c (add_to_exp_gen): Adjust.
(make_values_for_phi): Do not add to PHI_GEN for FRE.
(compute_avail): Stop processing after adding all defs to
AVAIL_OUT for FRE.
(init_pre): Do not allocate not needed bitmap sets for FRE.

From-SVN: r190930

12 years ago* testsuite-management/x86_64-unknown-linux-gnu.xfail: Update.
Diego Novillo [Tue, 4 Sep 2012 13:23:10 +0000 (09:23 -0400)]
* testsuite-management/x86_64-unknown-linux-gnu.xfail: Update.

From-SVN: r190929

12 years agoMAINTAINERS (Write After Approval): Add myself.
Christophe Lyon [Tue, 4 Sep 2012 13:22:55 +0000 (15:22 +0200)]
MAINTAINERS (Write After Approval): Add myself.

2012-09-04  Christophe Lyon  <christophe.lyon@st.com>

* MAINTAINERS (Write After Approval): Add myself.

From-SVN: r190928

12 years agoMake all VEC_* functions, member functions of vec_t.
Diego Novillo [Tue, 4 Sep 2012 13:22:54 +0000 (09:22 -0400)]
Make all VEC_* functions, member functions of vec_t.

This patch is the first step towards making the API for VEC use
member functions.

There are no user code modifications in this patch.  Everything
is still using the VEC_* macros, but this time they expand into
member function calls.

Because of the way VECs are used, this required some trickery.
The API allows VECs to be NULL.  This means that services like
VEC_length(V) will return 0 when V is a NULL pointer.  This is,
of course, not possible to do if we call V->length().

For functions that either need to allocate/re-allocate the
vector, or they need to handle NULL vectors, I implemented them
as static member functions or free functions.

Another wart that I did not address in this patch is the fact
that vectors of pointers and vectors of objects have slightly
different semantics when handling elements in the vector.  In
vector of pointers, we pass them around by value, but in vectors
of objects, they are passed around via pointers.  That's why we
need TYPE * and TYPE ** overloads for some functions (e.g.,
vec_t::iterate).

I will fix these two warts in a subsequent patch.  The idea is to
make vec_t a single-word structure, which acts as a handler for
the structure containing the actual vector.  Something like this:

template<typename T>
struct vec_t
{
  struct vec_internal<T> *vec_;
};

This has the advantage that we can now declare the actual vector
instances as regular variables, instead of pointers.  They will
use the same amount of memory when embedded in other structures,
and we will be able to allocate and reallocate the actual data
without having to mutate the vector instance.

All the functions that are now static members in vec_t, will
become instance members in the new vec_t.  This will mean that
all the callers will need to be changed, of course.

Tested on x86_64 and ppc64 with all languages plus ada, go and obj-c++.

Rewrite VEC_* functions as member functions of vec_t.

* vec.h: Update documentation.
(ALONE_VEC_CHECK_INFO): Define.
(ALONE_VEC_CHECK_DECL): Define.
(ALONE_VEC_CHECK_PASS): Define.
(struct vec_prefix): Rename field NUM to NUM_.
Rename field ALLOC to ALLOC_.
Update all users.
(struct vec_t): Rename field PREFIX to PREFIX_.
Rename field VEC to VEC_.
Update all users.
(vec_t::length): Rename from VEC_length_1.  Update all users.
(vec_t::empty): Rename from VEC_empty_1.  Update all users.
(vec_t::address): Rename from VEC_address_1.  Update all users.
(vec_address): New.
(vec_t::last): Rename from VEC_last_1.  Update all users.
(vec_t::operator[]): Rename from VEC_index_1.  Update all users.
(vec_t::iterate): Rename from VEC_iterate_1.  Update all users.
(vec_t::embedded_size): Rename from VEC_embedded_size_1.
Update all users.
(vec_t::embedded_init): Rename from VEC_embedded_init_1.
Update all users.
(vec_t::alloc): Rename from VEC_alloc_1.  Update all users.
(vec_t::free): Rename from VEC_free_1.  Update all users.
(vec_t::copy): Rename from VEC_copy_1.  Update all users.
(vec_t::space): Rename from VEC_space_1.  Update all users.
(vec_t::reserve): Rename from VEC_reserve_1.  Update all users.
(vec_t::reserve_exact): Rename from VEC_reserve_exact_1.
Update all users.
(vec_t::splice): Rename from VEC_splice_1.  Update all users.
(vec_t::safe_splice): Rename from VEC_safe_splice_1.  Update all users.
(vec_t::quick_push): Rename from VEC_quick_push_1.  Update all users.
(vec_t::safe_push): Rename from VEC_safe_push_1.  Update all users.
(vec_t::pop): Rename from VEC_pop_1.  Update all users.
(vec_t::truncate): Rename from VEC_truncate_1.  Update all users.
(vec_t::safe_grow): Rename from VEC_safe_grow_1.  Update all users.
(vec_t::safe_grow_cleared): Rename from VEC_safe_grow_cleared_1.
Update all users.
(vec_t::replace): Rename from VEC_replace_1.  Update all users.
(vec_t::quick_insert): Rename from VEC_quick_insert_1.
Update all users.
(vec_t::safe_insert): Rename from VEC_safe_insert_1.  Update all users.
(vec_t::ordered_remove): Rename from VEC_ordered_remove_1.
Update all users.
(vec_t::unordered_remove): Rename from VEC_unordered_remove_1.
Update all users.
(vec_t::block_remove): Rename from VEC_block_remove_1. Update all users.
(vec_t::lower_bound): Rename from VEC_lower_bound_1. Update all users.

From-SVN: r190927

12 years agogimple.h (gimple_build_switch): Remove.
Steven Bosscher [Tue, 4 Sep 2012 13:03:02 +0000 (13:03 +0000)]
gimple.h (gimple_build_switch): Remove.

* gimple.h (gimple_build_switch): Remove.
(gimple_build_switch_vec): Promote to the new gimple_build_switch.
(gimple_switch_default_label): Assert the default case label is
really a default case label.
(gimple_switch_set_default_label): Likewise.
* gimple.c (gimple_build_switch_nlabels): Make sure a default label
is passed in, and simplify accordingly.
(gimple_build_switch): Removed.
(gimple_build_switch_vec): Rename to gimple_build_switch.
* gimplify.c (gimplify_switch_expr): Update gimple_build_switch use.
* gimple-pretty-print.c (dump_gimple_switch): Do not accept a NULL
case label.
* stmt.c (expand_case): Simplify using the fact that every GIMPLE
switch must have a default case.
* tree-cfg.c (group_case_labels_stmt): Likewise.
(verify_gimple_switch): Use gimple_switch_label in verifier to get
the label at index 0, and verify that it is a valid default case.
* except.c (sjlj_emit_dispatch_table): Rewrite construction of the
switch for dispatching.
* tree-eh.c (lower_try_finally_switch): Update gimple_build_switch use.
(lower_eh_dispatch): Likewise.
* tree-vrp.c (execute_vrp): Use gimple_switch_label to get the case
label at index 0 before turning it into a default case label.
* omp-low.c (expand_omp_sections): Update gimple_build_switch use.
* tree-switch-conversion.c (emit_case_bit_tests): Get the default case
label using gimple_switch_default_label.
(collect_switch_conv_info): Likewise.
(process_switch): Likewise.
* doc/gimple.texi: Update documentation of gimple_build_switch.

From-SVN: r190925

12 years agore PR target/54476 ([avr] __builtin_avr_delay_cycles (-1ul) causes memory usage to...
Georg-Johann Lay [Tue, 4 Sep 2012 09:37:08 +0000 (09:37 +0000)]
re PR target/54476 ([avr] __builtin_avr_delay_cycles (-1ul) causes memory usage to explode on x86_64 host)

PR target/54476
* config/avr/avr.c (avr_expand_delay_cycles): Mask operand with
SImode.

From-SVN: r190920

12 years agore PR target/45070 (Miscompiled c++ class with packed attribute on ARM with -Os optim...
Bin Cheng [Tue, 4 Sep 2012 09:36:44 +0000 (09:36 +0000)]
re PR target/45070 (Miscompiled c++ class with packed attribute on ARM with -Os optimizations (Qt 4.6.2))

PR target/45070
* config/arm/arm.c (thumb1_extra_regs_pushed): Handle return value of size
less than 4 bytes by using macro ARM_NUM_INTS.
(thumb1_unexpanded_epilogue): Use macro ARM_NUM_INTS.

From-SVN: r190919

12 years agore PR tree-optimization/54458 (ICE get_loop_body, at cfgloop.c:830)
Richard Guenther [Tue, 4 Sep 2012 09:28:58 +0000 (09:28 +0000)]
re PR tree-optimization/54458 (ICE get_loop_body, at cfgloop.c:830)

2012-09-04  Richard Guenther  <rguenther@suse.de>

PR tree-optimization/54458
* tree-ssa-threadupdate.c (thread_through_loop_header): If we
turn the loop into one with multiple latches mark it so.

* gcc.dg/torture/pr54458.c: New testcase.

From-SVN: r190918

12 years agore PR target/54220 ([avr] Potential stack corruption in naked functions at -O0)
Senthil Kumar Selvaraj [Tue, 4 Sep 2012 09:08:50 +0000 (09:08 +0000)]
re PR target/54220 ([avr] Potential stack corruption in naked functions at -O0)

PR target/54220
* config/avr/avr.c (TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS): New
define to...
(avr_allocate_stack_slots_for_args): ...this new static function.

From-SVN: r190914

12 years agoarm.c (arm_expand_builtin): Replace gen_rtx_CONST_INT by GEN_INT.
Christophe Lyon [Tue, 4 Sep 2012 08:35:19 +0000 (08:35 +0000)]
arm.c (arm_expand_builtin): Replace gen_rtx_CONST_INT by GEN_INT.

2012-09-04  Christophe Lyon  <christophe.lyon@linaro.org>

* config/arm/arm.c (arm_expand_builtin): Replace gen_rtx_CONST_INT
by GEN_INT.
(arm_emit_coreregs_64bit_shift): Likewise.

From-SVN: r190912

12 years agoarm.c (arm_evpc_neon_vext): New function.
Christophe Lyon [Tue, 4 Sep 2012 08:32:39 +0000 (08:32 +0000)]
arm.c (arm_evpc_neon_vext): New function.

2012-09-04  Christophe Lyon  <christophe.lyon@linaro.org>

gcc/
* config/arm/arm.c (arm_evpc_neon_vext): New
function.
(arm_expand_vec_perm_const_1): Add call to
arm_evpc_neon_vext.

gcc/testsuite/
* gcc.target/arm/neon-vext.c: New test.
* gcc.target/arm/neon-vext-execute.c: Ditto.

From-SVN: r190911

12 years agore PR fortran/54435 (ICE with SELECT TYPE on a non-CLASS object)
Janus Weil [Tue, 4 Sep 2012 08:03:09 +0000 (10:03 +0200)]
re PR fortran/54435 (ICE with SELECT TYPE on a non-CLASS object)

2012-09-04  Janus Weil  <janus@gcc.gnu.org>

PR fortran/54435
PR fortran/54443
* match.c (gfc_match_select_type): Make sure to only access CLASS_DATA
for BT_CLASS.

2012-09-04  Janus Weil  <janus@gcc.gnu.org>

PR fortran/54243
PR fortran/54244
* gfortran.dg/select_type_29.f03: New.

From-SVN: r190910

12 years agore PR target/51244 ([SH] Inefficient conditional branch and code around T bit)
Oleg Endo [Tue, 4 Sep 2012 08:03:01 +0000 (08:03 +0000)]
re PR target/51244 ([SH] Inefficient conditional branch and code around T bit)

PR target/51244
* config/sh/sh.c (prepare_cbranch_operands): Pull out comparison
canonicalization code into...
* (sh_canonicalize_comparison): This new function.
* config/sh/sh-protos.h: Declare it.
* config/sh/sh.h: Use it in new macro CANONICALIZE_COMPARISON.
* config/sh/sh.md (cbranchsi4): Remove TARGET_CBRANCHDI4 check and
always invoke expand_cbranchsi4.

From-SVN: r190909

12 years agoDaily bump.
GCC Administrator [Tue, 4 Sep 2012 00:18:16 +0000 (00:18 +0000)]
Daily bump.

From-SVN: r190908

12 years agoFix bootstrap-lto
Andi Kleen [Mon, 3 Sep 2012 22:00:13 +0000 (22:00 +0000)]
Fix bootstrap-lto

gcc/

2012-09-03  Andi Kleen <ak@linux.intel.com>

* tree-ssa-sccvn.c (vn_reference_fold_indirect): Initialize
addr_offset always.

From-SVN: r190905

12 years agore PR tree-optimization/53395 (The LAPACK functions i(d|s)amax are more than two...
Andrew Pinski [Mon, 3 Sep 2012 20:31:52 +0000 (20:31 +0000)]
re PR tree-optimization/53395 (The LAPACK functions i(d|s)amax are more than two times slower after revision 187183)

2012-09-03  Andrew Pinski  <apinski@cavium.com>

PR tree-opt/53395
* tree-if-conv.c (constant_or_ssa_name): New function.
(fold_build_cond_expr): New function.
(predicate_scalar_phi): Use fold_build_cond_expr instead of build3.
(predicate_mem_writes): Likewise.

From-SVN: r190904

12 years agofold-const.c (fold_ternary_loc): Constant-propagate after removing dead operands.
Marc Glisse [Mon, 3 Sep 2012 17:31:38 +0000 (19:31 +0200)]
fold-const.c (fold_ternary_loc): Constant-propagate after removing dead operands.

2012-09-03  Marc Glisse  <marc.glisse@inria.fr>

gcc/
* fold-const.c (fold_ternary_loc): Constant-propagate after
removing dead operands.

gcc/testsuite/
* gcc.dg/fold-perm.c: Improve test.

From-SVN: r190901

12 years agore PR tree-optimization/46590 (long compile time with -O2 and many loops)
Michael Matz [Mon, 3 Sep 2012 15:39:15 +0000 (15:39 +0000)]
re PR tree-optimization/46590 (long compile time with -O2 and many loops)

PR tree-optimization/46590
* tree-cfg.c (gimple_duplicate_sese_region): Don't update
SSA web here ...
* tree-ssa-loop-ch.c (copy_loop_headers): ... but here.

From-SVN: r190897

12 years agoinvoke.texi: Fix numerous typos and punctuation/grammatical errors throughout the...
Sandra Loosemore [Mon, 3 Sep 2012 15:29:22 +0000 (11:29 -0400)]
invoke.texi: Fix numerous typos and punctuation/grammatical errors throughout the file.

2012-09-03  Sandra Loosemore  <sandra@codesourcery.com>

gcc/
* doc/invoke.texi: Fix numerous typos and punctuation/grammatical
errors throughout the file.  Re-word some awkward sentences and
paragraphs.

From-SVN: r190896

12 years agore PR bootstrap/54138 (configuring --without-cloog but executable links against syste...
Richard Guenther [Mon, 3 Sep 2012 14:40:17 +0000 (14:40 +0000)]
re PR bootstrap/54138 (configuring --without-cloog but executable links against system cloog)

2012-09-03  Richard Guenther  <rguenther@suse.de>

PR bootstrap/54138
* configure.ac: Re-organize ISL / CLOOG checks to allow
disabling with either --without-isl or --without-cloog.
* configure: Regenerated.
* config/cloog.m4: Adjust.
* config/isl.m4: Adjust.

From-SVN: r190895

12 years agore PR fortran/54467 (f951: internal compiler error: in gfc_add_component_ref, at...
Tobias Burnus [Mon, 3 Sep 2012 14:06:27 +0000 (16:06 +0200)]
re PR fortran/54467 (f951: internal compiler error: in gfc_add_component_ref, at fortran/class.c:213)

2012-09-03  Tobias Burnus  <burnus@net-b.de>

        PR fortran/54467
        * class.c (gfc_find_derived_vtab): Fix disabling of _final
        by continuing to generate normal type-bound procedures.

From-SVN: r190892

12 years agore PR middle-end/54362 (COND_EXPR not understood by either alias or ITM)
Richard Biener [Mon, 3 Sep 2012 13:24:07 +0000 (13:24 +0000)]
re PR middle-end/54362 (COND_EXPR not understood by either alias or ITM)

2012-09-03  Richard Guenther  <rguenther@suse.de>

PR tree-optimization/54362
* tree-ssa-structalias.c (find_func_aliases): Handle COND_EXPR.

From-SVN: r190889

12 years agoconfigure.ac (noconfigdirs,target=avr): Add target-libquadmath.
Georg-Johann Lay [Mon, 3 Sep 2012 12:10:40 +0000 (12:10 +0000)]
configure.ac (noconfigdirs,target=avr): Add target-libquadmath.

* configure.ac (noconfigdirs,target=avr): Add target-libquadmath.
* configure: Regenerate.

From-SVN: r190887

12 years agos390.c (s390_loadrelative_operand_p): New function.
Andreas Krebbel [Mon, 3 Sep 2012 11:46:56 +0000 (11:46 +0000)]
s390.c (s390_loadrelative_operand_p): New function.

2012-09-03  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>

* config/s390/s390.c (s390_loadrelative_operand_p): New function.
(s390_check_qrst_address, print_operand_address): Use
s390_loadrelative_operand_p instead of s390_symref_operand_p.
(s390_check_symref_alignment): Accept pointer size alignment for GOT slots.
(legitimize_pic_address): Use load relative on z10 or later.

From-SVN: r190884

12 years agore PR debug/53923 (ICE: RTL check: expected code 'reg', have 'debug_expr' in rhs_regn...
Jakub Jelinek [Mon, 3 Sep 2012 11:42:31 +0000 (13:42 +0200)]
re PR debug/53923 (ICE: RTL check: expected code 'reg', have 'debug_expr' in rhs_regno, at rtl.h:1091)

PR debug/53923
* valtrack.c (dead_debug_insert_temp): Drop non-reg uses
from the chain.

From-SVN: r190883

12 years agocommon.opt (--no-sysroot-suffix): New driver option.
Joseph Myers [Mon, 3 Sep 2012 11:34:22 +0000 (12:34 +0100)]
common.opt (--no-sysroot-suffix): New driver option.

* common.opt (--no-sysroot-suffix): New driver option.
* doc/invoke.texi (--no-sysroot-suffix): Document.
* gcc.c (driver_handle_option): Handle --no-sysroot-suffix as not
needing spec processing.
(main): Do not process sysroot suffixes if no_sysroot_suffix.

From-SVN: r190882

12 years agoclass.c (gfc_find_derived_vtab): Disable ABI-breaking generation of the "_final"...
Tobias Burnus [Mon, 3 Sep 2012 07:51:05 +0000 (09:51 +0200)]
class.c (gfc_find_derived_vtab): Disable ABI-breaking generation of the "_final" subroutine for now.

2012-09-03  Tobias Burnus  <burnus@net-b.de>

        * class.c (gfc_find_derived_vtab): Disable ABI-breaking
        generation of the "_final" subroutine for now.

From-SVN: r190872

12 years agoclass.c (finalize_component): Fixes to the comment.
Tobias Burnus [Mon, 3 Sep 2012 06:45:35 +0000 (08:45 +0200)]
class.c (finalize_component): Fixes to the comment.

2012-09-03  Tobias Burnus  <burnus@net-b.de>

        * class.c (finalize_component): Fixes to the comment.

From-SVN: r190870

12 years ago[multiple changes]
Tobias Burnus [Mon, 3 Sep 2012 06:35:59 +0000 (08:35 +0200)]
[multiple changes]

2012-09-03  Alessandro Fanfarillo  <fanfarillo.gcc@gmail.com>
            Tobias Burnus  <burnus@net-b.de>

        PR fortran/37336
        * gfortran.h (symbol_attribute): Add artificial.
        * module.c (mio_symbol_attribute): Handle attr.artificial
        * class.c (gfc_build_class_symbol): Defer creation of the vtab
        if the DT has finalizers, mark generated symbols as
        attr.artificial.
        (has_finalizer_component, finalize_component,
        finalization_scalarizer, generate_finalization_wrapper):
        New static functions.
        (gfc_find_derived_vtab): Add _final component and call
        generate_finalization_wrapper.
        * dump-parse-tree.c (show_f2k_derived): Use resolved
        proc_tree->n.sym rather than unresolved proc_sym.
        (show_attr): Handle attr.artificial.
        * resolve.c (gfc_resolve_finalizers): Ensure that the vtab
        * exists.
        (resolve_fl_derived): Resolve finalizers before
        generating the vtab.
        (resolve_symbol): Also allow assumed-rank arrays with CONTIGUOUS;
        skip artificial symbols.
        (resolve_fl_derived0): Skip artificial symbols.

2012-09-03  Tobias Burnus  <burnus@net-b.de>

        PR fortran/51632
        * gfortran.dg/coarray_class_1.f90: New.

From-SVN: r190869

12 years agoDaily bump.
GCC Administrator [Mon, 3 Sep 2012 00:17:29 +0000 (00:17 +0000)]
Daily bump.

From-SVN: r190868

12 years agore PR target/33135 ([SH] -ffinite-math-only should not be on by default)
Oleg Endo [Sun, 2 Sep 2012 23:18:08 +0000 (23:18 +0000)]
re PR target/33135 ([SH] -ffinite-math-only should not be on by default)

PR target/33135
* common/config/sh/sh-common.c: Update copyright years.
(sh_option_init_struct): Delete.
(TARGET_OPTION_INIT_STRUCT): Likewise.

From-SVN: r190865

12 years agore PR target/54418 ([SH] Invalid operands for opcode)
Oleg Endo [Sun, 2 Sep 2012 23:15:25 +0000 (23:15 +0000)]
re PR target/54418 ([SH] Invalid operands for opcode)

PR target/54418
* config/sh/sh.md (cmpgeusi_t): Remove N alternative.
Check operands[1] in split condition instead of operands[0].
Add comments.

From-SVN: r190864

12 years agoconfig.host (x86_64-*-openbsd*): New target.
Mark Kettenis [Sun, 2 Sep 2012 14:13:21 +0000 (14:13 +0000)]
config.host (x86_64-*-openbsd*): New target.

libgcc/

* config.host (x86_64-*-openbsd*): New target.

gcc/

* config.gcc (x86_64-*-openbsd*): New target.
* config.host (*-*-openbsd*): New target.
* config/openbsd.h (TARGET_C99_FUNCTIONS): Define.
* config/i386/openbsdelf.h: Remove some superfluous defines and
group things together in a more logical fashion.
(DBX_REGISTER_NUMBER): Provide a
definition that works on both 32-bit and 64-bit targets.
(WCHAR_TYPE_SIZE): Hardcode as 32.
(NO_DOLLAR_IN_LABEL): Remove undef.
(TARGET_DEFAULT): Remove.
(SET_ASM_OP): Remove.
(DEFAULT_PCC_STRUCT_RETURN): Undef first to prevent warning.
(ASM_OUTPUT_MAX_SKIP_ALIGN): Synch with x86-64.h
(DWARF2_UNWIND_INFO): Remove define.
(HAVE_ENABLE_EXECUTE_STACK): Define.
* config/host-openbsd.c: New file.
* config/t-openbsd (USER_H): Add EXTRA_HEADERS.
* config/x-openbsd: New file.

From-SVN: r190863

12 years agosh.md (*extend<mode>si2_compact_mem_disp): Pass iterated mode to sh_legitimate_index_...
Oleg Endo [Sun, 2 Sep 2012 13:05:10 +0000 (13:05 +0000)]
sh.md (*extend<mode>si2_compact_mem_disp): Pass iterated mode to sh_legitimate_index_p instead of QImode.

* config/sh/sh.md (*extend<mode>si2_compact_mem_disp): Pass iterated
mode to sh_legitimate_index_p instead of QImode.

From-SVN: r190862

12 years agosync.md (atomic_compare_and_swap<dwi>_doubleword): Improve insn output code.
Uros Bizjak [Sun, 2 Sep 2012 11:08:33 +0000 (13:08 +0200)]
sync.md (atomic_compare_and_swap<dwi>_doubleword): Improve insn output code.

* config/i386/sync.md (atomic_compare_and_swap<dwi>_doubleword):
Improve insn output code.

From-SVN: r190861

12 years agore PR rtl-optimization/54369 (delayed-branch pass removes too many instructions)
Eric Botcazou [Sun, 2 Sep 2012 10:36:27 +0000 (10:36 +0000)]
re PR rtl-optimization/54369 (delayed-branch pass removes too many instructions)

PR rtl-optimization/54369
* config/mips/mips.c (mips_reorg): Invoke cleanup_barriers before
calling dbr_schedule.
* config/sparc/sparc.c (sparc_reorg): Likewise.

From-SVN: r190858

12 years agore PR target/49206 (RA failure in spill_failure, at reload1.c:2113)
Uros Bizjak [Sun, 2 Sep 2012 08:49:31 +0000 (10:49 +0200)]
re PR target/49206 (RA failure in spill_failure, at reload1.c:2113)

PR target/49206
* gcc.c-torture/compile/pr49206.c: New test.

From-SVN: r190857

12 years ago* gcc.c-torture/compile/pr44687.c: Fix whitespace.
Uros Bizjak [Sun, 2 Sep 2012 08:42:45 +0000 (10:42 +0200)]
* gcc.c-torture/compile/pr44687.c: Fix whitespace.

From-SVN: r190856

12 years agore PR target/36680 (ICE in spill_failure, reload1.c:1995)
Dominique d'Humieres [Sun, 2 Sep 2012 08:10:21 +0000 (10:10 +0200)]
re PR target/36680 (ICE in spill_failure, reload1.c:1995)

PR target/36680
* gfortran.dg/pr36680.f90: New test.

Co-Authored-By: Uros Bizjak <ubizjak@gmail.com>
From-SVN: r190855

12 years agore PR target/42295 (ICE: 'error: unable to find a register to spill in class "AREG...
Uros Bizjak [Sun, 2 Sep 2012 07:07:45 +0000 (09:07 +0200)]
re PR target/42295 (ICE: 'error: unable to find a register to spill in class "AREG"' with -fschedule-insns)

PR target/42295
* g++.dg/opt/pr42295.C: New test.

From-SVN: r190854

12 years agore PR fortran/54426 (FAIL: gfortran.dg/common_6.f90 -O (internal compiler error...
Tobias Burnus [Sun, 2 Sep 2012 06:40:27 +0000 (08:40 +0200)]
re PR fortran/54426 (FAIL: gfortran.dg/common_6.f90  -O  (internal compiler error) on powerpc-apple-darwin9)

2012-09-02  Tobias Burnus  <burnus@net-b.de>

        PR fortran/54426
        * symbol.c (find_common_symtree): New function.
        (gfc_undo_symbols): Use it; free common_head if needed.

From-SVN: r190853

12 years agoDaily bump.
GCC Administrator [Sun, 2 Sep 2012 00:17:49 +0000 (00:17 +0000)]
Daily bump.

From-SVN: r190852

12 years agore PR target/54436 (Compiling some regular C++ code gives assembler '700415 shortened...
Jakub Jelinek [Sat, 1 Sep 2012 19:09:02 +0000 (21:09 +0200)]
re PR target/54436 (Compiling some regular C++ code gives assembler '700415 shortened to 255' warning)

PR target/54436
* config/i386/i386.md (*mov<mode>_insv_1_rex64, *movsi_insv_1): If
operands[1] is CONST_INT_P, convert it to QImode before printing.

* gcc.dg/torture/pr54436.c: New test.

From-SVN: r190849

12 years agosimplify-rtx.c (simplify_unary_operation_1 <case TRUNCATE>): A truncate of a memory...
Andrew Pinski [Sat, 1 Sep 2012 18:52:19 +0000 (18:52 +0000)]
simplify-rtx.c (simplify_unary_operation_1 <case TRUNCATE>): A truncate of a memory is just loading the low part of the memory.

2012-09-01  Andrew Pinski  <apinski@cavium.com>

* simplify-rtx.c (simplify_unary_operation_1 <case TRUNCATE>):
A truncate of a memory is just loading the low part of the memory.

2012-09-01  Andrew Pinski  <apinski@cavium.com>

        * gcc.target/mips/truncate-8.c: New testcase.

From-SVN: r190848

12 years agore PR target/46829 (ICE: in spill_failure, at reload1.c:2105 with -fschedule-insns...
Uros Bizjak [Sat, 1 Sep 2012 14:29:45 +0000 (16:29 +0200)]
re PR target/46829 (ICE: in spill_failure, at reload1.c:2105 with -fschedule-insns -fsched-pressure and variadic function)

PR target/46829
PR target/46843
* config/i386/i386.c (ix86_legitimate_combined_insn): New function.
(TARGET_LEGITIMATE_COMBINED_INSN): New macro.

testsuite/ChangeLog:

PR target/46829
PR target/46843
* gcc.target/i386/pr46829.c: New test.
* gcc.target/i386/pr46843.c: Ditto.

From-SVN: r190847

12 years agotarget.def (legitimate_combined_insn): New target hook.
Uros Bizjak [Sat, 1 Sep 2012 14:26:28 +0000 (16:26 +0200)]
target.def (legitimate_combined_insn): New target hook.

* target.def (legitimate_combined_insn): New target hook.
* doc/tm.texi.in (TARGET_LEGITIMATE_COMBINED_INSN): New hook.
* doc/tm.texi: Regenerated.
* combine.c (recog_for_combine): Call targetm.legitimate_combined_insn
to allow targets to reject combined insn.
* hooks.h (hook_bool_rtx_true): New.
* hooks.c (hook_bool_rtx_true): Ditto.

From-SVN: r190846

12 years agoDaily bump.
GCC Administrator [Sat, 1 Sep 2012 00:17:53 +0000 (00:17 +0000)]
Daily bump.

From-SVN: r190845

12 years agore PR c++/18747 ("template<> int i;" accepted)
Paolo Carlini [Fri, 31 Aug 2012 21:35:33 +0000 (21:35 +0000)]
re PR c++/18747 ("template<> int i;" accepted)

PR c++/18747
* pt.c (check_template_variable): New.
(num_template_headers_for_class): Split out...
* decl.c (grokdeclarator): ...from here.
(start_decl): Remove redundant diagnostic.
* cp-tree.h: Declare them
* parser.c (cp_parser_single_declaration): Call check_template_variable.
.
Co-Authored-By: Jason Merrill <jason@redhat.com>
From-SVN: r190842

12 years agoipa-inline-analysis.c (estimate_function_body_sizes): Allocate nonconstant_names...
Martin Jambor [Fri, 31 Aug 2012 19:16:21 +0000 (21:16 +0200)]
ipa-inline-analysis.c (estimate_function_body_sizes): Allocate nonconstant_names after calculate_dominance_info and loop_optimizer_init.

2012-08-31  Martin Jambor  <mjambor@suse.cz>

* ipa-inline-analysis.c (estimate_function_body_sizes): Allocate
nonconstant_names after calculate_dominance_info and
loop_optimizer_init.

From-SVN: r190841

12 years agore PR c/54428 (ICE in gimplify_expr, at gimplify.c:7591)
Jakub Jelinek [Fri, 31 Aug 2012 19:00:59 +0000 (21:00 +0200)]
re PR c/54428 (ICE in gimplify_expr, at gimplify.c:7591)

PR c/54428
* c-convert.c (convert): Don't call fold_convert_loc if
TYPE_MAIN_VARIANT of a COMPLEX_TYPE is the same, unless e
is a COMPLEX_EXPR.  Remove TYPE_MAIN_VARIANT check from
COMPLEX_TYPE -> COMPLEX_TYPE conversion.

* gcc.c-torture/compile/pr54428.c: New test.

From-SVN: r190840

12 years agoarm.c (arm_expand_epilogue): Remove unused variable floats_from_frame.
Greta Yorsh [Fri, 31 Aug 2012 16:42:21 +0000 (17:42 +0100)]
arm.c (arm_expand_epilogue): Remove unused variable floats_from_frame.

gcc/

2012-08-31  Greta Yorsh  <Greta.Yorsh@arm.com>

        * config/arm/arm.c (arm_expand_epilogue): Remove unused variable
        floats_from_frame.

From-SVN: r190838

12 years agore PR c++/54197 (Lifetime of reference not properly extended)
Ollie Wild [Fri, 31 Aug 2012 15:47:29 +0000 (15:47 +0000)]
re PR c++/54197 (Lifetime of reference not properly extended)

2012-08-31  Ollie Wild  <aaw@google.com>

PR c++/54197
* gcc/cp/call.c (extend_ref_init_temps_1): Handle COMPOUND_EXPR trees.
* gcc/testsuite/g++.dg/init/lifetime3.C: New test.

From-SVN: r190834

12 years agore PR middle-end/54409 (internal compiler error: in remap_predicate, at ipa-inline...
Martin Jambor [Fri, 31 Aug 2012 14:05:45 +0000 (16:05 +0200)]
re PR middle-end/54409 (internal compiler error: in remap_predicate, at ipa-inline-analysis.c:2710)

2012-08-31  Martin Jambor  <mjambor@suse.cz>

PR middle-end/54409
* ipa-inline-analysis.c (remap_predicate): Fix the offset_map
checking condition.

* gcc/testsuite/gcc.dg/torture/pr54409.c: New test.

From-SVN: r190833

12 years agoipa-inline-analysis.c (phi_result_unknown_predicate): New function.
Martin Jambor [Fri, 31 Aug 2012 13:48:37 +0000 (15:48 +0200)]
ipa-inline-analysis.c (phi_result_unknown_predicate): New function.

2012-08-31  Martin Jambor  <mjambor@suse.cz>

* ipa-inline-analysis.c (phi_result_unknown_predicate): New function.
(predicate_for_phi_result): Likewise.
(estimate_function_body_sizes): Use the above two functions.

* testsuite/gfortran.dg/pr48636.f90: Add dump scan checks.

From-SVN: r190832

12 years agore PR middle-end/54394 (fatigue2 -flto run time regression)
Martin Jambor [Fri, 31 Aug 2012 13:13:03 +0000 (15:13 +0200)]
re PR middle-end/54394 (fatigue2 -flto run time regression)

2012-08-31  Martin Jambor  <mjambor@suse.cz>

PR middle-end/54394
* ipa-inline-analysis.c (estimate_function_body_sizes): Compute
dominance info and loops whenever optimizing.

From-SVN: r190831