Commit Graph

123126 Commits

Author SHA1 Message Date
Janne Blomqvist
a2f7b4ad34 Fix sign error in SYSTEM_CLOCK kind=4 Windows version.
2013-04-28  Janne Blomqvist  <jb@gcc.gnu.org>

	* intrinsics/system_clock.c (system_clock_4): Fix sign error in
	Windows version.

From-SVN: r198378
2013-04-28 21:16:25 +03:00
Eric Botcazou
22ad5e0a85 stor-layout.c (finalize_size_functions): Allocate a structure and reset cfun before dumping the functions.
* stor-layout.c (finalize_size_functions): Allocate a structure and
	reset cfun before dumping the functions.

From-SVN: r198376
2013-04-28 17:29:01 +00:00
Joseph Myers
20cab75e80 * sv.po: Update.
From-SVN: r198371
2013-04-28 15:43:12 +01:00
Thomas Koenig
0de1e4a6aa re PR fortran/57071 (Optimize (-1)**k to 1 - 2 * mod(K, 2))
2013-04-28  Thomas Koenig  <tkoenig@gcc.gnu.org>

	PR fortran/57071
	* frontend-passes (optimize_power):  New function.
	(optimize_op):  Use it.

2013-04-28  Thomas Koenig  <tkoenig@gcc.gnu.org>

	PR fortran/57071
	* gfortran.dg/power_3.f90:  New test.
	* gfortran.dg/power_4.f90:  New test.

From-SVN: r198369
2013-04-28 13:32:59 +00:00
Jonathan Wakely
d872e4aa70 hashtable_policy.h (_Hashtable_ebo_helper): Fix comment.
* include/bits/hashtable_policy.h (_Hashtable_ebo_helper): Fix
	comment.
	* include/std/mutex (__recursive_mutex_base): Likewise.

From-SVN: r198368
2013-04-28 12:51:59 +01:00
Jonathan Wakely
fe807059aa re PR libstdc++/51365 (cannot use final empty class in std::tuple)
PR libstdc++/51365
	* include/bits/shared_ptr_base (_Sp_ebo_helper): Helper class to
	implement EBO safely.
	(_Sp_counted_base::_M_get_deleter): Add noexcept.
	(_Sp_counter_ptr): Use noexcept instead of comments.
	(_Sp_counted_deleter): Likewise. Use _Sp_ebo_helper.
	(_Sp_counted_ptr_inplace): Likewise.
	* testsuite/20_util/shared_ptr/cons/51365.cc: New.
	* testsuite/20_util/shared_ptr/cons/52924.cc: Add rebind member to
	custom allocator and test construction with custom allocator.
	* testsuite/20_util/shared_ptr/cons/43820_neg.cc: Adjust dg-error
	line number.

From-SVN: r198367
2013-04-28 12:38:21 +01:00
GCC Administrator
35eb492bcf Daily bump.
From-SVN: r198365
2013-04-28 00:16:43 +00:00
Jakub Jelinek
d6fde69e8a * config/i386/i386.c (ix86_expand_call): Make cregs_size unsigned.
From-SVN: r198358
2013-04-27 14:29:42 +02:00
Jakub Jelinek
ba8011e6c0 re PR target/56866 (with '-O3 -march=bdver2' misscompiles glibc-2.17/crypt/sha512.c)
PR target/56866
	* config/i386/i386.c (ix86_expand_mul_widen_evenodd): Don't
	use xop_pmacsdqh if uns_p.
	* config/i386/sse.md (xop_rotr<mode>3): Fix up computation of
	the immediate rotate count.

	* gcc.c-torture/execute/pr56866.c: New test.
	* gcc.target/i386/pr56866.c: New test.

From-SVN: r198355
2013-04-27 14:26:05 +02:00
GCC Administrator
95715ffbe6 Daily bump.
From-SVN: r198353
2013-04-27 00:16:38 +00:00
Paolo Carlini
0433be867c move_range.cc: Adjust dialect to -std=gnu++11.
2013-04-26  Paolo Carlini  <paolo.carlini@oracle.com>

	* testsuite/23_containers/unordered_set/insert/move_range.cc: Adjust
	dialect to -std=gnu++11.

From-SVN: r198347
2013-04-26 21:20:00 +00:00
François Dumont
d2f2f2e38c 2013-04-26 François Dumont <fdumont@gcc.gnu.org>
* include/bits/hashtable_policy.h
	(_Insert_base<>::insert<_It>(_It, _It)): Enable move semantics.
	* testsuite/23_containers/unordered_set/insert/move_range.cc: New.

From-SVN: r198346
2013-04-26 20:13:41 +00:00
Vladimir Makarov
2c62cbaaf1 rtl.h (struct rtx_def): Add comment for field jump.
2013-04-26  Vladimir Makarov  <vmakarov@redhat.com>

	* rtl.h (struct rtx_def): Add comment for field jump.
	(LRA_SUBREG_P): New macro.
	* recog.c (register_operand): Check LRA_SUBREG_P.
	* lra.c (lra): Add note at the end of RTL code. Align non-empty
	stack frame.
	* lra-spills.c (lra_spill): Align stack after spilling pseudos.
	(lra_final_code_change): Skip subreg change for operators.
	* lra-eliminations.c (eliminate_regs_in_insn): Make return earlier
	if there are no operand changes.
	* lra-constraints.c (curr_insn_set): New.
	(match_reload): Set LRA_SUBREG_P.
	(emit_spill_move): Ditto.
	(check_and_process_move): Use curr_insn_set. Process only single
	set insns.  Don't initialize sec_mem_p and change_p.
	(simplify_operand_subreg): Use LRA_SUBREG_P.
	(reg_in_class_p): New function.
	(process_alt_operands): Use it.  Use #if HAVE_ATTR_enabled instead
	of #ifdef.  Add code to remove cycling.
	(process_address): Check EXTRA_CONSTRAINT_STR. Process even if
	non-null disp.  Reload inner instead of disp when base and index
	are null.  Try to put lo_sum into register.
	(EBB_PROBABILITY_CUTOFF): Redefine probability in percents.
	(check_and_process_move): Move code for move cost check to
	simple_move_p.  Remove equiv_substitution.
	(simple_move_p): New function.
	(curr_insn_transform): Initialize sec_mem_p and change_p.  Set up
	curr_insn_set.  Call check_and_process_move only for single set
	insns.  Use the new function.  Move call of check_and_process_move
	after operand equiv substitution and address process.

From-SVN: r198344
2013-04-26 18:11:35 +00:00
Jakub Jelinek
e7d764f367 re PR go/57045 (Build failure in libgo/runtime/proc.c: error: ‘({anonymous})’ may be used uninitialized in this function)
PR go/57045
	* tree-ssa-uninit.c (compute_uninit_opnds_pos): In functions
	with nonlocal goto receivers or returns twice calls, ignore
	unininitialized values from abnormal edges to nl goto receiver
	or returns twice call.

	* gcc.dg/setjmp-5.c: New test.

From-SVN: r198340
2013-04-26 15:14:55 +02:00
Jakub Jelinek
41e106896a re PR tree-optimization/57051 (Optimization regression in 4.8.0 from 4.7.2)
PR tree-optimization/57051
	* fold-const.c (const_binop): Handle VEC_LSHIFT_EXPR
	and VEC_RSHIFT_EXPR if shift count is a multiple of element
	bitsize.

From-SVN: r198339
2013-04-26 15:13:36 +02:00
Richard Biener
d7ed20db76 omp-low.c (finalize_task_copyfn): Do not drop PROP_loops.
2013-04-26  Richard Biener  <rguenther@suse.de>

	* omp-low.c (finalize_task_copyfn): Do not drop PROP_loops.
	(expand_omp_taskreg): Likewise.  Mark loops for fixup.
	* tree-cfg.c (move_block_to_fn): Remap loop fathers.
	(fixup_loop_arrays_after_move): New function.
	(move_sese_region_to_fn): Properly outline the loop tree parts
	of the SESE region.

From-SVN: r198338
2013-04-26 12:56:36 +00:00
Paolo Carlini
6e03fa931c re PR c++/55708 (g++ crashes: constexpr function with reference parameters.)
2013-04-26  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/55708
	* g++.dg/cpp0x/constexpr-55708.C: New.

From-SVN: r198337
2013-04-26 12:11:14 +00:00
Uros Bizjak
df93505e2e i386.md (type, unit): Fix long lines.
* config/i386/i386.md (type, unit): Fix long lines.

From-SVN: r198336
2013-04-26 14:00:29 +02:00
Paolo Carlini
acd1cc4b29 cstdio (gets): Provide only in C++98 and C++11.
2013-04-26  Paolo Carlini  <paolo.carlini@oracle.com>

	* include/c_global/cstdio (gets): Provide only in C++98 and C++11.
	* include/c_std/cstdio (gets): Likewise.
	* testsuite/27_io/headers/cstdio/functions_std.cc: Adjust.

From-SVN: r198335
2013-04-26 11:32:49 +00:00
Richard Biener
dd366ec309 Makefile.in (lto-streamer-in.o): Add $(CFGLOOP_H) dependency.
2013-04-26  Richard Biener  <rguenther@suse.de>

	* Makefile.in (lto-streamer-in.o): Add $(CFGLOOP_H) dependency.
	(lto-streamer-out.o): Likewise.
	* cfgloop.c (init_loops_structure): Export, add struct function
	argument and adjust.
	(flow_loops_find): Adjust.
	* cfgloop.h (enum loop_estimation): Add EST_LAST.
	(init_loops_structure): Declare.
	* lto-streamer-in.c: Include cfgloop.h.
	(input_cfg): Input the loop tree.
	* lto-streamer-out.c: Include cfgloop.h.
	(output_cfg): Output the loop tree.
	(output_struct_function_base): Do not drop PROP_loops.

From-SVN: r198334
2013-04-26 11:13:14 +00:00
Richard Biener
a9e0d84371 tree-cfg.c (execute_build_cfg): Build the loop tree.
2013-03-26  Richard Biener  <rguenther@suse.de>

	* tree-cfg.c (execute_build_cfg): Build the loop tree.
	(pass_build_cfg): Provide PROP_loops.
	(move_sese_region_to_fn): Remove loops that are outlined into fn
	for now.
	* tree-inline.c: Include cfgloop.h.
	(initialize_cfun): Do not drop PROP_loops.
	(copy_loops): New function.
	(copy_cfg_body): Copy loop structure.
	(tree_function_versioning): Initialize destination loop tree.
	* tree-ssa-loop.c (pass_tree_loop_init): Do not provide PROP_loops.
	(pass_parallelize_loops): Do IL verification.
	* loop-init.c (loop_optimizer_init): Fixup loops if required.
	* tree-optimize.c (execute_fixup_cfg): If we need to cleanup
	the CFG make sure we fixup loops as well.
	* tree-ssa-tail-merge.c: Include cfgloop.h.
	(replace_block_by): When merging loop latches mark loops for fixup.
	* lto-streamer-out.c (output_struct_function_base): Drop
	PROP_loops for now.
	* tree-ssa-phiopt.c: Include tree-scalar-evolution.h.
	(tree_ssa_cs_elim): Initialize the loop optimizer and SCEV.
	* ipa-split.c: Include cfgloop.h.
	(split_function): Add the new return block to the loop tree root.
	* tree-cfgcleanup.c (remove_forwarder_block_with_phi): Return
	whether we have removed the forwarder block.
	(merge_phi_nodes): If we removed a forwarder mark loops for fixup.
	* cfgloop.h (place_new_loop): Declare.
	* cfgloopmanip.c (place_new_loop): Export.
	* Makefile.in (asan.o): Add $(CFGLOOP_H) dependency.
	(tree-switch-conversion.o): Likewise.
	(tree-complex.o): Likewise.
	(tree-inline.o): Likewise.
	(tree-ssa-tailmerge.o): Likewise.
	(ipa-split.o): Likewise.
	(tree-ssa-phiopt.o): Add $(SCEV_H) dependency.
	(tree-ssa-copy.o): Likewise.
	* tree-switch-conversion.c: Include cfgloop.h
	(process_switch): If we emit a bit-test cascade, schedule loops
	for fixup.
	* tree-complex.c: Include cfgloop.h.
	(expand_complex_div_wide): Properly add new basic-blocks to loops.
	* asan.c: Include cfgloop.h.
	(create_cond_insert_point): Properly add new basic-blocks to
	loops, schedule loop fixup.
	* cfgloop.c (verify_loop_structure): Check that looks are not
	marked for fixup.
	* omp-low.c (expand_parallel_call): Properly add new basic-blocks
	to loops.
	(expand_omp_for_generic): Likewise.
	(expand_omp_sections): Likewise.
	(expand_omp_atomic_pipeline): Schedule loops for fixup.
	* tree-ssa-copy.c: Include tree-scalar-evolution.h.
	(fini_copy_prop): Disable DCE in substitute_and_fold if SCEV
	is initialized, not when loops are present.
	* tree-parloops.c (parallelize_loops): Remove checking here.
	* passes.c (init_optimization_passes): Schedule a copy-propagation
	pass before complete unrolling of inner loops.

	* gcc.dg/tree-prof/update-loopch.c: Revert last change.
	* gcc.dg/graphite/pr33766.c: Fix undefined behavior.
	* gcc.dg/pr53265.c: Remove XFAILs.
	* gcc.dg/tree-ssa/loop-38.c: Remove unreliable dump scanning.
	* gcc.dg/tree-ssa/pr21559.c: Change back to two expected jump threads.

From-SVN: r198333
2013-04-26 08:01:19 +00:00
Jakub Jelinek
a2e836b2ac Makefile.in (toplev.o): Depend on diagnostic-color.h.
* Makefile.in (toplev.o): Depend on diagnostic-color.h.
	* diagnostic-color.c (should_colorize): Remove _WIN32 version.
	(colorize_init): Add argument to _WIN32 version.
	* toplev.c: Include diagnostic-color.h.
	(process_options): Default to -fdiagnostics-color=auto if
	GCC_COLORS env var is in the environment.
	* common.opt (fdiagnostics-color=): Add Var and Init.
	* doc/invoke.texi (-fdiagnostics-color=): Document that if
	GCC_COLORS env var is in the environment, the default is auto
	rather than never.

	* lib/prune.exp: Add -fdiagnostics-color=never to TEST_ALWAYS_FLAGS.
	* lib/c-compat.exp (compat-use-alt-compiler, compat_setup_dfp): Handle
	-fdiagnostics-color=never option similarly to
	-fno-diagnostics-show-caret option.

From-SVN: r198332
2013-04-26 08:55:56 +02:00
Jakub Jelinek
e78e8a0b19 diagnostic.h (file_name_as_prefix): Add context argument.
* diagnostic.h (file_name_as_prefix): Add context argument.
	* diagnostic.c (file_name_as_prefix): Likewise.  Colorize
	the string as locus.
	* langhooks.c (lhd_print_error_function): Adjust caller.
cp/
	* error.c (cp_print_error_function): Adjust file_name_as_prefix
	caller.

From-SVN: r198331
2013-04-26 08:54:54 +02:00
Lawrence Crowl
013e5ef956 This patch is part of a consolodation of the hash_table patches to the...
This patch is part of a consolodation of the hash_table patches to
the cxx-conversion branch for files not under gcc/config.

Update various hash tables from htab_t to hash_table.
Modify types and calls to match.

* var-tracking.c'emit_note_data_def.vars
* var-tracking.c'shared_hash_def.htab
* var-tracking.c'changed_variables

Fold variable_htab_hash, variable_htab_eq, variable_htab_free
  into new struct variable_hasher.
Add typedef variable_table_type.
Add typedef variable_iterator_type.

Tested on x86_64.


Index: gcc/ChangeLog

	* var-tracking.c (shared_hash_def::htab):
	Change type to hash_table.  Update dependent calls and types.

2013-04-25  Lawrence Crowl  <crowl@google.com>

From-SVN: r198330
2013-04-26 00:30:32 +00:00
Lawrence Crowl
4a8fb1a1de This patch is the main part of a consolodation of the hash_table patches to the...
This patch is the main part of a consolodation of the hash_table
patches to the cxx-conversion branch for files not under gcc/config.

Update various hash tables from htab_t to hash_table.
Modify types and calls to match.

* tree-parloops.c'reduction
* tree-parloops.c'name_to_copy

Fold reduction_info_hash and reduction_info_eq into new struct
reduction_hasher.  Fold name_to_copy_elt_eq and name_to_copy_elt_hash
into new struct name_to_copy_hasher.

* trans-mem.c'tm_log

Fold tm_log_hash, tm_log_eq, tm_log_free into new struct log_entry_hasher.

* trans-mem.c'tm_memopt_value_numbers

Fold tm_memop_hash, tm_memop_eq into new struct tm_memop_hasher.

* tree-ssa-strlen.c'decl_to_stridxlist_htab

Fold decl_to_stridxlist_hash into new struct stridxlist_hasher.

* tree-ssa-loop-ivopts.c'ivopts_data::inv_expr_tab

Fold htab_inv_expr_hash and htab_inv_expr_eq into new struct
iv_inv_expr_hasher.

* tree-ssa-uncprop.c'equiv

Equiv renamed to val_ssa_equiv because of name ambiguity with local variables.

Fold equiv_hash, equiv_eq and equiv_free into new struct val_ssa_equiv_hasher.

Renamed variables equiv_hash_elt to an_equiv_elt because of name ambiguity
with struct type.  Changed equiv_hash_elt_p to an_equiv_elt_p to match.

* tree-ssa-phiopt.c'seen_ssa_names

Fold name_to_bb_hash and name_to_bb_eq into new struct ssa_names_hasher.

* tree-ssa-structalias.c'pointer_equiv_class_table
* tree-ssa-structalias.c'location_equiv_class_table

Fold equiv_class_label_hash and equiv_class_label_eq into new
struct equiv_class_hasher.

* tree-ssa-structalias.c'shared_bitmap_table

Fold shared_bitmap_hash and shared_bitmap_eq into new struct
shared_bitmap_hasher.

* tree-ssa-live.c'var_map_base_init::tree_to_index

New struct tree_int_map_hasher.

* tree-sra.c'candidates

Fold uid_decl_map_hash and uid_decl_map_eq into new struct
uid_decl_hasher.  This change moves the definitions from tree-ssa.c
into tree-sra.c and removes the declarations from tree-flow.h

tree-browser.c

Remove stale declaration of removed TB_parent_eq.
Fix template parameter for base class to match value_type.

gimple.h

Use gimplify_hasher::hash rather than gimple_tree_hash in the
  assertion check.
Change return values to match return type. (I.e. no conversions.)

* graphite-clast-to-gimple.c'ivs_params::newivs_index
* graphite-clast-to-gimple.c'ivs_params::params_index
* graphite-clast-to-gimple.c'print_generated_program::params_index
* graphite-clast-to-gimple.c'gloog::newivs_index
* graphite-clast-to-gimple.c'gloog::params_index
* graphite.c graphite_transform_loops::bb_pbb_mapping
* sese.c copy_bb_and_scalar_dependences::rename_map

Move hash table declarations to a new graphite-htab.h, because they
are used in few places.

Remove unused:

htab_t scop::original_pddrs
SCOP_ORIGINAL_PDDRS

Remove unused:

insert_loop_close_phis
insert_guard_phis
debug_ivtype_map
ivtype_map_elt_info
new_ivtype_map_elt

* gimplify.c'gimplify_ctx::temp_htab

Move struct gimple_temp_hash_elt and struct gimplify_ctx to a new
gimplify-ctx.h, because they are used few places.

* cselib.c'cselib_hash_table
* gcse.c'pre_ldst_table
* gimple-ssa-strength-reduction.c'base_cand_map
* haifa-sched.c'delay_htab
* haifa-sched.c'delay_htab_i2
* ira-color.c'allocno_hard_regs_htab
* ira-costs.c'cost_classes_htab
* loop-invariant.c'merge_identical_invariants::eq
* loop-iv.c'bivs
* loop-unroll.c'opt_info::insns_to_split
* loop-unroll.c'opt_info::insns_with_var_to_expand
* passes.c'name_to_pass_map
* plugin.c'event_tab
* postreload-gcse.c'expr_table
* store-motion.c'store_motion_mems_table
* tree-cfg.c'discriminator_per_locus
* tree-scalar-evolution.c'resolve_mixers::cache
* tree-ssa-dom.c'avail_exprs

Remove unused:
dse.c bitmap clear_alias_sets
dse.c bitmap disqualified_clear_alias_sets
dse.c alloc_pool clear_alias_mode_pool
dse.c dse_step2_spill
dse.c dse_step5_spill
graphds.h htab_t graph::indices

* attribs.c'scoped_attributes::attribute_hash
* bitmap.c'bitmap_desc_hash
* dwarf2cfi.c'trace_index
* dwarf2out.c'break_out_includes::cu_hash_table
* dwarf2out.c'copy_decls_for_unworthy_types::decl_table
* dwarf2out.c'optimize_external_refs::map
* dwarf2out.c'output_comp_unit::extern_map
* dwarf2out.c'output_comdat_type_unit::extern_map
* dwarf2out.c'output_macinfo::macinfo_htab
* dwarf2out.c'optimize_location_lists::htab
* dwarf2out.c'dwarf2out_finish::comdat_type_table
* except.c'ehspec_hash_type
* except.c'assign_filter_values::ttypes
* except.c'assign_filter_values::ehspec
* except.c'sjlj_assign_call_site_values::ar_hash
* except.c'convert_to_eh_region_ranges::ar_hash
* trans-mem.c'tm_new_mem_hash
* tree-browser.c'TB_up_ht
* tree-eh.c'finally_tree

Move the declaration of hash_table <alloc_pool_hasher> alloc_pool_hash
in alloc-pool.c to after the method definitions for its parameter
class.

* ggc-common.c'loc_hash
* ggc-common.c'ptr_hash

Add a new hash_table method elements_with_deleted to meet the needs of
gcc-common.c.

Correct many methods with parameter types compare_type to the correct
value_type.  (Correct code was unlikely to notice the change, but
incorrect code will.)

* tree-complex.c'complex_variable_components
* tree-parloops.c'eliminate_local_variables_stmt::decl_address
* tree-parloops.c'separate_decls_in_region::decl_copies

Move hash table declarations to a new tree-hasher.h, to resolve
compilation dependences and because they are used in few places.

* lto-streamer.h'output_block::string_hash_table
* lto-streamer-in.c'file_name_hash_table
* lto-streamer.c'tree_htab

The struct string_slot moves from data-streamer.h to lto-streamer.h to
resolve compilation dependences.

Tested on x86_64.


Index: gcc/ChangeLog

2013-04-25  Lawrence Crowl  <crowl@google.com>

	* Makefile.in: Update as needed below.

	* alloc-pool.c (static hash_table <alloc_pool_hasher> alloc_pool_hash):
	Move declaration to after the type's method definitons.

	* attribs.c (htab_t scoped_attributes::attribute_hash):
	Change type to hash_table.  Update dependent calls and types.

	* bitmap.c (htab_t bitmap_desc_hash):
	Change type to hash_table.  Update dependent calls and types.

	* cselib.c (htab_t cselib_hash_table):
	Change type to hash_table.  Update dependent calls and types.

	* data-streamer.h (struct string_slot): Move to lto-streamer.h.
	(hash_string_slot_node): Move implementation into lto-streamer.h
	struct string_slot_hasher.
	(eq_string_slot_node): Likewise.

	* data-streamer-out.c: Update output_block::string_hash_table
	dependent calls and types.

	* dwarf2cfi.c (htab_t trace_index):
	Change type to hash_table.  Update dependent calls and types.

	* dwarf2out.c (htab_t break_out_includes::cu_hash_table):
	Change type to hash_table.  Update dependent calls and types.
	(htab_t copy_decls_for_unworthy_types::decl_table): Likewise.
	(htab_t optimize_external_refs::map): Likewise.
	(htab_t output_comp_unit::extern_map): Likewise.
	(htab_t output_comdat_type_unit::extern_map): Likewise.
	(htab_t output_macinfo::macinfo_htab): Likewise.
	(htab_t optimize_location_lists::htab): Likewise.
	(htab_t dwarf2out_finish::comdat_type_table): Likewise.

	* except.c (htab_t ehspec_hash_type):
	Change type to hash_table.  Update dependent calls and types.
	(assign_filter_values::ttypes): Likewise.
	(assign_filter_values::ehspec): Likewise.
	(sjlj_assign_call_site_values::ar_hash): Likewise.
	(convert_to_eh_region_ranges::ar_hash): Likewise.

	* gcse.c (htab_t pre_ldst_table):
	Change type to hash_table.  Update dependent calls and types.

	* ggc-common.c (htab_t saving_htab):
	Change type to hash_table.  Update dependent calls and types.
	(htab_t loc_hash): Likewise.
	(htab_t ptr_hash): Likewise.
	(call_count): Rename ggc_call_count.
	(call_alloc): Rename ggc_call_alloc.
	(loc_descriptor): Rename make_loc_descriptor.
	(add_statistics): Rename ggc_add_statistics.

	* ggc-common.c (saving_htab):
	Change type to hash_table.  Update dependent calls and types.

	* gimple.h (struct gimplify_ctx): Move to gimplify-ctx.h.
	(push_gimplify_context): Likewise.
	(pop_gimplify_context): Likewise.
	(struct gimple_temp_hash_elt): Added.
	(struct gimplify_hasher): Likewise.
	(struct gimplify_ctx.temp_htab):
	Change type to hash_table.  Update dependent calls and types.

	* gimple-fold.c: Include gimplify-ctx.h.

	* gimple-ssa-strength-reduction.c (htab_t base_cand_map):
	Change type to hash_table.  Update dependent calls and types.
	(base_cand_dump_callback): Rename to ssa_base_cand_dump_callback to
	avoid potential global name collision.

	* gimplify.c: Include gimplify-ctx.h.
	(struct gimple_temp_hash_elt): Move to gimplify-ctx.h.
	(htab_t gimplify_ctx::temp_htab):
	Update dependent calls and types for new type hash_table.
	(gimple_tree_hash): Move into gimplify_hasher in gimplify-ctx.h.
	(gimple_tree_eq): Move into gimplify_hasher in gimplify-ctx.h.

	* gimplify-ctx.h: New.
	(struct gimple_temp_hash_elt): Move from gimplify.c.
	(class gimplify_hasher): New.
	(struct gimplify_ctx): Move from gimple.h.
	(htab_t gimplify_ctx::temp_htab):
	Change type to hash_table.  Update dependent calls and types.

	* graphite-clast-to-gimple.c: Include graphite-htab.h.
	(htab_t ivs_params::newivs_index):
	Change type to hash_table.  Update dependent calls and types.
	(htab_t ivs_params::params_index): Likewise.
	(htab_t print_generated_program::params_index): Likewise.
	(htab_t gloog::newivs_index): Likewise.
	(htab_t gloog::params_index): Likewise.

	* graphite.c: Include graphite-htab.h.
	4htab_t graphite_transform_loops::bb_pbb_mapping):
	Change type to hash_table.  Update dependent calls and types.

	* graphite-clast-to-gimple.h: (extern gloog) Move to graphite-htab.h.
	(bb_pbb_map_hash): Fold into bb_pbb_htab_type in graphite-htab.h.
	(eq_bb_pbb_map): Fold into bb_pbb_htab_type in graphite-htab.h.

	* graphite-dependences.c: Include graphite-htab.h.
	(loop_is_parallel_p): Change hash table type of parameter.

	* graphite-htab.h: New.
	(typedef hash_table <bb_pbb_hasher> bb_pbb_htab_type): New.
	(extern find_pbb_via_hash): Move from graphite-poly.h.
	(extern loop_is_parallel_p): Move from graphite-poly.h.
	(extern get_loop_body_pbbs): Move from graphite-poly.h.

	* graphite-poly.h (extern find_pbb_via_hash): Move to graphite-htab.h.
	(extern loop_is_parallel_p): Move to graphite-htab.h.
	(extern get_loop_body_pbbs): Move to graphite-htab.h.

	* haifa-sched.c (htab_t delay_htab):
	Change type to hash_table.  Update dependent calls and types.
	(htab_t delay_htab_i2): Likewise.

	* ira-color.c (htab_t allocno_hard_regs_htab):
	Change type to hash_table.  Update dependent calls and types.

	* ira-costs.c (htab_t cost_classes_htab):
	Change type to hash_table.  Update dependent calls and types.

	* loop-invariant.c (htab_t merge_identical_invariants::eq):
	Change type to hash_table.  Update dependent calls and types.

	* loop-iv.c (htab_t bivs):
	Change type to hash_table.  Update dependent calls and types.

	* loop-unroll.c (htab_t opt_info::insns_to_split):
	Change type to hash_table.  Update dependent calls and types.
	(htab_t opt_info::insns_with_var_to_expand): Likewise.

	* lto-streamer.h (struct string_slot): Move from data-streamer.h
	(struct string_slot_hasher): New.
	(htab_t output_block::string_hash_table):
	Change type to hash_table.  Update dependent calls and types.

	* lto-streamer-in.c (freeing_string_slot_hasher): New.
	(htab_t file_name_hash_table):
	Change type to hash_table.  Update dependent calls and types.

	* lto-streamer-out.c: Update output_block::string_hash_table dependent
	calls and types.

	* lto-streamer.c (htab_t tree_htab):
	Change type to hash_table.  Update dependent calls and types.

	* omp-low.c: Include gimplify-ctx.h.

	* passes.c (htab_t name_to_pass_map):
	Change type to hash_table.  Update dependent calls and types.
	(pass_traverse): Rename to passes_pass_traverse.

	* plugin.c (htab_t event_tab):
	Change type to hash_table.  Update dependent calls and types.

	* postreload-gcse.c (htab_t expr_table):
	Change type to hash_table.  Update dependent calls and types.
	(dump_hash_table_entry): Rename dump_expr_hash_table_entry.

	* sese.c (debug_rename_map_1): Make extern.
	(htab_t copy_bb_and_scalar_dependences::rename_map):
	Change type to hash_table.  Update dependent calls and types.

	* sese.h (extern debug_rename_map): Move to .c file.

	* store-motion.c (htab_t store_motion_mems_table):
	Change type to hash_table.  Update dependent calls and types.

	* trans-mem.c (htab_t tm_new_mem_hash):
	Change type to hash_table.  Update dependent calls and types.

	* tree-browser.c (htab_t TB_up_ht):
	Change type to hash_table.  Update dependent calls and types.

	* tree-cfg.c (htab_t discriminator_per_locus):
	Change type to hash_table.  Update dependent calls and types.

	* tree-complex.c: Include tree-hasher.h
	(htab_t complex_variable_components):
	Change type to hash_table.  Update dependent calls and types.

	* tree-eh.c (htab_t finally_tree):
	Change type to hash_table.  Update dependent calls and types.

	* tree-flow.h (extern int_tree_map_hash): Moved into tree-hasher
	struct int_tree_hasher.
	(extern int_tree_map_eq): Likewise.
	(uid_decl_map_hash): Removed.
	(extern decl_tree_map_eq): Likewise.

	* tree-hasher.h: New.
	(struct int_tree_hasher): New.
	(typedef int_tree_htab_type): New.

	* tree-inline.c: Include gimplify-ctx.h.

	* tree-mudflap.c: Include gimplify-ctx.h.

	* tree-parloops.c: Include tree-hasher.h.
	(htab_t eliminate_local_variables_stmt::decl_address):
	Change type to hash_table.  Update dependent calls and types.
	(htab_t separate_decls_in_region::decl_copies): Likewise.

	* tree-scalar-evolution.c (htab_t resolve_mixers::cache):
	Change type to hash_table.  Update dependent calls and types.

	* tree-sra.c (candidates):
	Change type to hash_table.  Update dependent calls and types.

	* tree-ssa.c (int_tree_map_eq): Moved into struct int_tree_hasher
	in tree-flow.h.
	(int_tree_map_hash): Likewise.

	* tree-ssa-dom.c (htab_t avail_exprs):
	Change type to hash_table.  Update dependent calls and types.

	* tree-ssa-live.c (var_map_base_init::tree_to_index):
	Change type to hash_table.  Update dependent calls and types.

	* tree-ssa-loop-ivopts.c (struct ivopts_data.inv_expr_tab):
	Change type to hash_table.  Update dependent calls and types.

	* tree-ssa-phiopt.c (seen_ssa_names):
	Change type to hash_table.  Update dependent calls and types.

	* tree-ssa-strlen.c (decl_to_stridxlist_htab):
	Change type to hash_table.  Update dependent calls and types.

	* tree-ssa-uncprop.c (equiv):
	Change type to hash_table.  Update dependent calls and types.

From-SVN: r198329
2013-04-26 00:28:35 +00:00
GCC Administrator
11dae3ad79 Daily bump.
From-SVN: r198328
2013-04-26 00:16:40 +00:00
Joseph Myers
c4400c9e63 * de.po, sv.po, vi.po: Update.
From-SVN: r198323
2013-04-26 00:05:08 +01:00
Jakub Jelinek
c5a4400402 re PR rtl-optimization/57003 (gcc breaks -O2 optimization with Wine(64) - links/info/bisect of commits included)
PR rtl-optimization/57003
	* regcprop.c (copyprop_hardreg_forward_1): If ksvd.ignore_set_reg,
	call note_stores with kill_clobbered_value callback again after
	killing regs_invalidated_by_call.

	* gcc.target/i386/pr57003.c: New test.

From-SVN: r198320
2013-04-25 23:49:22 +02:00
Janne Blomqvist
9c818d13d4 PR 57028 Bootstrap regression wrt zlib.
2013-04-25  Janne Blomqvist  <jb@gcc.gnu.org>

        PR bootstrap/57028
        * Make-lang.in (f951): Link in ZLIB.
        (CFLAGS-fortran/module.o): Add zlib include directory.

From-SVN: r198318
2013-04-25 22:16:46 +03:00
James Greenhalgh
09962a4aa3 [AArch64] Describe the 'BSL' RTL pattern more accurately.
gcc/
	* config/aarch64/aarch64-simd.md
	(aarch64_simd_bsl<mode>_internal): Rewrite RTL to not use UNSPEC_BSL.
	(aarch64_simd_bsl<mode>): Likewise.
	* config/aarch64/iterators.md (unspec): Remove UNSPEC_BSL.

From-SVN: r198316
2013-04-25 16:54:32 +00:00
Jason Merrill
4cd123ed43 re PR c++/57064 ([clarification requested] Which overload with ref-qualifier should be called?)
PR c++/57064
	* g++.dg/cpp0x/ref-qual9.C: New.

From-SVN: r198311
2013-04-25 12:24:49 -04:00
Jason Merrill
17365662e4 re PR c++/56859 (alignas() fails in template)
PR c++/56859
	* typeck.c (cxx_alignas_expr): Handle value-dependence properly.

From-SVN: r198310
2013-04-25 12:24:42 -04:00
Jason Merrill
4794d4b5fe re PR c++/50261 ([C++0x] ICE on brace-initialize an array member)
PR c++/50261
	* init.c (perform_member_init): Call reshape_init.

From-SVN: r198309
2013-04-25 12:24:33 -04:00
Marek Polacek
ea28bb0b9d re PR tree-optimization/57066 (std::logb(-inf) returns wrong value)
PR tree-optimization/57066
        * builtins.c (fold_builtin_logb): Return +Inf for -Inf.

        * gcc.dg/torture/builtin-logb-1.c: Adjust testcase.

From-SVN: r198308
2013-04-25 15:51:57 +00:00
James Greenhalgh
96659611d2 [AArch64] Change iterator for neg<mode>2 from VDQM to VDQ.
gcc/
	* config/aarch64/aarch64-simd.md (neg<mode>2): Use VDQ iterator.

From-SVN: r198306
2013-04-25 12:49:39 +00:00
James Greenhalgh
9697e6201f [AArch64] Make vabs<q>_f<32, 64> a tree/gimple intrinsic.
gcc/
	* config/aarch64/aarch64-builtins.c
	(aarch64_fold_builtin): New.
	* config/aarch64/aarch64-protos.h (aarch64_fold_builtin): New.
	* config/aarch64/aarch64.c (TARGET_FOLD_BUILTIN): Define.
	* config/aarch64/aarch64-simd-builtins.def (abs): New.
	* config/aarch64/arm_neon.h
	(vabs<q>_<f32, 64>): Implement using __builtin_aarch64_fabs.

From-SVN: r198305
2013-04-25 12:47:18 +00:00
James Greenhalgh
0ac198d3ba [AArch64] Implement TARGET_GIMPLE_FOLD_BUILTIN for aarch64 backend.
gcc/
	* config/aarch64/aarch64-builtins.c
	(aarch64_gimple_fold_builtin): New.
	* config/aarch64/aarch64-protos.h (aarch64_gimple_fold_builtin): New.
	* config/aarch64/aarch64-simd-builtins.def (addv): New.
	* config/aarch64/aarch64-simd.md (addpv4sf): New.
	(addvv4sf): Update.
	* config/aarch64/aarch64.c (TARGET_GIMPLE_FOLD_BUILTIN): Define.

gcc/testsuite/
	* gcc.target/aarch64/vaddv-intrinsic.c: New.
	* gcc.target/aarch64/vaddv-intrinsic-compile.c: Likewise.
	* gcc.target/aarch64/vaddv-intrinsic.x: Likewise.



Co-Authored-By: Tejas Belagod <tejas.belagod@arm.com>

From-SVN: r198304
2013-04-25 12:44:25 +00:00
Naveen H.S
58cff58c8e gcc/
2013-04-25  Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>

	* config/aarch64/aarch64.md 
	(*cmp_swp_<optab><ALLX:mode>_shft_<GPI:mode>): New pattern.

gcc/testsuite/

2013-04-25  Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>

	* gcc.target/aarch64/cmp.c: New.

From-SVN: r198303
2013-04-25 12:21:13 +00:00
Naveen H.S
7e0228bf2a aarch64.md (*ngc<mode>): New pattern.
gcc/

2013-04-25  Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>

	* config/aarch64/aarch64.md (*ngc<mode>): New pattern.
	(*ngcsi_uxtw): New pattern.

gcc/testsuite/

2013-04-25  Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>

	* gcc.target/aarch64/ngc.c: New.

From-SVN: r198302
2013-04-25 11:55:05 +00:00
Arnaud Charlet
23db309f6e Minor reformatting.
From-SVN: r198301
2013-04-25 12:58:18 +02:00
Arnaud Charlet
af9dcda0f6 * gcc-interface/Makefile.in (ADA_EXCLUDE_SRCS): Exclude s-init.ad{s,b}
From-SVN: r198300
2013-04-25 12:57:43 +02:00
Arnaud Charlet
597ecd21e8 Update dependencies.
From-SVN: r198299
2013-04-25 12:56:07 +02:00
Kyrylo Tkachov
5819f96f44 arm.c (neon_builtin_type_mode): Add T_V4HF.
2013-04-25  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
            Julian Brown  <julian@codesourcery.com>

	* config/arm/arm.c (neon_builtin_type_mode): Add T_V4HF.
	(TB_DREG): Add T_V4HF.
	(v4hf_UP): New macro.
	(neon_itype): Add NEON_FLOAT_WIDEN, NEON_FLOAT_NARROW.
	(arm_init_neon_builtins): Handle NEON_FLOAT_WIDEN,
	NEON_FLOAT_NARROW.
	Handle initialisation of V4HF. Adjust initialisation of reinterpret
	built-ins.
	(arm_expand_neon_builtin): Handle NEON_FLOAT_WIDEN,
	NEON_FLOAT_NARROW.
	(arm_vector_mode_supported_p): Handle V4HF.
	(arm_mangle_map): Handle V4HFmode.
	* config/arm/arm.h (VALID_NEON_DREG_MODE): Add V4HF.
	* config/arm/arm_neon_builtins.def: Add entries for
	vcvtv4hfv4sf, vcvtv4sfv4hf.
	* config/arm/neon.md (neon_vcvtv4sfv4hf): New pattern.
	(neon_vcvtv4hfv4sf): Likewise.
	* config/arm/neon-gen.ml: Handle half-precision floating point
	features.
	* config/arm/neon-testgen.ml: Handle Requires_FP_bit feature.
	* config/arm/arm_neon.h: Regenerate.
	* config/arm/neon.ml (type elts): Add F16.
	(type vectype): Add T_float16x4, T_floatHF.
	(type vecmode): Add V4HF.
	(type features): Add Requires_FP_bit feature.
	(elt_width): Handle F16.
	(elt_class): Likewise.
	(elt_of_class_width): Likewise.
	(mode_of_elt): Refactor.
	(type_for_elt): Handle F16, fix error messages.
	(vectype_size): Handle T_float16x4.
	(vcvt_sh): New function.
	(ops): Add entries for vcvt_f16_f32, vcvt_f32_f16.
	(string_of_vectype): Handle T_floatHF, T_float16, T_float16x4.
	(string_of_mode): Handle V4HF.
	* doc/arm-neon-intrinsics.texi: Regenerate.

2013-04-25  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* lib/target-supports.exp
	(check_effective_target_arm_neon_fp16_ok_nocache): New procedure.
	(check_effective_target_arm_neon_fp16_ok): Likewise.
	(add_options_for_arm_neon_fp16): Likewise.
	* gcc.target/arm/neon/vcvtf16_f32.c: New test. Generated.
	* gcc.target/arm/neon/vcvtf32_f16.c: Likewise.

Co-Authored-By: Julian Brown <julian@codesourcery.com>

From-SVN: r198298
2013-04-25 10:54:39 +00:00
Arnaud Charlet
fd8b8c01c3 [multiple changes]
2013-04-25  Hristian Kirtchev  <kirtchev@adacore.com>

	* checks.adb (Apply_Predicate_Check): Update the comment associated
	with the call to Check_Expression_Against_Static_Predicate.
	* sem_ch3.adb (Analyze_Object_Declaration): Update the comment
	associated with the call to Check_Expression_Against_Static_Predicate.
	* sem_util.adb (Check_Expression_Against_Static_Predicate):
	Broaden the check from a static expression to an expression with
	a known value at compile time.
	* sem_util.ads (Check_Expression_Against_Static_Predicate): Update
	comment on usage.

2013-04-25  Thomas Quinot  <quinot@adacore.com>

	* exp_attr.adb (Expand_N_Attribute_Reference, cases Position,
	First_Bit, and Last_Bit): Fix incorrect test in implementation of
	RM 2005 13.5.2(3/2).

2013-04-25  Claire Dross  <dross@adacore.com>

	* a-cfhase.adb, a-cfhase.ads, a-cforma.adb, a-cforma.ads, a-cfhama.adb,
	a-cfhama.ads, a-cforse.adb, a-cforse.ads, a-cofove.adb, a-cofove.ads
	(Query_Element): Removed.
	(Update_Element): Removed.
	(Insert): The version with no New_Item specified is removed.
	(Iterate): Removed.
	(Write): Removed.
	(Read): Removed.
	Every check of fields Busy and Lock has been removed.

2013-04-25  Robert Dewar  <dewar@adacore.com>

	* sem_prag.adb (Analyze_Pragma, case Contract_Cases): Remove
	call to S14_Pragma (Find_Related_Subprogram): Require proper
	placement in subprogram body (Find_Related_Subprogram): Detect
	duplicates for all cases (Find_Related_Subprogram): Handle case
	of spec nested inside body.

From-SVN: r198297
2013-04-25 12:54:33 +02:00
Arnaud Charlet
f197d2f293 [multiple changes]
2013-04-25  Arnaud Charlet  <charlet@adacore.com>

	* par-prag.adb: Fix typo.

2013-04-25  Hristian Kirtchev  <kirtchev@adacore.com>

	* checks.adb (Apply_Predicate_Check): If the type has a static
	predicate and the expression is also static, check whether the
	expression satisfies the predicate.
	* sem_ch3.adb (Analyze_Object_Declaration): If the type has a
	static predicate and the expression is also static, see if the
	expression satisfies the predicate.
	* sem_util.adb: Alphabetize several routines.
	(Check_Expression_Against_Static_Predicate): New routine.
	* sem_util.ads (Check_Expression_Against_Static_Predicate): New routine.

From-SVN: r198296
2013-04-25 12:51:19 +02:00
Robert Dewar
bbee5cc4b0 gnat_rm.texi: Document Reason argument for pragma Warnings.
2013-04-25  Robert Dewar  <dewar@adacore.com>

	* gnat_rm.texi: Document Reason argument for pragma Warnings.
	* par-prag.adb: Handle Reason parameter for pragma Warnings.
	* sem_prag.adb (Analyze_Pragma, case Warnings): Allow Reason argument.
	* snames.ads-tmpl (Name_Reason): New name entry.

From-SVN: r198295
2013-04-25 12:49:26 +02:00
Arnaud Charlet
2995860f56 [multiple changes]
2013-04-25  Yannick Moy  <moy@adacore.com>

	* exp_spark.adb (Expand_SPARK_N_In): Remove procedure.
	(Expand_SPARK): Remove special expansion for membership tests.

2013-04-25  Hristian Kirtchev  <kirtchev@adacore.com>

	* exp_ch3.adb (Expand_N_Object_Declaration): Update all places
	that should use constant Base_Typ. When building an invariant
	check, account for invariants coming from the base type. Prevent
	the creation of a junk invariant check when the related object
	is of an array type and it is initialized with an aggregate.
	* exp_util.adb (Make_Invariant_Call): Typ is now a variable. Use
	the base type to create an invariant call when the type of the
	expression is a composite subtype.

2013-04-25  Vasiliy Fofanov  <fofanov@adacore.com>

	* a-cborse.adb: Fix minor typo.

2013-04-25  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch6.adb (Different_Generic_Profile): A spec and body
	match in an instance if a subtype declaration that renames a
	generic actual with the same name appears between spec and body.

From-SVN: r198294
2013-04-25 12:48:04 +02:00
Arnaud Charlet
49eef89f35 [multiple changes]
2013-04-25  Robert Dewar  <dewar@adacore.com>

	* sem_util.adb: Minor reformatting.

2013-04-25  Ed Schonberg  <schonberg@adacore.com>

	* exp_aggr.adb (Expand_N_Aggregate): Use special circuitry to
	fold strings with a single others choice only if there are no
	expressions in the aggregate.

2013-04-25  Arnaud Charlet  <charlet@adacore.com>

	* gnat_ugn.texi: Update doc on Ada 2012 default mode.

From-SVN: r198293
2013-04-25 12:46:18 +02:00
Arnaud Charlet
8b404dac66 [multiple changes]
2013-04-25  Hristian Kirtchev  <kirtchev@adacore.com>

	* exp_ch6.adb: Add with and use clause for Stringt.
	(Expand_Contract_Cases): Moved from sem_ch6. Add formal parameters
	Decls and Stmts along with comments on their usage.
	* exp_ch6.ads (Expand_Contract_Cases): Moved from sem_ch6.
	* sem_ch6.adb (Expand_Contract_Cases): Moved to exp_ch6.
	(Process_Contract_Cases): Update the call to Expand_Contract_Cases.

2013-04-25  Ed Schonberg  <schonberg@adacore.com>

	* gnat_rm.texi: Minor editing, to clarify use of dimension aspects.
	* sem_util.adb (Is_OK_Variable_For_Out_Formal): Reject an
	aggregate for a packed type, which may be converted into an
	unchecked conversion of an object.

From-SVN: r198292
2013-04-25 12:42:01 +02:00
Robert Dewar
7be8338dbc sem_prag.adb: Minor code reorganization (correct misspelling Restiction).
2013-04-25  Robert Dewar  <dewar@adacore.com>

	* sem_prag.adb: Minor code reorganization (correct misspelling
	Restiction).
	* sem_util.adb, aspects.ads, sem_ch6.adb: Minor reformatting.
	* gnat_rm.texi: Document impl-defined aspects.
	* sem_dim.adb, sem_dim.ads, gnat_ugn.texi, s-dimmks.ads: Minor
	reformatting.

From-SVN: r198291
2013-04-25 12:39:36 +02:00