1. 06 Nov, 2012 40 commits
    • Prevent "illegal" block sharing within transactions. · 7ec88701
              * tree-ssa-tail-merge.c (find_duplicate): Do not consider
              is_tm_ending_fndecl calls as mergable.
      
      From-SVN: r193268
      Richard Henderson committed
    • common.opt (gno-split-dwarf, [...]): New switches. · 99ea153e
      gcc/ChangeLog
      
      2012-11-06  Sterling Augustine <saugustine@google.com>
                  Cary Coutant <ccoutant@google.com>
      
      	* common.opt (gno-split-dwarf, gsplit-dwarf): New switches.
      	* doc/invoke.texi (Debugging Options): Document them.
      	* gcc.c (replace_extension_spec_func):  New function.
      	(ASM_FINAL_SPEC): Adjust.
      	(static_spec_functions): Add new field for replace-extension.
      	(check_live_switch): Adjust comment.  Add case for 'g'.
      	* opts.c (finish_options): Set x_debug_generate_pub_sections based on
      	x_dwarf_split_debug_info.
      	(common_handle_option): Add case for OPT_gsplit_dwarf.
      	* dwarf2out.h (addr_table_entry_struct): Add forward declaration.
      	(dw_val_struct): Add val_entry pointer.
      	* dwarf2out.c: (debug_skeleton_info_section,
      	debug_skeleton_abbrev_section, debug_addr_section,
      	debug_skeleton_line_section, debug_str_offsets_section): New globals.
      	(NOT_INDEXED, NO_INDEX_ASSIGNED): New defines.
      	(indirect_string_node): New field index.
      	(ate_kind): New enum with fields ate_kind_rtc, ate_kind_rtx_dtprel,
      	ate_kind_label.
      	(addr_table_entry): New structure and type.
      	(dw_loc_list_struct): Add field begin_entry.
      	(new_loc_desc): Initialize val_entry.
      	(size_of_loc_descr, output_loc_operands, output_loc_operands_raw):
      	Add cases for DW_OP_GNU_addr_index and DW_OP_const_index.
      	(build_cfa_loc): Initialize val_entry.
      	(AT_index, add_addr_table_entry, remove_addr_table_entry,
      	add_AT_lbl_id): New functions.
      	(add_AT_addr, add_AT_range_list): New parameter force_direct.
      	(output_die_abbrevs): New function.
      	(add_ranges_by_labels): New parameter force_direct.
      	(output_line_info): New parameter prologue_only.
      	(dtprel_bool): New enum with dtprel_false and dtprel_true.
      	(dw_addr_op, new_addr_loc_descr): New functions.
      	(DEBUG_DWO_INFO_SECTION, DEBUG_DWO_ABBREV_SECTION,
      	DEBUG_ADDR_SECTION, DEBUG_NORM_MACINFO_SECTION,
      	DEBUG_DWO_MACINFO_SECTION, DEBUG_MACINFO_SECTION,
      	DEBUG_NORM_MACRO_SECTION, DEBUG_DWO_MACRO_SECTION,
      	DEBUG_MACRO_SECTION, DEBUG_DWO_LINE_SECTION,
      	DEBUG_DWO_LOC_SECTION, DEBUG_NORM_STR_OFFSETS_SECTION,
      	DEBUG_DWO_STR_OFFSETS_SECTION, DEBUG_STR_OFFSETS_SECTION,
      	DEBUG_DWO_STR_SECTION, DEBUG_NORM_STR_SECTION, DEBUG_STR_SECTION,
      	DEBUG_MACRO_SECTION_FLAGS, DEBUG_SKELETON_LINE_SECTION_LABEL,
      	DEBUG_SKELETON_INFO_SECTION_LABEL, DEBUG_ADDR_SECTION_LABEL
      	DEBUG_SKELETON_ABBREV_SECTION_LABEL): New macros.
      	(DEBUG_STR_SECTION_FLAGS): Adjust.
      	(TEXT_SECTION_LABEL, COLD_TEXT_SECTION_LABEL,
      	DEBUG_LINE_SECTION_LABEL, DEBUG_INFO_SECTION_LABEL,
      	DEBUG_ABBREV_SECTION_LABEL, DEBUG_ADDR_SECTION_LABEL,
      	DEBUG_LOC_SECTION_LABEL, DEBUG_RANGES_SECTION_LABEL,
      	DEBUG_MACINFO_SECTION_LABEL, DEBUG_MACRO_SECTION_LABEL): Adjust
      	indentation.
      	(debug_skeleton_abbrev_section_label, debug_addr_section_label,
      	debug_skeleton_line_section_label, debug_skeleton_info_section_label):
      	New global variables.
      	(add_AT_flag, add_AT_int, add_AT_unsigned, add_AT_double, add_AT_vec,
      	add_AT_data8): Initialize val_entry.
      	(add_AT_low_high_pc): New parameter force_direct. Handle
      	dwarf_split_debug_info.
      	(set_indirect_string, find_AT_string_form): New functions.
      	(AT_string_form): Adjust to call find_AT_string_from.
      	(add_AT_die_ref, add_AT_fde_ref, add_AT_loc, add_AT_list):
      	Initialize val_entry.
      	(addr_index_table): New global variable.
      	(addr_table_entry_do_hash, addr_table_entry_eq, add_addr_table_entry,
      	init_addr_table_entry, remove_addr_table_entry, index_addr_table_entry,
      	remove_loc_list_addr_table_entries): New functions.
      	(add_AT_addr, add_AT_lbl_id, add_AT_range_list): New parameter
      	force_direct.  Handle dwarf_split_debug_info.
      	(add_AT_file, add_AT_vms_delta, add_AT_lineptr, add_AT_macptr,
      	add_AT_offset): Initialize val_entry.
      	(UNRELOCATED_OFFSET, RELOCATED_OFFSET): New defines.
      	(size_of_die): Handle dwarf_split_debug_info.
      	(size_of_aranges, value_format): Call AT_class.  Check AT_index.
      	(output_die_abbrevs): New function.
      	(output_abbrev_section): Call output_die_abbrevs.
      	(new_loc_list): Initialize begin_entry.
      	(output_loc_list): Handle dwarf_split_debug_info.
      	(output_range_list_offset, output_loc_list_offset,
      	output_attr_index_or_value, ): New functions.
      	(output_die): Fix call to dw2_asm_output_data.  Call
      	output_attr_index_or_value and output_range_list_offset.
      	Adjust logic around dw_val_class_str.
      	(add_top_lebel_skeleton_die_attrs, get_skeleton_type_unit,
      	output_skeleton_debug_sections): New functions.
      	(output_comdat_type_unit, output_pubname, output_aranges): Handle
      	dwarf_split_debug_info.
      	(add_ranges_by_labels): New parameter force_direct.
      	(mem_loc_descriptor, loc_descr): Call new_addr_loc_descr.
      	(loc_list_from_tree, add_const_value_attribtue): Use dtprel_bools in
      	place of generic integer.
      	(dwarf2out_vms_debug_main_pointer, gen_entry_point_die, gen_label_die,
      	gen_call_site_die, gen_subprogram_die, gen_variable_die,
      	add_high_low_attributes): Adjust calls to add_AT_lbl_id.
      	(output_macinfo_op): Adjust indirect_string_logic.
      	(save_macinfo_strings): New function.
      	(output_macinfo): Adjust.
      	(dwarf2out_init): Handle dwarf_split_debug_info.
      	(index_string, output_index_string_offset, output_index_string): New
      	functions.
      	(output_indirect_string): Adjust.
      	(output_indirect_strings, output_addr_table_entry, output_addr_table):
      	New functions.
      	(resolve_addr_in_expr, hash_loc_operands): Handle DW_OP_GNU_addr_index
      	and DW_OP_GNU_const_index.  Handle dwarf_split_debug_info.  Call
      	remove_loc_list_addr_table_entries and remove_addr_table_entry.
      	(index_location_lists): New function.
      	(dwarf2out_finish): Handle dwarf_split_debug_info.  New variable
      	main_comp_unit_die.  Adjust calls to add_AT_low_high_pc,
      	add_ranges_by_labels, add_AT_addr, and add_AT_lineptr. Call
      	save_macinfo_strings and output_indirect_strings.
      
      include/ChangeLog
      
      2012-10-29  Sterling Augustine <saugustine@google.com>
                  Cary Coutant <ccoutant@google.com>
      
      	* dwarf2.h (dwarf_location_list_entry_type): New enum with fields
      	DW_LLE_GNU_end_of_list_entry, DW_LLE_GNU_base_address_selection_entry,
      	DW_LLE_GNU_start_end_entry and DW_LLE_GNU_start_length_entry.
      
      
      
      
      Co-Authored-By: Cary Coutant <ccoutant@google.com>
      
      From-SVN: r193267
      Sterling Augustine committed
    • generic-morestack.c (__generic_morestack): Align the returned stack pointer to a 32 byte boundary. · e808687a
      	* generic-morestack.c (__generic_morestack): Align the returned
      	stack pointer to a 32 byte boundary.
      	* config/i386/morestack.S (__morestack_non_split) [32-bit]: Don't
      	increment the return address until we have decided that we don't
      	have a varargs function.
      	(__morestack) [32-bit]: Align stack correctly when calling C
      	functions.
      	(__morestack) [64-bit]: Likewise.
      
      From-SVN: r193264
      Ian Lance Taylor committed
    • 55123.cc: Remove duplicate include. · b142d8a2
      	* testsuite/20_util/shared_ptr/cons/55123.cc: Remove duplicate
      	include.
      
      From-SVN: r193263
      Jonathan Wakely committed
    • i386.c (make_dispatcher_decl): Guard with ASM_OUTPUT_TYPE_DIRECTIVE and HAVE_GNU_INDIRECT_FUNCTION. · 9422dd19
      	* config/i386/i386.c (make_dispatcher_decl): Guard with
      	ASM_OUTPUT_TYPE_DIRECTIVE and HAVE_GNU_INDIRECT_FUNCTION.
      
      From-SVN: r193261
      Gerald Pfeifer committed
    • aarch64_guard1.C: Add -fno-section-anchors. · 46ffb64d
      2012-11-06  Andrew Pinski  <apinski@cavium.com>
      
      	* g++.dg/abi/aarch64_guard1.C: Add -fno-section-anchors.
      
      From-SVN: r193260
      Andrew Pinski committed
    • ipa-inline-analysis.c (estimate_function_body_sizes, [...]): Cap time calculations. · 9dc4346a
      
      	* ipa-inline-analysis.c (estimate_function_body_sizes,
      	inline_update_overall_summary): Cap time calculations.
      
      From-SVN: r193259
      Jan Hubicka committed
    • Update index.go from master testsuite. · efa1fe23
      From-SVN: r193258
      Ian Lance Taylor committed
    • i386.c (ix86_init_machine_status): Do not explicitly clear tls_descriptor_call_expanded_p again. · 32387f4b
      	* config/i386/i386.c (ix86_init_machine_status): Do not
      	explicitly clear tls_descriptor_call_expanded_p again.
      
      From-SVN: r193257
      Uros Bizjak committed
    • * config/i386/sse.md · e4ecb922
      	(<avx_avx2>_maskstore<ssemodesuffix><avxsizesuffix>): Mark operand 0
      	as read and written by the instruction.
      
      From-SVN: r193256
      Uros Bizjak committed
    • compiler, runtime: Size of int is now 64 bits on x86_64. · 8273ed80
      From-SVN: r193255
      Ian Lance Taylor committed
    • compiler, libgo: Fixes to prepare for 64-bit int. · fb3f38da
      From-SVN: r193254
      Ian Lance Taylor committed
    • compiler, runtime: Memcmp routine returns intgo. · 855a44ee
      From-SVN: r193253
      Ian Lance Taylor committed
    • ChangeLog: Add missing PR number. · d1a0e533
      	* ChangeLog: Add missing PR number.
      	* testsuite/ChangeLog: Ditto.
      
      From-SVN: r193252
      Uros Bizjak committed
    • re PR debug/54693 (VTA guality issues with loops) · fe77e0ed
      PR debug/54693
      * tree-ssa-threadedge.c (propagate_threaded_block_debug_into):
      Use a stack vector before allocating a pointer set.
      
      From-SVN: r193251
      Alexandre Oliva committed
    • ipa-prop.c (ipa_get_param_decl_index_1): New function. · d044dd17
      2012-11-06  Martin Jambor  <mjambor@suse.cz>
      
      	* ipa-prop.c (ipa_get_param_decl_index_1): New function.
      	(ipa_get_param_decl_index): Just call ipa_get_param_decl_index_1.
      	(ipa_populate_param_decls): Accept descriptors parameter rather
      	than the whole info.
      	(load_from_unmodified_param): Likewise.
      	(ipa_load_from_parm_agg_1): Likewise.
      	(ipa_load_from_parm_agg): Extract descriptors from info.
      	(compute_complex_assign_jump_func): Likewise.
      	(ipa_analyze_indirect_call_uses): Likewise.
      
      From-SVN: r193250
      Martin Jambor committed
    • ipa-inline.c (compute_uninlined_call_time): Return gcov_type. · d3669566
      	* ipa-inline.c (compute_uninlined_call_time): Return gcov_type.
      	(compute_inlined_call_time): Watch overflows.
      	(relative_time_benefit): Compute in gcov_type.
      
      From-SVN: r193249
      Jan Hubicka committed
    • Forgot changelog :( · 1a99ae7b
      From-SVN: r193248
      Jan Hubicka committed
    • cfgloopanal.c (get_loop_hot_path): New function. · 519cac4a
      	* cfgloopanal.c (get_loop_hot_path): New function.
      	* tree-ssa-lop-ivcanon.c (struct loop_size): Add CONSTANT_IV,
      	NUM_NON_PURE_CALLS_ON_HOT_PATH, NUM_PURE_CALLS_ON_HOT_PATH,
      	NUM_BRANCHES_ON_HOT_PATH.
      	(tree_estimate_loop_size): Compute the new values.
      	(try_unroll_loop_completely): Disable unrolling of loops with only
      	calls or too many branches.
      	(tree_unroll_loops_completely): Deal also with outer loops of hot loops.
      	* cfgloop.h (get_loop_hot_path): Declare.
      	* params.def (PARAM_MAX_PEEL_BRANCHES): New parameters.
      	* invoke.texi (max-peel-branches): Document.
      
      	* gcc.dg/tree-ssa/loop-1.c: Make to look like a good unroling candidate still.
      	* gcc.dg/tree-ssa/loop-23.c: Likewise.
      	* gcc.dg/tree-ssa/cunroll-1.c: Unrolling now happens early.
      	* gcc.dg/tree-prof/unroll-1.c: Remove confused dg-options.
      
      From-SVN: r193246
      Jan Hubicka committed
    • * ipa-pure-const.c (check_stmt): Fix debug info formatting. · 425b784f
      From-SVN: r193245
      Jan Hubicka committed
    • i386.c (TARGET_INSTANTIATE_DECLS): New define. · 443ca5fc
      	* config/i386/i386.c (TARGET_INSTANTIATE_DECLS): New define.
      	(ix86_instantiate_decls): New function.
      	(ix86_expand_builtin) <case IX86_BUILTIN_LDMXCSR>: Use SLOT_TEMP
      	stack slot instead of SLOT_VIRTUAL.
      	<case IX86_BUILTIN_STMXCSR>: Ditto.
      	(assign_386_stack_local): Do not assert when virtual slot is valid.
      	* config/i386/i386.h (enum ix86_stack_slot): Remove SLOT_VIRTUAL.
      	* config/i386/i386.md (truncdfsf2): Do not use SLOT_VIRTUAL stack slot.
      	(truncxf<mode>2): Ditto.
      	(floatunssi<mode>2): Ditto.
      	(isinf<mode>2): Ditto.
      	* config/i386/sync.md (atomic_load<mode>): Ditto.
      	(atomic_store<mode>): Ditto.
      
      From-SVN: r193244
      Uros Bizjak committed
    • * const-uniq-1.c: Expand regex to match AIX XCOFF labels. · ab72bd18
      From-SVN: r193243
      David Edelsohn committed
    • re PR target/41993 ([sh] ICE in create_pre_exit, at mode-switching.c:399) · 782a4ee8
      	PR middle-end/41993
      	* gcc.dg/torture/pr41993.c: New test.
      
      From-SVN: r193242
      Uros Bizjak committed
    • l_fma_float_?.c: Update. · 22458c5a
      
      	* gcc.target/i386/l_fma_float_?.c: Update.
      	* gcc.target/i386/l_fma_double_?.c: Update.
      
      	* tree-vect-loop-manip.c (vect_do_peeling_for_loop_bound,
      	vect_do_peeling_for_alignment): Fix loop bound computation.
      	* tree-vect-loop.c (vect_transform_loop): Maintain loop bounds.
      
      From-SVN: r193241
      Jan Hubicka committed
    • Makefile.in (osconstool): Revert previous change, still needed after all. · c8fef899
      	* Makefile.in (osconstool): Revert previous change, still needed
      	after all. Add call to copy-s-oscons target.
      
      From-SVN: r193240
      Arnaud Charlet committed
    • * gcc-interface/Makefile.in (copy-s-oscons): New target. · bd9d53f3
      From-SVN: r193239
      Arnaud Charlet committed
    • [multiple changes] · 015bee83
      2012-11-06  Robert Dewar  <dewar@adacore.com>
      
      	* err_vars.ads, atree.ads: Minor reformatting.
      
      2012-11-06  Arnaud Charlet  <charlet@adacore.com>
      
      	* gcc-interface/Make-lang.in: Update dependencies.
      	* gcc-interface/Makefile.in: Add runtime pairs for Android.
      	Rework handling of s-oscons.ads.
      	* s-osinte-android.ads, s-osinte-android.adb: New files.
      
      2012-11-06  Tristan Gingold  <gingold@adacore.com>
      
      	* gcc-interface/trans.c (gnat_to_gnu): For N_Real_Literal, create the
      	binary representation of vax floats.
      
      From-SVN: r193238
      Arnaud Charlet committed
    • * Makefile.in (osconstool): Removed, no longer needed. · 540d7a77
      From-SVN: r193237
      Arnaud Charlet committed
    • re PR target/54089 ([SH] Refactor shift patterns) · 0f9a3fd3
      	PR target/54089
      	* config/sh/sh.c (and_xor_ior_costs, addsubcosts): Double the costs for
      	ops larger than SImode.
      	* config/sh/sh.md (rotcl, *rotcl): New insns and splits.
      	(ashldi3_k): Convert to insn_and_split and use new rotcl insn.
      
      	PR target/54089
      	* gcc.target/sh/pr54089-8.c: New.
      	* gcc.target/sh/pr54089-9.c: New.
      
      From-SVN: r193236
      Oleg Endo committed
    • [multiple changes] · ee2ba856
      2012-11-06  Tristan Gingold  <gingold@adacore.com>
      
      	* sem_ch9.adb (Analyze_Protected_Type_Declaration): Fix thinko
      	in previous commit.
      
      2012-11-06  Jose Ruiz  <ruiz@adacore.com>
      
      	* ali.adb (Scan_ALI): Fix parsing mechanism for -fstack-check.
      
      2012-11-06  Thomas Quinot  <quinot@adacore.com>
      
      	* atree.adb, atree.ads, einfo.adb, errout.adb, errout.ads, erroutc.adb,
      	erroutc.ads, errutil.adb, errutil.ads, err_vars.ads, expander.adb,
      	exp_ch13.adb, exp_ch2.adb, exp_ch6.adb, exp_dist.adb, fe.h,
      	fmap.adb, fmap.ads, gprep.adb, makeutl.adb, osint.adb, osint.ads,
      	par_sco.adb, prepcomp.adb, prj-part.adb, prj-proc.adb, scng.adb,
      	sdefault.ads, sem_ch10.adb, sem_ch13.adb, sem_ch2.adb, sem_ch3.adb,
      	sem_ch4.adb, sem_ch5.adb, sem_dim.adb, sem_elab.adb, sem_eval.adb,
      	sem_intr.adb, sem_prag.adb, sem_type.adb, sem_warn.adb, stylesw.adb,
      	stylesw.ads, targparm.adb, targparm.ads (Cascaded_Error): Rename to
      	more descriptive name 'Check_Error_Detected'. Add calls to
      	Check_Error_Detected at places where semantic analysis is abandoned
      	assuming a previously detected error.
      
      From-SVN: r193235
      Arnaud Charlet committed
    • [multiple changes] · d8192289
      2012-11-06  Robert Dewar  <dewar@adacore.com>
      
      	* exp_ch4.adb: Minor comment change.
      
      2012-11-06  Robert Dewar  <dewar@adacore.com>
      
      	* gnat_ugn.texi: Extensive revision of documentation of overflow
      	checking.
      	* vms_data.ads: Overflow check numbers must be in range 1-3,
      	not 0-3.
      
      2012-11-06  Tristan Gingold  <gingold@adacore.com>
      
      	* sem_ch9.adb (Analyze_Protected_Type_Declaration): Emit a
      	warning if pragma Priority is used in presence of an interrupt
      	handler.
      
      From-SVN: r193234
      Arnaud Charlet committed
    • checks.ads, [...]: Minor changes throughout for new overflow checking. · a7f1b24f
      2012-11-06  Robert Dewar  <dewar@adacore.com>
      
      	* checks.ads, checks.adb, exp_ch4.adb: Minor changes throughout for
      	new overflow checking.
      	* exp_util.adb (Insert_Actions): Remove special casing of
      	Overflow_Check.
      	* gnat1drv.adb (Adjust_Global_Switches): Fixes for new handling
      	of overflow checks.
      	* sem.adb (Analyze): Remove special casing of Overflow_Check
      	(Analyze_List): ditto.
      	* sem_prag.adb (Analyze_Pragma, case Overflow_Checks): Remove
      	SUPPRESSED and change CHECKED to STRICT.
      	* sem_res.adb (Analyze_And_Resolve): No longer treat
      	Overflow_Check specially.
      	(Preanalyze_And_Resolve): ditto.
      	(Resolve): ditto.
      	* snames.ads-tmpl: Replace Name_Checked by Name_Strict.
      	* switch-c.adb (Get_Overflow_Mode): Eliminate 0 setting,
      	CHECKED => STRICT.
      	* types.ads (Overflow_Check_Type): Remove Suppressed, change
      	Checked to Strict (Suppress_Record): Overflow check controlled
      	by Suppress array.
      
      From-SVN: r193233
      Robert Dewar committed
    • atomic_base.h: Don't include <cstddef>, use nullptr. · c4ae9877
      2012-11-06  Paolo Carlini  <paolo.carlini@oracle.com>
        
      	* include/bits/atomic_base.h: Don't include <cstddef>, use nullptr.
      	* include/std/atomic: Likewise.
      	* include/tr2/dynamic_bitset: Likewise.
      
      	* libsupc++/vec.cc (compute_size(std::size_t, std::size_t,
      	std::size_t)): Fix for -fno-exceptions.
      
      From-SVN: r193232
      Paolo Carlini committed
    • sem_res.adb (Preanalyze_And_Resolve): In Alfa mode do not disable checks... · 1115dd7e
      2012-11-06  Ed Schonberg  <schonberg@adacore.com>
      
      	* sem_res.adb (Preanalyze_And_Resolve): In Alfa mode do not
      	disable checks, so that flags can be properly set on expressions
      	that are not further expanded.
      
      From-SVN: r193231
      Ed Schonberg committed
    • exp_attr.adb, [...]: Minor reformatting. · 97ce3a14
      2012-11-06  Robert Dewar  <dewar@adacore.com>
      
      	* exp_attr.adb, sem_attr.adb: Minor reformatting.
      
      From-SVN: r193230
      Robert Dewar committed
    • i386-protos.h (emit_i387_cw_initialization): Deleted. · ff97910d
              * config/i386/i386-protos.h (emit_i387_cw_initialization): Deleted.
              (emit_vzero): Added prototype.
              (ix86_mode_entry): Likewise.
              (ix86_mode_exit): Likewise.
              (ix86_emit_mode_set): Likewise.
      
              * config/i386/i386.c (typedef struct block_info_def): Deleted.
              (define BLOCK_INFO): Deleted.
              (check_avx256_stores): Added checking for MEM_P.
              (move_or_delete_vzeroupper_2): Deleted.
              (move_or_delete_vzeroupper_1): Deleted.
              (move_or_delete_vzeroupper): Deleted.
              (ix86_maybe_emit_epilogue_vzeroupper): Deleted.
              (function_pass_avx256_p): Deleted.
              (ix86_function_ok_for_sibcall): Deleted disabling sibcall.
              (nit_cumulative_args): Deleted initialization of of avx256 fields of
              cfun->machine.
              (ix86_emit_restore_sse_regs_using_mov): Deleted vzeroupper generation.
              (ix86_expand_epilogue): Likewise.
              (ix86_avx_u128_mode_needed): New.
              (ix86_i387_mode_needed): Renamed ix86_mode_needed.
              (ix86_mode_needed): New.
              (ix86_avx_u128_mode_after): New.
              (ix86_mode_after): New.
              (ix86_avx_u128_mode_entry): New.
              (ix86_mode_entry): New.
              (ix86_avx_u128_mode_exit): New.
              (ix86_mode_exit): New.
              (ix86_emit_mode_set): New.
              (ix86_expand_call): Deleted vzeroupper generation.
              (ix86_split_call_vzeroupper): Deleted.
              (ix86_init_machine_status): Initialzed optimize_mode_switching.
              (ix86_expand_special_args_builtin): Changed.
              (ix86_reorg): Deleted a call of move_or_delete_vzeroupper.
      
              * config/i386/i386.h  (VALID_AVX256_REG_OR_OI_MODE): New.
              (AVX_U128): New.
              (avx_u128_state): New.
              (NUM_MODES_FOR_MODE_SWITCHING): Added AVX_U128_ANY.
              (MODE_AFTER): New.
              (MODE_ENTRY): New.
              (MODE_EXIT): New.
              (EMIT_MODE_SET): Changed.
              (machine_function): Deleted avx256 fields.
      
              * config/i386/i386.md (UNSPEC_CALL_NEEDS_VZEROUPPER): Deleted.
              (define_insn_and_split "*call_vzeroupper"): Deleted.
              (define_insn_and_split "*call_rex64_ms_sysv_vzeroupper"): Deleted.
              (define_insn_and_split "*sibcall_vzeroupper"): Deleted.
              (define_insn_and_split "*call_pop_vzeroupper"): Deleted.
              (define_insn_and_split "*sibcall_pop_vzeroupper"): Deleted.
              (define_insn_and_split "*call_value_vzeroupper"): Deleted.
              (define_insn_and_split "*sibcall_value_vzeroupper"): Deleted.
              (define_insn_and_split "*call_value_rex64_ms_sysv_vzeroupper"): Deleted.
              (define_insn_and_split "*call_value_pop_vzeroupper"): Deleted.
              (define_insn_and_split "*sibcall_value_pop_vzeroupper"): Deleted.
              (define_expand "return"): Deleted vzeroupper emitting.
              (define_expand "simple_return"): Deleted.
      
              * config/i386/predicates.md (vzeroupper_operation): New.
      
              * config/i386/sse.md (avx_vzeroupper): Changed.
      
      testsuite/ChangeLog:
              * gcc.target/i386/avx-vzeroupper-5.c: Changed scan-assembler-times.
              * gcc.target/i386/avx-vzeroupper-8.c: Likewise.
              * gcc.target/i386/avx-vzeroupper-9.c: Likewise.
              * gcc.target/i386/avx-vzeroupper-10.c: Likewise.
              * gcc.target/i386/avx-vzeroupper-11.c: Likewise.
              * gcc.target/i386/avx-vzeroupper-12.c: Likewise.
              * gcc.target/i386/avx-vzeroupper-19.c: Likewis.
              * gcc.target/i386/avx-vzeroupper-27.c: New.
      
      From-SVN: r193229
      Vladimir Yakovlev committed
    • exp_attr.adb (Expand_N_Attribute_Reference): Apply a predicate check when… · 3d6db7f8
      exp_attr.adb (Expand_N_Attribute_Reference): Apply a predicate check when evaluating the attribute Valid...
      
      2012-11-06  Gary Dismukes  <dismukes@adacore.com>
      
      	* exp_attr.adb (Expand_N_Attribute_Reference): Apply a predicate
      	check when evaluating the attribute Valid, and issue a warning
      	about infinite recursion when the check occurs within the
      	predicate function of the prefix's subtype.
      	* exp_ch4.adb (Expand_N_In): Remove test for Is_Discrete_Type
      	when we're checking that there's no predicate check function as a
      	condition for substituting a Valid check for a scalar membership
      	test (substitution should be suppressed for any kind of scalar
      	subtype with a predicate check). Also, don't emit a predicate
      	check when the right operand is a range.
      
      From-SVN: r193228
      Gary Dismukes committed
    • [multiple changes] · 150ac76e
      2012-11-06  Robert Dewar  <dewar@adacore.com>
      
      	* par_sco.adb, bindgen.adb, exp_vfpt.adb, exp_vfpt.ads, exp_ch2.adb,
      	errout.adb, sem_ch8.adb: Minor reformatting.
      
      2012-11-06  Hristian Kirtchev  <kirtchev@adacore.com>
      
      	* einfo.adb: Include Loop_Entry_Attributes to the list of
      	Node/List/Elist10 usage.
      	(Loop_Entry_Attributes): New routine.
      	(Set_Loop_Entry_Attributes): New routine.
      	(Write_Field10_Name): Add an output string for Loop_Entry_Attributes.
      	* einfo.ads: Define new attribute Loop_Entry_Attributes along
      	with its usage in nodes.
      	(Loop_Entry_Attributes): New routine and dedicated pragma Inline.
      	(Set_Loop_Entry_Attributes): New routine and dedicated pragma Inline.
      	* exp_attr.adb (Expand_N_Attribute_Reference): Do not expand
      	Attribute_Loop_Entry here.
      	* exp_ch5.adb: Add with and use clause for Elists;
      	(Expand_Loop_Entry_Attributes): New routine.
      	(Expand_N_Loop_Statement): Add a call to Expand_Loop_Entry_Attributes.
      	* exp_prag.adb (Expand_Pragma_Loop_Assertion): Specialize the
      	search to include multiple nested loops produced by the expansion
      	of Ada 2012 array iterator.
      	* sem_attr.adb: Add with and use clause for Elists.
      	(Analyze_Attribute): Check the legality of attribute Loop_Entry.
      	(Resolve_Attribute): Nothing to do for Loop_Entry.
      	(S14_Attribute): New routine.
      	* snames.ads-tmpl: Add a comment on entries marked with
      	HiLite. Add new name Name_Loop_Entry. Add new attribute
      	Attribute_Loop_Entry.
      
      From-SVN: r193227
      Arnaud Charlet committed
    • re PR fortran/54917 ([OOP] TRANSFER on polymorphic variable causes ICE) · fa1ed658
      2012-11-06  Janus Weil  <janus@gcc.gnu.org>
      
      	PR fortran/54917
      	* target-memory.c (gfc_target_expr_size,gfc_target_interpret_expr):
      	Handle BT_CLASS.
      	* trans-intrinsic.c (gfc_conv_intrinsic_transfer): Add support for
      	polymorphic arguments.
      
      2012-11-06  Janus Weil  <janus@gcc.gnu.org>
      
      	PR fortran/54917
      	* gfortran.dg/transfer_class_1.f90: New.
      	* gfortran.dg/transfer_class_2.f90: New.
      
      From-SVN: r193226
      Janus Weil committed
    • [multiple changes] · b887f1a0
      2012-11-06  Geert Bosch  <bosch@adacore.com>
      
      	* eval_fat.adb (Machine, Succ): Fix front end to support static
      	evaluation of attributes on targets with both VAX and IEEE float.
      	* sem_util.ads, sem_util.adb (Has_Denormals, Has_Signed_Zeros):
      	New type-specific functions. Previously we used Denorm_On_Target
      	and Signed_Zeros_On_Target directly, but that doesn't work well
      	for OpenVMS where a single target supports both floating point
      	with and without signed zeros.
      	* sem_attr.adb (Attribute_Denorm, Attribute_Signed_Zeros): Use
      	new Has_Denormals and Has_Signed_Zeros functions to support both
      	IEEE and VAX floating point on a single target.
      
      2012-11-06  Tristan Gingold  <gingold@adacore.com>
      
      	* bindgen.adb (System_Interrupts_Used): New variable.
      	(Gen_Adainit): Declare and call
      	Install_Restricted_Handlers_Sequential if System.Interrupts is
      	used when elaboration policy is sequential.
      
      2012-11-06  Ed Schonberg  <schonberg@adacore.com>
      
      	* sem_ch8.adb: Complete previous change.
      
      From-SVN: r193225
      Arnaud Charlet committed