1. 26 Apr, 2013 2 commits
    • This patch is the main part of a consolodation of the hash_table patches to the... · 4a8fb1a1
      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
      Lawrence Crowl committed
    • Daily bump. · 11dae3ad
      From-SVN: r198328
      GCC Administrator committed
  2. 25 Apr, 2013 38 commits
    • * de.po, sv.po, vi.po: Update. · c4400c9e
      From-SVN: r198323
      Joseph Myers committed
    • re PR rtl-optimization/57003 (gcc breaks -O2 optimization with Wine(64) -… · c5a44004
      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
      Jakub Jelinek committed
    • PR 57028 Bootstrap regression wrt zlib. · 9c818d13
      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
      Janne Blomqvist committed
    • [AArch64] Describe the 'BSL' RTL pattern more accurately. · 09962a4a
      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
      James Greenhalgh committed
    • re PR c++/57064 ([clarification requested] Which overload with ref-qualifier should be called?) · 4cd123ed
      	PR c++/57064
      	* g++.dg/cpp0x/ref-qual9.C: New.
      
      From-SVN: r198311
      Jason Merrill committed
    • re PR c++/56859 (alignas() fails in template) · 17365662
      	PR c++/56859
      	* typeck.c (cxx_alignas_expr): Handle value-dependence properly.
      
      From-SVN: r198310
      Jason Merrill committed
    • re PR c++/50261 ([C++0x] ICE on brace-initialize an array member) · 4794d4b5
      	PR c++/50261
      	* init.c (perform_member_init): Call reshape_init.
      
      From-SVN: r198309
      Jason Merrill committed
    • re PR tree-optimization/57066 (std::logb(-inf) returns wrong value) · ea28bb0b
      	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
      Marek Polacek committed
    • [AArch64] Change iterator for neg<mode>2 from VDQM to VDQ. · 96659611
      gcc/
      	* config/aarch64/aarch64-simd.md (neg<mode>2): Use VDQ iterator.
      
      From-SVN: r198306
      James Greenhalgh committed
    • [AArch64] Make vabs<q>_f<32, 64> a tree/gimple intrinsic. · 9697e620
      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
      James Greenhalgh committed
    • [AArch64] Implement TARGET_GIMPLE_FOLD_BUILTIN for aarch64 backend. · 0ac198d3
      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
      James Greenhalgh committed
    • gcc/ · 58cff58c
      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
      Naveen H.S committed
    • aarch64.md (*ngc<mode>): New pattern. · 7e0228bf
      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
      Naveen H.S committed
    • Minor reformatting. · 23db309f
      From-SVN: r198301
      Arnaud Charlet committed
    • Update dependencies. · 597ecd21
      From-SVN: r198299
      Arnaud Charlet committed
    • arm.c (neon_builtin_type_mode): Add T_V4HF. · 5819f96f
      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
      Kyrylo Tkachov committed
    • [multiple changes] · fd8b8c01
      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
      Arnaud Charlet committed
    • [multiple changes] · f197d2f2
      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
      Arnaud Charlet committed
    • gnat_rm.texi: Document Reason argument for pragma Warnings. · bbee5cc4
      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
      Robert Dewar committed
    • [multiple changes] · 2995860f
      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
      Arnaud Charlet committed
    • [multiple changes] · 49eef89f
      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
      Arnaud Charlet committed
    • [multiple changes] · 8b404dac
      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
      Arnaud Charlet committed
    • sem_prag.adb: Minor code reorganization (correct misspelling Restiction). · 7be8338d
      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
      Robert Dewar committed
    • [multiple changes] · f40f731b
      2013-04-25  Hristian Kirtchev  <kirtchev@adacore.com>
      
      	* einfo.adb (Set_Abstract_States): The attribute now applies
      	to generic packages.
      	* sem_ch4.adb (Referenced): Moved to sem_util.
      	* sem_ch7.adb (Unit_Requires_Body): A [generic] package with
      	a non-null abstract state needs a body.
      	* sem_prag.adb (Analyze_Depends_In_Decl_Part): Update the calls
      	to Collect_Subprogram_Inputs_Outputs.
      	(Analyze_Global_Item): Verify the proper usage of an item with mode
      	In_Out or Output relative to the enclosing context.
      	(Analyze_Pragma): Abstract_State can now be applied to a generic
      	package. Do not reset the Analyzed flag for pragmas Depends and Global
      	as this is not needed.
      	(Appears_In): Moved to library level.
      	(Check_Mode_Restiction_In_Enclosing_Context): New routine.
      	(Collect_Subprogram_Inputs_Outputs): Moved to library level. Add
      	formal parameters Subp_Id, Subp_Inputs, Subp_Outputs and Global
      	seen along with comments on usage.
      	* sem_util.ads, sem_util.adb (Referenced): New routine.
      
      2013-04-25  Hristian Kirtchev  <kirtchev@adacore.com>
      
      	* sem_ch6.adb (Expand_Contract_Cases): Generate
      	detailed error messages only when switch -gnateE is in effect.
      
      2013-04-25  Yannick Moy  <moy@adacore.com>
      
      	* sem_attr.adb (Analyze_Attribute): Do not issue
      	an error for a possibly misplaced 'Result or 'Old attribute when
      	analyzing the aspect.
      
      From-SVN: r198290
      Arnaud Charlet committed
    • sem_ch12.adb, [...]: Minor reformatting. · d1ec4768
      2013-04-25  Robert Dewar  <dewar@adacore.com>
      
      	* sem_ch12.adb, sem_util.adb, sem_ch4.adb: Minor reformatting.
      
      From-SVN: r198289
      Robert Dewar committed
    • [multiple changes] · 57081559
      2013-04-25  Hristian Kirtchev  <kirtchev@adacore.com>
      
      	* sem_ch4.adb (Analyze_Quantified_Expression):
      	Add local variable Loop_Id. Verify that the loop variable
      	is used within the condition of the quantified expression.
      	(Referenced): New routine.
      
      2013-04-25  Hristian Kirtchev  <kirtchev@adacore.com>
      
      	* sem_case.adb (Analyze_Choices): Enhance the error message
      	given on a bad use of subtype predicate.
      	* sem_ch5.adb (Analyze_Loop_Parameter_Specification): Enhance
      	the error message given on a bad use of subtype predicate.
      	* sem_util.adb (Bad_Predicated_Subtype_Use): Add formal parameter
      	Suggest_Static. Emit an extra error message advising how to
      	remedy the bad use of the predicate if the context warrants it.
      	* sem_util.ads (Bad_Predicated_Subtype_Use): Add formal parameter
      	Suggest_Static along with a comment explaining its usage.
      
      2013-04-25  Ed Schonberg  <schonberg@adacore.com>
      
      	* sem_disp.adb (Check_Dispatching_Operation): Further refinement
      	to checks for AI05-0125: the check for a hidden primitive that
      	may be overridden by the new declaration only applies if the
      	hidden operation is never declared. This is not the case if the
      	operation is declared in a parent unit.
      
      From-SVN: r198288
      Arnaud Charlet committed
    • [multiple changes] · 0812b84e
      2013-04-25  Robert Dewar  <dewar@adacore.com>
      
      	* debug.adb: Remove d.X and d.Y entries and documentation.
      	* exp_ch4.adb (Expand_N_If_Expression): Remove special code used
      	if expression with actions not available (now always available).
      	(Expand_Short_Circuit_Operator): Same change.
      	* gnat1drv.adb (Adjust_Global_Switches) Remove setting
      	Use_Expression_With_Actions flag, since this is now obsolete.
      	* opt.ads (Use_Expression_Actions): Removed (always True now).
      	* sinfo.ads: Minor comment updates.
      
      2013-04-25  Ed Schonberg  <schonberg@adacore.com>
      
      	* sem_ch12.adb (Check_Generic_Actuals): If an actual is an array
      	subtype whose base type is currently private, install full view
      	when compiling instance body.
      
      2013-04-25  Ed Schonberg  <schonberg@adacore.com>
      
      	* sem_disp.adb (Check_Dispatching_Operation): Refine checks for
      	AI05-0125: the check for a hidden primitive that may be overridden
      	by the new declaration is only performed if the declaration comes
      	from source, and it must carry an explicit overriding indicator.
      
      2013-04-25  Hristian Kirtchev  <kirtchev@adacore.com>
      
      	* einfo.adb (Abstract_States): The attribute now applies to
      	generic packages.
      	* sem_ch3.adb (Analyze_Object_Declaration): Check whether an
      	object declaration introduces an illegal hidden state.
      	* sem_prag.adb (Analyze_Abstract_State): Check whether a state
      	declaration introduces an illegal hidden state.
      	* sem_util.ads, sem_util.adb (Check_No_Hidden_State): New routine.
      
      2013-04-25  Ed Schonberg  <schonberg@adacore.com>
      
      	* exp_ch6.adb (Is_Build_In_Place_Function_Call): The call may
      	be to a protected function, in which case the name in the call
      	is a selected component.
      
      2013-04-25  Hristian Kirtchev  <kirtchev@adacore.com>
      
      	* sem_ch4.adb (Analyze_Quantified_Expression):
      	Warn on a suspicious use of quantifier "some" when "all" was meant.
      	(No_Else_Or_Trivial_True): New routine.
      
      From-SVN: r198287
      Arnaud Charlet committed
    • [multiple changes] · 1355d373
      2013-04-25  Robert Dewar  <dewar@adacore.com>
      
      	* einfo.ads, einfo.adb: Put back with/use for Namet.
      	(Get_Pragma): New name (wi new spec) for Find_Pragma.
      	* sem_ch6.adb: Change name Find_Pragma to Get_Pragma with
      	different interface.
      
      2013-04-25  Ed Schonberg  <schonberg@adacore.com>
      
      	* sem_ch3.adb (Is_Visible_Component): In an instance all
      	components are visible.
      
      From-SVN: r198286
      Arnaud Charlet committed
    • [multiple changes] · 7271429c
      2013-04-25  Matthew Heaney  <heaney@adacore.com>
      
      	* a-rbtgbo.adb, a-crbtgo.adb (Generic_Equal): do not test for
      	tampering when container empty.
      	* a-crbtgk.adb (Ceiling, Find, Floor): ditto.
      	(Generic_Conditional_Insert, Generic_Conditional_Insert_With_Hint):
      	ditto.
      
      2013-04-25  Ed Schonberg  <schonberg@adacore.com>
      
      	* par-ch12.adb: Move aspects from package specification to
      	generic package declaration.
      	* sem_ch12.adb: Analyze aspect specifications before building
      	and analyzing the generic copy, so that the generated pragmas
      	are properly taken into account.
      	* sem_ch13.adb: For compilation unit aspects that apply to a
      	generic package declaration, insert corresponding pragmas ahead
      	of visible declarations.
      	* sprint.adb: Display properly the aspects of a generic type
      	declaration.
      
      2013-04-25  Robert Dewar  <dewar@adacore.com>
      
      	* frontend.adb: Minor reformatting.
      
      2013-04-25  Ed Schonberg  <schonberg@adacore.com>
      
      	* einfo.ads: Extend documentation on use of Is_Private_Ancestor
      	for untagged types.
      	* sem_ch3.adb (Is_Visible_Component): Refine predicate for the
      	case of untagged types derived from private types, to reject
      	illegal selected components.
      
      From-SVN: r198285
      Arnaud Charlet committed
    • [multiple changes] · a5226d6c
      2013-04-25  Gary Dismukes  <dismukes@adacore.com>
      
      	* sem_util.adb (Is_Dependent_Component_Of_Mutable_Object): Test
      	for case of selecting from an unexpanded implicit dereference
      	and do not make a recursive call on such a prefix.
      
      2013-04-25  Doug Rupp  <rupp@adacore.com>
      
      	* targparm.adb (VXF{_Str}): New tag for vaxfloat.
      	(Get_Target_Parameters): Handle VXF tag.
      	* targparm.ads (VAX_Float_On_Target): New boolean.
      	* system-vms-ia64.ads (VAX_Float): New boolean.
      	* frontend.adb (Frontend): Handle VAX float boolean.
      
      From-SVN: r198284
      Arnaud Charlet committed
    • einfo.ads, einfo.adb: Remove with and use clauses for Namet. · 42fdc85b
      2013-04-25  Hristian Kirtchev  <kirtchev@adacore.com>
      
      	* einfo.ads, einfo.adb: Remove with and use clauses for Namet.
      	(Find_Pragma): New routine.
      	* sem_util.ads, sem_util.adb (Find_Pragma): Moved to einfo.
      
      2013-04-25  Hristian Kirtchev  <kirtchev@adacore.com>
      
      	* sem_ch13.adb (Add_Call): Do not capture the nature of the inherited
      	predicate.
      	(Add_Predicates): Save the static predicate for diagnostics and error
      	reporting purposes.
      	(Process_PPCs): Remove local variables Dynamic_Predicate_Present and
      	Static_Predicate_Present. Add local variable Static_Pred. Ensure that
      	the expression of a static predicate is static.
      
      From-SVN: r198283
      Hristian Kirtchev committed
    • [multiple changes] · 99a71c65
      2013-04-25  Hristian Kirtchev  <kirtchev@adacore.com>
      
      	* einfo.adb (Is_Ghost_Subprogram): Remove useless code.
      
      2013-04-25  Robert Dewar  <dewar@adacore.com>
      
      	* gnat_rm.texi: Minor addition of index entry.
      
      2013-04-25  Hristian Kirtchev  <kirtchev@adacore.com>
      
      	* sem_ch6.adb (Check_Access_Invariants): Test whether an
      	invariant procedure is empty before generating a call to it.
      	(Has_Enabled_Predicate): New routine.
      	(Has_Null_Body): New routine.
      	(Process_PPCs): Test whether an invariant procedure is
      	empty before generating a call to it. Test whether predicates are
      	enabled for a particular type before generating a predicate call.
      	* sem_util.ads, sem_util.adb (Find_Pragma): New routine.
      
      From-SVN: r198282
      Arnaud Charlet committed
    • sem_ch7.adb, [...]: Minor reformatting. · 09a078a1
      2013-04-25  Robert Dewar  <dewar@adacore.com>
      
      	* sem_ch7.adb, einfo.adb, repinfo.adb, snames.adb-tmpl,
      	snames.ads-tmpl: Minor reformatting.
      
      From-SVN: r198281
      Robert Dewar committed
    • sem_ch7.adb: Minor reformatting. · 0d1f9820
      2013-04-25  Thomas Quinot  <quinot@adacore.com>
      
      	* sem_ch7.adb: Minor reformatting.
      
      From-SVN: r198280
      Thomas Quinot committed
    • re PR libstdc++/57065 (incorrect default allocator template for debug and profile unordered_map) · 03d7aff6
      2013-04-25  Paolo Carlini  <paolo.carlini@oracle.com>
      
      	PR libstdc++/57065
      	* include/debug/unordered_map (unordered_map, unordered_multimap):
      	Fix default allocator type.
      	* include/profile/unordered_map (unordered_map, unordered_multimap):
      	Likewise.
      	* include/bits/unordered_map.h: Fix comments.
      
      From-SVN: r198279
      Paolo Carlini committed
    • [AArch64] Fix printf format warning in aarch64_print_operand · 1ef395e4
      gcc/
      	* config/aarch64/aarch64.c (aarch64_print_operand): Fix asm_fprintf
      	format specifier in 'X' case.
      
      From-SVN: r198278
      James Greenhalgh committed
    • [multiple changes] · 9f6aaa5c
      2013-04-25  Robert Dewar  <dewar@adacore.com>
      
      	* gnat_rm.texi: Minor fix to Loop_Variant doc (Loop_Entry allowed).
      	* s-tarest.adb: Minor reformatting.
      
      2013-04-25  Hristian Kirtchev  <kirtchev@adacore.com>
      
      	* aspects.ads, aspects.adb: Remove aspect Ghost from all relevant
      	tables.
      	* einfo.adb: Remove with and use clause for Aspects.
      	(Is_Ghost_Function): Removed.
      	(Is_Ghost_Entity): New routine.
      	(Is_Ghost_Subprogram): New routine.
      	* einfo.ads: Remove synthesized attribute Is_Ghost_Function
      	along with its uses in entities.  Add synthesized attributes
      	Is_Ghost_Entity and Is_Ghost_Subprogram along with uses in related
      	entities.
      	(Is_Ghost_Function): Removed.
      	(Is_Ghost_Entity): New routine.
      	(Is_Ghost_Subprogram): New routine.
      	* par-prag.adb: Remove pragma Ghost from the processing machinery.
      	* repinfo.adb (List_Mechanisms): Add a value for convention Ghost.
      	* sem_attr.adb (Analyze_Access_Attribute): Update the check
      	for ghost subprograms.
      	* sem_ch4.adb (Analyze_Call): Update the check for calls
      	to ghost subprograms.
      	(Check_Ghost_Function_Call): Removed.
      	(Check_Ghost_Subprogram_Call): New routine.
      	* sem_ch6.adb (Check_Convention): Rewritten.
      	(Check_Overriding_Indicator): Remove the check for overriding
      	ghost functions.
      	(Convention_Of): New routine.
      	* sem_ch12.adb (Preanalyze_Actuals): Update the check for ghost
      	generic actual subprograms.
      	* sem_mech.adb (Set_Mechanisms): Add an entry for convention Ghost.
      	* sem_prag.adb: Remove the value for pragma Ghost from
      	table Sig_Flags.
      	(Analyze_Pragma): Remove the processing for pragma Ghost.
      	(Process_Convention): Emit an error when a ghost
      	subprogram attempts to override.
      	(Set_Convention_From_Pragma): Emit an error when a ghost subprogram
      	attempts to override.
      	* sinfo.ads: Clarify the usage of field Label_Construct.
      	* snames.adb-tmpl (Get_Convention_Id): Add an entry for
      	predefined name Ghost.
      	(Get_Convention_Name): Add an entry for convention Ghost.
      	* snames.ads-tmpl: Move predefined name Ghost to the sublist
      	denoting conventions. Add convention id Ghost. Remove pragma
      	id Ghost.
      
      2013-04-25  Ed Schonberg  <schonberg@adacore.com>
      
      	* sem_ch7.adb (Swap_Private_Dependents): Do no recurse on child
      	units if within a generic hierarchy.
      
      From-SVN: r198275
      Arnaud Charlet committed