redi [Sun, 9 Sep 2012 17:56:51 +0000 (17:56 +0000)]
PR libstdc++/54388
* include/std/array (array::at() const): Ensure lvalue result.
* testsuite/23_containers/array/element_access/54388.cc: New.
* testsuite/23_containers/array/tuple_interface/get_neg.cc: Adjust
dg-error line numbers.
* testsuite/23_containers/array/tuple_interface/tuple_element_neg.cc:
Likewise.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@191114
138bc75d-0d04-0410-961f-
82ee72b054a4
hubicka [Sun, 9 Sep 2012 17:29:21 +0000 (17:29 +0000)]
* passes.c (ipa_write_summaries_1): Set state;
do not call compute_ltrans_boundary.
(ipa_write_optimization_summaries): Likewise.
(ipa_write_summaries): compute_ltrans_boundary here.
* lto-streamer.h (lto_symtab_encoder_d): NODES are allocated in heap.
(compute_ltrans_boundary): Update prototype.
* lto.c (lto_wpa_write_files): Do not delete partition encoder;
it is deleted after streaming.
* lto-partition.c (partition_symbol_p): New function.
(promote_var, promote_fn): Remove.
(promote_symbol): New function.
(lto_promote_cross_file_statics): First compute boundaries; rewrite
to lookup the actual boundaries instead of computing them ad-hoc.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@191113
138bc75d-0d04-0410-961f-
82ee72b054a4
redi [Sun, 9 Sep 2012 17:20:42 +0000 (17:20 +0000)]
2012-09-09 Ulrich Drepper <drepper@gmail.com>
Dominique d'Humieres <dominiq@lps.ens.fr>
Jack Howarth <howarth@bromo.med.uc.edu>
PR bootstrap/54419
* acinclude.m4: Define GLIBCXX_CHECK_X86_RDRAND.
* configure.ac: Use GLIBCXX_CHECK_X86_RDRAND to test for rdrand
support in assembler.
* src/c++11/random.cc (__x86_rdrand): Depend on _GLIBCXX_X86_RDRAND.
(random_device::_M_init): Likewise.
(random_device::_M_getval): Likewise.
* configure: Regenerated.
* config.h.in: Regenerated.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@191111
138bc75d-0d04-0410-961f-
82ee72b054a4
drepper [Sun, 9 Sep 2012 14:22:10 +0000 (14:22 +0000)]
gcc/
* config/i386/cpuid.h: Define signature_*_e[bcd]x macros for
matching results of level 0 calls to __cpuid to processor
manufacturers.
* config/i386/driver-i386.c (vendor_signatures): Removed.
(processor_signatures): Removed.
(host_detect_local_cpu): Replace uses of now-removed SIG_*
constants with the new signature_*_ebx constants.
libstdc++-v3/
* src/c++11/random.cc (random_device::_M_init): Use new macro
signature_INTEL_ebx to check for Intel processors.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@191109
138bc75d-0d04-0410-961f-
82ee72b054a4
hubicka [Sun, 9 Sep 2012 12:31:32 +0000 (12:31 +0000)]
Replace cgraph_node_set and varpool_node_set by symtab_node_encoder
in partitioning.
* tree-pass.h (cgraph_node_set_def, varpool_node_set_def): Remove
forward declaration.
(lto_symtab_encoder_d): Forward declare.
(ipa_write_optimization_summaries): Update.
* lto-cgraph.c (lto_symtab_encoder_new): Do not initialize
body, initializer and in_partition.
(lto_symtab_encoder_delete): Update.
(lto_symtab_encoder_encode): Update.
(lto_symtab_encoder_lookup): Move inline.
(lto_symtab_encoder_delete_node): New function.
(lto_symtab_encoder_encode_body_p, lto_set_symtab_encoder_encode_body,
lto_symtab_encoder_encode_initializer_p,
lto_set_symtab_encoder_encode_initializer, lto_symtab_encoder_in_partition_p,
lto_symtab_encoder_in_partition_p): Update.
(compute_ltrans_boundary): Take encoder as an input.
* passes.c (ipa_write_summaries_1): Update.
(ipa_write_summaries_1): Update.
(ipa_write_summaries): Update.
(ipa_write_optimization_summaries): Update.
* lto-streamer.c (print_lto_report): Report number of cgraph nodes.
* lto-streamer.h (lto_stats_d): Replace num_output_cgraph_nodes by
num_output_symtab_nodes.
(lto_encoder_entry): New structure.
(struct lto_symtab_encoder_d): Reorg.
(lto_symtab_encoder_delete_node): Declare.
(lto_symtab_encoder_lookup): Bring inline.
(compute_ltrans_boundary): Update.
(lto_symtab_encoder_size): Update.
(lsei_node, lsei_cgraph_node, lsei_varpool_node): Update.
(lto_symtab_encoder_deref): Update.
Replace cgraph_node_set and varpool_node_set by symtab_node_encoder
in partitioning.
* lto-partition.h (ltrans_partition_def): Replace cgraph_set and varpool_set
by encoder.
* lto-partition.c (new_partition): Update.
* lto.c (cmp_partitions_order): Update.
(lto_wpa_write_files): Update.
(free_ltrans_partitions): Update.
(add_references_to_partition): Update.
(add_cgraph_node_to_partition_1): Update.
(add_cgraph_node_to_partition): Update.
(add_varpool_node_to_partition): Update.
(undo_partition): Update.
(lto_balanced_map): Update.
(set_referenced_from_other_partition_p, set_reachable_from_other_partition_p,
set_referenced_from_this_partition_p): Update.
(lto_promote_cross_file_statics): Update.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@191107
138bc75d-0d04-0410-961f-
82ee72b054a4
gerald [Sun, 9 Sep 2012 10:06:13 +0000 (10:06 +0000)]
* decl.c (reshape_init_class): Avoid dereferencing a
past-the-end pointer.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@191106
138bc75d-0d04-0410-961f-
82ee72b054a4
gccadmin [Sun, 9 Sep 2012 00:18:33 +0000 (00:18 +0000)]
Daily bump.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@191105
138bc75d-0d04-0410-961f-
82ee72b054a4
danglin [Sat, 8 Sep 2012 22:35:54 +0000 (22:35 +0000)]
* config/pa/pa.c (hppa_rtx_costs): Update costs for large integer modes.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@191102
138bc75d-0d04-0410-961f-
82ee72b054a4
ak [Sat, 8 Sep 2012 19:08:37 +0000 (19:08 +0000)]
Fix broken patch
2012-09-08 Andi Kleen <ak@linux.intel.com>
* gcc/lto/lto.c (do_whole_program_analysis):
Fix last broken patch
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@191097
138bc75d-0d04-0410-961f-
82ee72b054a4
ak [Sat, 8 Sep 2012 17:26:07 +0000 (17:26 +0000)]
Add -fmem-report-wpa
For parallel LTO builds setting -fmem-report does not work very well
because all the LTRANS phases dump it in parallel and typically interleave
it to unreadability.
Since usually the memory bottleneck is WPA add a flag to only dump
the memory report for that.
gcc/:
2012-09-08 Andi Kleen <ak@linux.intel.com>
* gcc/common.opt (-fmem-report-wpa): Add
* gcc/doc/invoke.texi (-fmem-report-wpa): Document.
* gcc/lto/lto.c (do_whole_program_analysis): Run mem_report
when mem_report_wpa is set.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@191095
138bc75d-0d04-0410-961f-
82ee72b054a4
ak [Sat, 8 Sep 2012 15:30:25 +0000 (15:30 +0000)]
Fix wrong date in ChangeLog
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@191094
138bc75d-0d04-0410-961f-
82ee72b054a4
green [Sat, 8 Sep 2012 01:14:22 +0000 (01:14 +0000)]
Optimize moxie function prologues
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@191088
138bc75d-0d04-0410-961f-
82ee72b054a4
gccadmin [Sat, 8 Sep 2012 00:17:52 +0000 (00:17 +0000)]
Daily bump.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@191087
138bc75d-0d04-0410-961f-
82ee72b054a4
mikael [Fri, 7 Sep 2012 20:37:41 +0000 (20:37 +0000)]
fortran/
PR fortran/54208
* simplify.c (simplify_bound_dim): Resolve array spec before
proceeding with simplification.
testsuite/
PR fortran/54208
* gfortran.dg/bound_simplification_3.f90: New test.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@191083
138bc75d-0d04-0410-961f-
82ee72b054a4
paolo [Fri, 7 Sep 2012 20:17:43 +0000 (20:17 +0000)]
2012-09-07 Paolo Carlini <paolo.carlini@oracle.com>
* pt.c (num_template_headers_for_class): Rework per the code
inline in cp_parser_check_declarator_template_parameters.
* parser.c (cp_parser_check_declarator_template_parameters):
Use num_template_headers_for_class.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@191082
138bc75d-0d04-0410-961f-
82ee72b054a4
aldyh [Fri, 7 Sep 2012 16:00:07 +0000 (16:00 +0000)]
PR testsuite/54184
* gcc.dg/pr52558-1.c: Delete.
* gcc.dg/simulate-thread/speculative-store-2.c: New.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@191079
138bc75d-0d04-0410-961f-
82ee72b054a4
nickc [Fri, 7 Sep 2012 14:17:34 +0000 (14:17 +0000)]
* config/v850/v850.h (DBX_DEBUGGING_INFO): Define.
(ASM_GENERATE_INTERNAL_LABEL): Define if not already provided.
* config/v850/v850.c (compute_register_save_size): Always include
the link pointer.
(increment_stack): New function - emits insns to increment or
decrement the stack pointer.
(expand_prologue, expand_epilogue): Use it.
(expand_prologue): Set the function stack size, if requested.
(v850_debug_unwind_info): New function.
(TARGET_DEBUG_UNWIND_INFO): Define.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@191076
138bc75d-0d04-0410-961f-
82ee72b054a4
tejohnson [Fri, 7 Sep 2012 13:49:47 +0000 (13:49 +0000)]
This fixes part of the issue described in PR gcov-profile/54487 where
there were warnings about mismatches due to slight differences in the
merged histograms in different object files. This can happen due to
the truncating integer division in the merge routine, which could result
in slightly different histograms when summaries are merged in different
orders.
2012-09-07 Teresa Johnson <tejohnson@google.com>
PR gcov-profile/54487
* libgcc/libgcov.c (gcov_exit): Avoid warning on histogram
differences.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@191074
138bc75d-0d04-0410-961f-
82ee72b054a4
ebotcazou [Fri, 7 Sep 2012 11:55:06 +0000 (11:55 +0000)]
* gcc-interface/trans.c (Loop_Statement_to_gnu): Revert to using
size_type_node instead of sizetype.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@191069
138bc75d-0d04-0410-961f-
82ee72b054a4
rearnsha [Fri, 7 Sep 2012 10:37:08 +0000 (10:37 +0000)]
PR tree-ssa/54295
* tree-ssa-math-opts.c (widening_mult_conversion_strippable_p):
Sign-extension of a zero-extended value can be simplified to
just zero-extension.
testsuite:
* gcc.target/arm/pr50318-1.c: Scan for smlal.
* gcc.target/arm/smlaltb-1.c: XFAIL test.
* gcc.target/arm/smlaltt-1.c: Likewise.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@191066
138bc75d-0d04-0410-961f-
82ee72b054a4
rguenth [Fri, 7 Sep 2012 10:27:02 +0000 (10:27 +0000)]
2012-09-07 Richard Guenther <rguenther@suse.de>
PR middle-end/53667
* tree-ssa-structalias.c (handle_rhs_call): Properly clobber
EAF_NOESCAPED arguments. Transitively close non-EAF_DIRECT
arguments separately.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@191064
138bc75d-0d04-0410-961f-
82ee72b054a4
steven [Fri, 7 Sep 2012 10:23:06 +0000 (10:23 +0000)]
* bitmap.c (bitmap_last_set_bit): Rewrite to return the correct bit.
* graphite.c (print_global_statistics): Use EDGE_COUNT instead
of VEC_length.
(print_graphite_scop_statistics): Likewise.
* graphite-scop-detection.c (get_bb_type): Use single_succ_p.
(print_graphite_scop_statistics): Use EDGE_COUNT, not VEC_length.
(canonicalize_loop_closed_ssa): Use single_pred_p.
* alias.c (reg_seen): Make this an sbitmap.
(record_set, init_alias_analysis): Update.
* tree-ssa-coalesce.c (ssa_conflicts_dump): Fix dumping.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@191063
138bc75d-0d04-0410-961f-
82ee72b054a4
ebotcazou [Fri, 7 Sep 2012 10:04:57 +0000 (10:04 +0000)]
* gcc.dg/pr44194-1.c: Skip on Alpha and adjust regexp for SPARC64.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@191061
138bc75d-0d04-0410-961f-
82ee72b054a4
vries [Fri, 7 Sep 2012 09:21:21 +0000 (09:21 +0000)]
2012-09-07 Tom de Vries <tom@codesourcery.com>
PR tree-optimization/53986
* gcc.dg/tree-ssa/vrp80.c: New test.
* gcc.dg/tree-ssa/vrp80-2.c: Same.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@191058
138bc75d-0d04-0410-961f-
82ee72b054a4
vries [Fri, 7 Sep 2012 09:21:11 +0000 (09:21 +0000)]
2012-09-07 Tom de Vries <tom@codesourcery.com>
PR tree-optimization/53986
* tree-vrp.c (extract_range_from_multiplicative_op_1): Allow
LSHIFT_EXPR.
(extract_range_from_binary_expr_1): Handle LSHIFT with constant range as
shift amount.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@191057
138bc75d-0d04-0410-961f-
82ee72b054a4
segher [Fri, 7 Sep 2012 08:06:43 +0000 (08:06 +0000)]
2012-09-07 Segher Boessenkool <segher@kernel.crashing.org>
gcc/
* config/rs6000/aix43.h (RS6000_CALL_GLUE): Delete.
* config/rs6000/aix51.h (RS6000_CALL_GLUE): Delete.
* config/rs6000/aix52.h (RS6000_CALL_GLUE): Delete.
* config/rs6000/aix53.h (RS6000_CALL_GLUE): Delete.
* config/rs6000/aix61.h (RS6000_CALL_GLUE): Delete.
* config/rs6000/freebsd64.h (RS6000_CALL_GLUE): Delete.
* config/rs6000/linux64.h (RS6000_CALL_GLUE): Delete.
* config/rs6000/rs6000.c (print_operand) ['.']: Delete.
* config/rs6000/rs6000.h (RS6000_CALL_GLUE): Delete.
* config/rs6000/rs6000.md (tls_gd_aix<TLSmode:tls_abi_suffix>):
Replace %. with nop.
(tls_gd_call_aix<TLSmode:tls_abi_suffix>): Ditto.
(tls_ld_aix<TLSmode:tls_abi_suffix>): Ditto.
(tls_ld_call_aix<TLSmode:tls_abi_suffix>): Ditto.
(call_nonlocal_aix32): Ditto.
(call_nonlocal_aix64): Ditto.
(call_value_nonlocal_aix32): Ditto.
(call_value_nonlocal_aix64): Ditto.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@191055
138bc75d-0d04-0410-961f-
82ee72b054a4
ak [Fri, 7 Sep 2012 05:04:15 +0000 (05:04 +0000)]
2012-06-04 Andi Kleen <ak@linux.intel.com>
* doc/invoke.texi (-ffat-lto-objects): Clarify that gcc-ar
et.al. should be used.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@191052
138bc75d-0d04-0410-961f-
82ee72b054a4
ak [Fri, 7 Sep 2012 02:56:17 +0000 (02:56 +0000)]
Reduce memory usage for storing LTO decl resolutions
With a LTO build of a large project (>11k subfiles incrementially linked)
storing the LTO resolutions took over 0.5GB memory:
lto/lto.c:1087 (lto_resolution_read) 0: 0.0%
540398500 15903: 0.0%
The reason is that the declaration indexes are quite sparse, but every subfile
got a full continuous vector for them. Since there are so many of them the
many vectors add up.
This patch instead stores the resolutions initially in a compact (index, resolution)
format. This is only expanded into a sparse vector for fast lookup when
the subfile is actually read, but then immediately freed. This means only one
vector is allocated at a time.
This brings the overhead for this down to less than 3MB for the test case:
lto/lto.c:1087 (lto_resolution_read) 0: 0.0% 2821456 42186: 0.0%
gcc/:
2012-09-06 Andi Kleen <ak@linux.intel.com>
* gcc/lto-streamer.h (res_pair): Add.
(lto_file_decl_data): Replace resolutions with respairs.
Add max_index.
* gcc/lto/lto.c (lto_resolution_read): Remove max_index. Add rp.
Initialize respairs.
(lto_file_finalize): Set up resolutions vector lazily from respairs.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@191051
138bc75d-0d04-0410-961f-
82ee72b054a4
gccadmin [Fri, 7 Sep 2012 00:18:25 +0000 (00:18 +0000)]
Daily bump.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@191050
138bc75d-0d04-0410-961f-
82ee72b054a4
crowl [Fri, 7 Sep 2012 00:06:35 +0000 (00:06 +0000)]
Modify gcc/*.[hc] double_int call sites to use the new interface.
This change entailed adding a few new methods to double_int.
The change results in a 0.163% time improvement with a 70% confidence.
Tested on x86_64.
Index: gcc/ChangeLog
2012-09-06 Lawrence Crowl <crowl@google.com>
* double-int.h (double_int::operator &=): New.
(double_int::operator ^=): New.
(double_int::operator |=): New.
(double_int::mul_with_sign): Modify overflow parameter to bool*.
(double_int::add_with_sign): New.
(double_int::ule): New.
(double_int::sle): New.
(binary double_int::operator *): Remove parameter name.
(binary double_int::operator +): Likewise.
(binary double_int::operator -): Likewise.
(binary double_int::operator &): Likewise.
(double_int::operator |): Likewise.
(double_int::operator ^): Likewise.
(double_int::and_not): Likewise.
(double_int::from_shwi): Tidy formatting.
(double_int::from_uhwi): Likewise.
(double_int::from_uhwi): Likewise.
* double-int.c (double_int::mul_with_sign): Modify overflow parameter
to bool*.
(double_int::add_with_sign): New.
(double_int::ule): New.
(double_int::sle): New.
* builtins.c: Modify to use the new double_int interface.
* cgraph.c: Likewise.
* combine.c: Likewise.
* dwarf2out.c: Likewise.
* emit-rtl.c: Likewise.
* expmed.c: Likewise.
* expr.c: Likewise.
* fixed-value.c: Likewise.
* fold-const.c: Likewise.
* gimple-fold.c: Likewise.
* gimple-ssa-strength-reduction.c: Likewise.
* gimplify-rtx.c: Likewise.
* ipa-prop.c: Likewise.
* loop-iv.c: Likewise.
* optabs.c: Likewise.
* stor-layout.c: Likewise.
* tree-affine.c: Likewise.
* tree-cfg.c: Likewise.
* tree-dfa.c: Likewise.
* tree-flow-inline.h: Likewise.
* tree-object-size.c: Likewise.
* tree-predcom.c: Likewise.
* tree-pretty-print.c: Likewise.
* tree-sra.c: Likewise.
* tree-ssa-address.c: Likewise.
* tree-ssa-alias.c: Likewise.
* tree-ssa-ccp.c: Likewise.
* tree-ssa-forwprop.c: Likewise.
* tree-ssa-loop-ivopts.c: Likewise.
* tree-ssa-loop-niter.c: Likewise.
* tree-ssa-phiopt.c: Likewise.
* tree-ssa-pre.c: Likewise.
* tree-ssa-sccvn: Likewise.
* tree-ssa-structalias.c: Likewise.
* tree-ssa.c: Likewise.
* tree-switch-conversion.c: Likewise.
* tree-vect-loop-manip.c: Likewise.
* tree-vrp.c: Likewise.
* tree.h: Likewise.
* tree.c: Likewise.
* varasm.c: Likewise.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@191047
138bc75d-0d04-0410-961f-
82ee72b054a4
ccoutant [Thu, 6 Sep 2012 23:32:59 +0000 (23:32 +0000)]
2012-09-06 Cary Coutant <ccoutant@google.com>
include/
* dwarf2.def: Edit comment.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@191046
138bc75d-0d04-0410-961f-
82ee72b054a4
uros [Thu, 6 Sep 2012 21:45:46 +0000 (21:45 +0000)]
* configure.ac (hle prefixes): Remove .code64.
* configure: Regenerated.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@191044
138bc75d-0d04-0410-961f-
82ee72b054a4
bkoz [Thu, 6 Sep 2012 20:31:08 +0000 (20:31 +0000)]
2012-09-06 Thiago Macieira <thiago.macieira@intel.com>
PR libstdc++/54172
* libsupc++/guard.cc (__cxa_guard_acquire): Exit the loop earlier if
we detect that another thread has had success. Don't compare_exchange
from a finished state back to a waiting state. Comment.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@191042
138bc75d-0d04-0410-961f-
82ee72b054a4
dnovillo [Thu, 6 Sep 2012 18:14:58 +0000 (18:14 +0000)]
* configure.ac: Bump minimum GMP version to 4.2.3.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@191037
138bc75d-0d04-0410-961f-
82ee72b054a4
rearnsha [Thu, 6 Sep 2012 17:11:18 +0000 (17:11 +0000)]
2012-09-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
* config/arm/arm.c: Use CONST_INT_P, CONST_DOUBLE_P, REG_P, MEM_P,
LABEL_P, JUMP_P, CALL_P, NOTE_P, BARRIER_P consistently.
* config/arm/arm.h: Use REG_P, MEM_P consistently.
* config/arm/arm.md: Use CONST_INT_P, REG_P, MEM_P, CONST_DOUBLE_P
consistently.
* config/arm/neon.md: Use REG_P consistently.
* config/arm/predicates.md: Use CONST_INT_P, REG_P, MEM_P
consistently.
* config/arm/thumb2.md: Use CONST_INT_P, REG_P consistently.
* config/arm/vec-common.md: Use REG_P consistently.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@191034
138bc75d-0d04-0410-961f-
82ee72b054a4
jason [Thu, 6 Sep 2012 16:24:10 +0000 (16:24 +0000)]
PR c++/54341
PR c++/54253
* semantics.c (sort_constexpr_mem_initializers): New.
(build_constexpr_constructor_member_initializers): Use it.
(cx_check_missing_mem_inits): Skip artificial fields.
* init.c (expand_aggr_init_1): Don't zero out a class
with no data.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@191033
138bc75d-0d04-0410-961f-
82ee72b054a4
rguenth [Thu, 6 Sep 2012 14:47:42 +0000 (14:47 +0000)]
2012-09-06 Richard Guenther <rguenther@suse.de>
PR tree-optimization/54498
* tree-ssa-alias.h (get_continuation_for_phi): Add flag to
abort when reaching an already visited region.
* tree-ssa-alias.c (maybe_skip_until): Likewise. And do it.
(get_continuation_for_phi_1): Likewise.
(walk_non_aliased_vuses): When we translated the reference,
abort when we re-visit a region.
* tree-ssa-pre.c (translate_vuse_through_block): Adjust.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@191030
138bc75d-0d04-0410-961f-
82ee72b054a4
dje [Thu, 6 Sep 2012 14:07:23 +0000 (14:07 +0000)]
* config/rs6000/rs6000.c (rs6000_xcoff_asm_named_section): Add TLS
section.
* config/rs6000/rs6000.c (rs6000_debug_address_cost): Add new
arguments to TARGET_ADDRESS_COST call.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@191027
138bc75d-0d04-0410-961f-
82ee72b054a4
rguenth [Thu, 6 Sep 2012 13:42:28 +0000 (13:42 +0000)]
2012-09-06 Richard Guenther <rguenther@suse.de>
* tree.h (MOVE_NONTEMPORAL): Remove.
* tree-pretty-print.c (dump_generic_node): Remove
MOVE_NONTEMPORAL handling.
* expr.c (expand_expr_real_1): Likewise.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@191022
138bc75d-0d04-0410-961f-
82ee72b054a4
rguenth [Thu, 6 Sep 2012 09:13:08 +0000 (09:13 +0000)]
2012-09-06 Richard Guenther <rguenther@suse.de>
* passes.c (execute_function_todo): Call compute_may_aliases
only if flag_tree_pta is set.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@191015
138bc75d-0d04-0410-961f-
82ee72b054a4
pinskia [Thu, 6 Sep 2012 08:08:09 +0000 (08:08 +0000)]
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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@191014
138bc75d-0d04-0410-961f-
82ee72b054a4
jakub [Thu, 6 Sep 2012 07:29:12 +0000 (07:29 +0000)]
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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@191013
138bc75d-0d04-0410-961f-
82ee72b054a4
burnus [Thu, 6 Sep 2012 07:03:42 +0000 (07:03 +0000)]
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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@191012
138bc75d-0d04-0410-961f-
82ee72b054a4
ian [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
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@191008
138bc75d-0d04-0410-961f-
82ee72b054a4
liqin [Thu, 6 Sep 2012 03:07:53 +0000 (03:07 +0000)]
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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@191004
138bc75d-0d04-0410-961f-
82ee72b054a4
gccadmin [Thu, 6 Sep 2012 00:17:59 +0000 (00:17 +0000)]
Daily bump.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@191002
138bc75d-0d04-0410-961f-
82ee72b054a4
hubicka [Wed, 5 Sep 2012 22:32:36 +0000 (22:32 +0000)]
* ipa-inline.c (want_inline_small_function_p): Use INLINE_HINT_loop_iterations
hint.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@190999
138bc75d-0d04-0410-961f-
82ee72b054a4
uros [Wed, 5 Sep 2012 21:43:45 +0000 (21:43 +0000)]
* config/fpu-387.h (set_fpu): Prefix stmxcsr and ldmxcsr with %v.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@190997
138bc75d-0d04-0410-961f-
82ee72b054a4
pinskia [Wed, 5 Sep 2012 20:23:22 +0000 (20:23 +0000)]
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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@190994
138bc75d-0d04-0410-961f-
82ee72b054a4
uros [Wed, 5 Sep 2012 19:55:02 +0000 (19:55 +0000)]
* ChangeLog: Fix date of my last commit.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@190993
138bc75d-0d04-0410-961f-
82ee72b054a4
uros [Wed, 5 Sep 2012 19:49:21 +0000 (19:49 +0000)]
* config/fpu-387.h (set_fpu): Use __builtin_ia32_stmxcsr and
__builtin_ia32_ldmxcsr intrinsics.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@190992
138bc75d-0d04-0410-961f-
82ee72b054a4
fdumont [Wed, 5 Sep 2012 19:41:16 +0000 (19:41 +0000)]
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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@190991
138bc75d-0d04-0410-961f-
82ee72b054a4
olegendo [Wed, 5 Sep 2012 17:31:17 +0000 (17:31 +0000)]
* 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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@190990
138bc75d-0d04-0410-961f-
82ee72b054a4
burnus [Wed, 5 Sep 2012 16:40:48 +0000 (16:40 +0000)]
2012-09-05 Tobias Burnus <burnus@net-b.de>
PR fortran/54462
* symbol.c (gfc_undo_symbols): Avoid NULL pointer dereference.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@190989
138bc75d-0d04-0410-961f-
82ee72b054a4
dnovillo [Wed, 5 Sep 2012 16:34:42 +0000 (16:34 +0000)]
PR bootstrap/54484
* vec.h (vec_t::lower_bound): Fix spelling of LESSTHAN
argument.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@190988
138bc75d-0d04-0410-961f-
82ee72b054a4
jakub [Wed, 5 Sep 2012 16:27:55 +0000 (16:27 +0000)]
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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@190986
138bc75d-0d04-0410-961f-
82ee72b054a4
uros [Wed, 5 Sep 2012 15:20:01 +0000 (15:20 +0000)]
* 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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@190985
138bc75d-0d04-0410-961f-
82ee72b054a4
drepper [Wed, 5 Sep 2012 13:54:57 +0000 (13:54 +0000)]
* src/c++11/random.cc (random_device::_M_init): Check whether cpuid
instruction is available by using __get_cpuid_max.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@190982
138bc75d-0d04-0410-961f-
82ee72b054a4
ebotcazou [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.
(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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@190979
138bc75d-0d04-0410-961f-
82ee72b054a4
rguenth [Wed, 5 Sep 2012 13:29:13 +0000 (13:29 +0000)]
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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@190978
138bc75d-0d04-0410-961f-
82ee72b054a4
mikael [Wed, 5 Sep 2012 13:26:58 +0000 (13:26 +0000)]
2012-09-05 Dominique Dhumieres <dominiq@lps.ens.fr>
PR fortran/54474
* gfortran.dg/coarray_poly_3.f90: Adjust error messages.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@190977
138bc75d-0d04-0410-961f-
82ee72b054a4
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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@190975
138bc75d-0d04-0410-961f-
82ee72b054a4
paolo [Wed, 5 Sep 2012 10:14:37 +0000 (10:14 +0000)]
/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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@190969
138bc75d-0d04-0410-961f-
82ee72b054a4
gjl [Wed, 5 Sep 2012 08:47:50 +0000 (08:47 +0000)]
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__
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@190967
138bc75d-0d04-0410-961f-
82ee72b054a4
amker [Wed, 5 Sep 2012 07:44:25 +0000 (07:44 +0000)]
Add missed ChangeLog entry for r190919.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@190965
138bc75d-0d04-0410-961f-
82ee72b054a4
jason [Wed, 5 Sep 2012 04:17:12 +0000 (04:17 +0000)]
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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@190962
138bc75d-0d04-0410-961f-
82ee72b054a4
jason [Wed, 5 Sep 2012 04:16:58 +0000 (04:16 +0000)]
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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@190961
138bc75d-0d04-0410-961f-
82ee72b054a4
drepper [Wed, 5 Sep 2012 04:06:24 +0000 (04:06 +0000)]
* 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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@190960
138bc75d-0d04-0410-961f-
82ee72b054a4
gccadmin [Wed, 5 Sep 2012 00:18:19 +0000 (00:18 +0000)]
Daily bump.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@190957
138bc75d-0d04-0410-961f-
82ee72b054a4
drepper [Tue, 4 Sep 2012 22:57:09 +0000 (22:57 +0000)]
* 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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@190954
138bc75d-0d04-0410-961f-
82ee72b054a4
tejohnson [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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@190953
138bc75d-0d04-0410-961f-
82ee72b054a4
tejohnson [Tue, 4 Sep 2012 21:16:18 +0000 (21:16 +0000)]
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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@190952
138bc75d-0d04-0410-961f-
82ee72b054a4
dnovillo [Tue, 4 Sep 2012 21:07:48 +0000 (21:07 +0000)]
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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@190951
138bc75d-0d04-0410-961f-
82ee72b054a4
jason [Tue, 4 Sep 2012 19:35:02 +0000 (19:35 +0000)]
PR c++/54198
* decl.c (check_default_argument): Set cp_unevaluated_operand
around call to perform_implicit_conversion_flags.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@190949
138bc75d-0d04-0410-961f-
82ee72b054a4
ebotcazou [Tue, 4 Sep 2012 19:11:37 +0000 (19:11 +0000)]
* bb-reorder.c (gate_handle_reorder_blocks): Move around.
(rest_of_handle_reorder_blocks): Likewise.
(pass_reorder_blocks): Likewise.
(gate_handle_partition_blocks): Likewise.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@190948
138bc75d-0d04-0410-961f-
82ee72b054a4
ebotcazou [Tue, 4 Sep 2012 19:05:38 +0000 (19:05 +0000)]
PR rtl-optimization/54456
* sched-rgn.c (gate_handle_sched): Return 1 only if optimize > 0.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@190947
138bc75d-0d04-0410-961f-
82ee72b054a4
jason [Tue, 4 Sep 2012 18:49:51 +0000 (18:49 +0000)]
PR c++/54437
PR c++/51213
* pt.c (fn_type_unification): Call coerce_template_parms before
entering substitution context.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@190946
138bc75d-0d04-0410-961f-
82ee72b054a4
jason [Tue, 4 Sep 2012 18:49:41 +0000 (18:49 +0000)]
* configure.ac: Fix --enable-languages=all.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@190945
138bc75d-0d04-0410-961f-
82ee72b054a4
dnovillo [Tue, 4 Sep 2012 18:33:29 +0000 (18:33 +0000)]
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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@190943
138bc75d-0d04-0410-961f-
82ee72b054a4
rth [Tue, 4 Sep 2012 18:16:24 +0000 (18:16 +0000)]
* alias.c (read_dependence): Return true for ALIAS_SET_MEMORY_BARRIER.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@190941
138bc75d-0d04-0410-961f-
82ee72b054a4
steven [Tue, 4 Sep 2012 15:28:39 +0000 (15:28 +0000)]
PR bootstrap/54453
* include/Makefile.am: Fix regex.
* include/Makefile.in: Regenerate.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@190939
138bc75d-0d04-0410-961f-
82ee72b054a4
rguenth [Tue, 4 Sep 2012 15:25:38 +0000 (15:25 +0000)]
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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@190938
138bc75d-0d04-0410-961f-
82ee72b054a4
dnovillo [Tue, 4 Sep 2012 15:16:51 +0000 (15:16 +0000)]
PR bootstrap/54479
* vec.h (vec_t::copy): Add cast in call to reserve_exact.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@190937
138bc75d-0d04-0410-961f-
82ee72b054a4
ebotcazou [Tue, 4 Sep 2012 13:56:06 +0000 (13:56 +0000)]
* make_sunver.pl: Add missing newline at the end of extern "C++" block.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@190932
138bc75d-0d04-0410-961f-
82ee72b054a4
rguenth [Tue, 4 Sep 2012 13:26:25 +0000 (13:26 +0000)]
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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@190930
138bc75d-0d04-0410-961f-
82ee72b054a4
dnovillo [Tue, 4 Sep 2012 13:23:10 +0000 (13:23 +0000)]
* testsuite-management/x86_64-unknown-linux-gnu.xfail: Update.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@190929
138bc75d-0d04-0410-961f-
82ee72b054a4
clyon [Tue, 4 Sep 2012 13:22:55 +0000 (13:22 +0000)]
2012-09-04 Christophe Lyon <christophe.lyon@st.com>
* MAINTAINERS (Write After Approval): Add myself.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@190928
138bc75d-0d04-0410-961f-
82ee72b054a4
dnovillo [Tue, 4 Sep 2012 13:22:54 +0000 (13:22 +0000)]
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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@190927
138bc75d-0d04-0410-961f-
82ee72b054a4
steven [Tue, 4 Sep 2012 13:03:02 +0000 (13:03 +0000)]
* 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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@190925
138bc75d-0d04-0410-961f-
82ee72b054a4
gjl [Tue, 4 Sep 2012 09:37:08 +0000 (09:37 +0000)]
PR target/54476
* config/avr/avr.c (avr_expand_delay_cycles): Mask operand with
SImode.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@190920
138bc75d-0d04-0410-961f-
82ee72b054a4
amker [Tue, 4 Sep 2012 09:36:44 +0000 (09:36 +0000)]
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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@190919
138bc75d-0d04-0410-961f-
82ee72b054a4
rguenth [Tue, 4 Sep 2012 09:28:58 +0000 (09:28 +0000)]
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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@190918
138bc75d-0d04-0410-961f-
82ee72b054a4
gjl [Tue, 4 Sep 2012 09:08:50 +0000 (09:08 +0000)]
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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@190914
138bc75d-0d04-0410-961f-
82ee72b054a4
clyon [Tue, 4 Sep 2012 08:35:19 +0000 (08:35 +0000)]
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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@190912
138bc75d-0d04-0410-961f-
82ee72b054a4
clyon [Tue, 4 Sep 2012 08:32:39 +0000 (08:32 +0000)]
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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@190911
138bc75d-0d04-0410-961f-
82ee72b054a4
janus [Tue, 4 Sep 2012 08:03:09 +0000 (08:03 +0000)]
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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@190910
138bc75d-0d04-0410-961f-
82ee72b054a4
olegendo [Tue, 4 Sep 2012 08:03:01 +0000 (08:03 +0000)]
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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@190909
138bc75d-0d04-0410-961f-
82ee72b054a4
gccadmin [Tue, 4 Sep 2012 00:18:16 +0000 (00:18 +0000)]
Daily bump.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@190908
138bc75d-0d04-0410-961f-
82ee72b054a4
ak [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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@190905
138bc75d-0d04-0410-961f-
82ee72b054a4
pinskia [Mon, 3 Sep 2012 20:31:52 +0000 (20:31 +0000)]
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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@190904
138bc75d-0d04-0410-961f-
82ee72b054a4