118260 Commits

Author SHA1 Message Date
Ian Lance Taylor
938ff79ae7 runtime: use sched_getaffinity for runtime.NumCPU() on Linux
Fixes Go issue 3921 for gccgo.

From Shenghou Ma.

From-SVN: r190282
2012-08-10 06:08:11 +00:00
Richard Henderson
0d8e4dacd4 s390: Use VOIDmode with gen_rtx_SET
* config/s390/s390.c (s390_expand_insv): Use VOIDmode in gen_rtx_SET.

From-SVN: r190281
2012-08-09 19:39:50 -07:00
Richard Henderson
4e1ffb63c7 s390: Rearrange temporary moves for use of CRJ
* config/s390/s390.c (s390_expand_cs_hqi): Copy val to a temp before
	performing the compare for the restart loop.

From-SVN: r190280
2012-08-09 19:12:56 -07:00
DJ Delorie
1c6b102126 rl78.c (rl78_alloc_physical_registers): Check for SET before extracting SET_SRC.
* config/rl78/rl78.c (rl78_alloc_physical_registers): Check for
SET before extracting SET_SRC.
(rl78_remove_unused_sets): Check for REG before extractnig REGNO.

From-SVN: r190278
2012-08-09 20:45:29 -04:00
GCC Administrator
23459cbecd Daily bump.
From-SVN: r190277
2012-08-10 00:17:48 +00:00
Oleg Endo
70d4736c9a re PR target/54089 ([SH] Refactor shift patterns)
PR target/54089
	* config/sh/sh-protos (shift_insns_rtx): Delete.
	(sh_ashlsi_clobbers_t_reg_p): Add.
	* config/sh/sh.c (shift_insns, shift_amounts, ext_shift_insns,
	ext_shift_amounts): Merge arrays of ints to array of structs.
	Adapt usage of arrays throughout the file.
	(shift_insns_rtx): Delete unused function.
	(sh_ashlsi_clobbers_t_reg_p): New function.
	* config/sh/sh.md (ashlsi3): Emit ashlsi3_n_clobbers_t insn if the
	final shift sequence will clobber T_REG.
	(ashlsi3_n): Split only if the final shift sequence will not
	clobber T_REG.
	(ashlsi3_n_clobbers_t): New insn_and_split.

From-SVN: r190273
2012-08-09 23:27:51 +00:00
Jonathan Wakely
9ab48d6e6c acinclude.m4: Update references to final C++11 standard.
* acinclude.m4: Update references to final C++11 standard.
	* include/bits/shared_ptr.h: Likewise.
	* include/bits/shared_ptr_base.h: Likewise.
	* include/bits/unique_ptr.h: Likewise.
	* include/std/chrono: Likewise.
	* include/std/thread: Likewise.

From-SVN: r190271
2012-08-09 23:45:20 +01:00
Steven Bosscher
5829cc0fe4 calls.c (mem_overlaps_already_clobbered_arg_p): Use SBITMAP_SIZE instead of looking at sbitmap n_bits member directly.
* calls.c (mem_overlaps_already_clobbered_arg_p): Use SBITMAP_SIZE
	instead of looking at sbitmap n_bits member directly.
	* gcse.c (hoist_code): Likewise.
	* sched-rgn.c (split_edges): Likewise.
	* tree-into-ssa.c (is_old_name, is_new_name, add_new_name_mapping,
	update_ssa): Likewise.

From-SVN: r190268
2012-08-09 21:59:32 +00:00
Uros Bizjak
b197fc48f9 i386.h (LIMIT_RELOAD_CLASS): Return preferred single unit register class for classes that contain registers...
* config/i386/i386.h (LIMIT_RELOAD_CLASS): Return preferred
	single unit register class for classes that contain registers form
	multiple units.
	(REG_CLASS_CONTENTS): Add missing "frame" register to FLOAT_INT_REGS,
	INT_SSE_REGS and FLOAT_INT_SSE_REGS register classes.

testsuite/ChangeLog:

	* gcc.c-torture/compile/20120727-1.c (dg-options): Add -mfpmath=387
	for x86 targets.
	* gcc.c-torture/compile/20120727-2.c: New test.

From-SVN: r190261
2012-08-09 20:30:13 +02:00
Martin Jambor
8b7773a4ee cgraph.h (cgraph_indirect_call_info): Field anc_offse renamd to offset, updated all users.
2012-08-09  Martin Jambor  <mjambor@suse.cz>

	* cgraph.h (cgraph_indirect_call_info): Field anc_offse renamd to
	offset, updated all users.  New field agg_contents.
	* ipa-prop.h (jump_func_type): Removed IPA_JF_CONST_MEMBER_PTR.
	(ipa_pass_through_data): New field agg_preserved.
	(ipa_ancestor_jf_data): Likewise.
	(ipa_member_ptr_cst): Removed.
	(ipa_agg_jf_item): New type.
	(ipa_agg_jump_function): Likewise.
	(ipa_jump_func): New field agg.  Removed field member_cst.
	(ipa_get_jf_pass_through_agg_preserved): New function.
	(ipa_get_jf_ancestor_agg_preserved): Likewise.
	(ipa_get_jf_member_ptr_pfn): Removed.
	(ipa_find_agg_cst_for_param): Declare.
	(ipa_load_from_parm_agg): Likewise.
	* ipa-prop.c (param_analysis_info): Fields modified and
	visited_statements rename to parm_modified and parm_visited_statements
	respectively, added fields ref_modified, ref_visited_statements,
	pt_modified and pt_visited_statements.
	(ipa_print_node_jump_functions_for_edge): Do not dump const member
	functions.  Dump agg_preserved flags and aggregate jump functions.
	(ipa_set_jf_simple_pass_through): Set also agg_preserved.
	(ipa_set_ancestor_jf): Likewise.
	(ipa_set_jf_arith_pass_through): Clear agg_preserved.
	(ipa_set_jf_member_ptr_cst): Removed.
	(is_parm_modified_before_stmt): Logic reversed, renamed to
	parm_preserved_before_stmt_p.  Cache visited bitmap only for
	naked DECL parameters.  All callers updated.
	(load_from_unmodified_param): Allow NULL parms_ainfo.
	(parm_ref_data_preserved_p): New function.
	(parm_ref_data_pass_through_p): Likewise.
	(ipa_load_from_parm_agg_1): Likewise.
	(ipa_load_from_parm_agg): Likewise.
	(compute_complex_assign_jump_func): Check if aggregate contents are
	preserved.
	(compute_complex_ancestor_jump_func): Likewise.
	(compute_scalar_jump_functions): Removed.
	(type_like_member_ptr_p): Also check field position are known and
	sane.
	(compute_pass_through_member_ptrs): Removed.
	(determine_cst_member_ptr): Likewise.
	(ipa_known_agg_contents_list): New type.
	(determine_known_aggregate_parts): New function.
	(compute_cst_member_ptr_arguments): Removed.
	(ipa_compute_jump_functions_for_edge): Compute all kinds of jump
	functions (scalar, aggregate and member pointer).
	(ipa_get_member_ptr_load_param): Incorporate into
	ipa_get_stmt_member_ptr_load_param, also pass back an offset.
	(ipa_note_param_call): Clear agg_contents.
	(ipa_analyze_indirect_call_uses): Also look for simple pointers loaded
	from aggregates.  In such cases, store offset of the called field.
	(ipa_analyze_node): Initialize new fields of param_analysis_info.
	(update_jump_functions_after_inlining): Handle aggregate contents.
	(ipa_find_agg_cst_for_param): New function.
	(try_make_edge_direct_simple_call): Handle called aggregate values.
	(update_indirect_edges_after_inlining): Make sure aggregate preserving
	jump functions comply with type compatibility requirements.
	(ipa_edge_duplication_hook): Copy also aggregate jump functions.
	(ipa_write_jump_function): Stream agg_preserved flags and aggregate
	jump functions.  Do not stream member pointer constant jump functions.
	(ipa_read_jump_function): Likewise.
	(ipa_write_indirect_edge_info): Stream new cgraph_indirect_call_info
	fields.
	(ipa_read_indirect_edge_info): Likewise.

	* testsuite/gcc.dg/ipa/iinline-4.c: New test.
	* testsuite/gcc.dg/ipa/iinline-5.c: Likewise.
	* testsuite/gcc.dg/ipa/iinline-6.c: Likewise.
	* testsuite/gcc.dg/ipa/iinline-7.c: Likewise.
	* testsuite/gcc.dg/lto/20120723_0.c: Likewise.
	* testsuite/gcc.dg/lto/20120723_1.c: Likewise.

From-SVN: r190260
2012-08-09 18:05:46 +02:00
Oleg Endo
b67b3838e9 re PR target/39423 ([SH] performance regression: lost mov @(disp,Rn))
PR target/39423
	* config/sh/predicates.md (mem_index_disp_operand): New predicate.
	* config/sh/sh.md (*movsi_index_disp): Rewrite insns to use the new
	mem_index_disp_operand predicate.

	PR target/39423
	* gcc.target/sh/pr39423-1.c: New.

From-SVN: r190259
2012-08-09 15:58:04 +00:00
Oleg Endo
78ff60c1ad re PR target/51244 ([SH] Inefficient conditional branch and code around T bit)
PR target/51244
	* config/sh/sh.md: Add negc extu sequence peephole.
	(movrt, movnegt, movrt_negc, nott): Use t_reg_operand predicate.
	(*movrt_negc): New insn.
	* config/sh/sync.md (atomic_test_and_set): Pass gen_t_reg_rtx to
	gen_movnegt.
	* config/sh/sh.c (expand_cbranchsi4, sh_emit_scc_to_t,
	sh_emit_compare_and_branch, sh_emit_compare_and_set): Use get_t_reg_rtx.
	(sh_expand_t_scc): Pass gen_t_reg_rtx to gen_movnegt.

	PR target/51244
	* gcc.target/sh/pr51244-5: New.
	* gcc.target/sh/pr51244-6: New.

From-SVN: r190258
2012-08-09 15:55:18 +00:00
Oleg Endo
284c32cfd8 re PR target/50751 (SH Target: Displacement addressing does not work for QImode and HImode)
PR target/50751
	* config/sh/sh.md (*extendqisi2_compact_reg, *extendhisi2_compact_reg):
	Use arith_reg_operand predicate instead of register_operand.
	* config/sh/predicates.md (movsrc_no_disp_mem_operand): Accept
	only mem, simplify.

From-SVN: r190257
2012-08-09 15:51:20 +00:00
Uros Bizjak
3eda5123a4 alpha.c (alpha_pad_noreturn): Rename to ...
* config/alpha/alpha.c (alpha_pad_noreturn): Rename to ...
        (alpha_pad_function_end): ... this.  Also insert NOP between
        sibling call and GP load.
        (alpha_reorg): Update call to alpha_pad_function_end.  Expand comment.

From-SVN: r190255
2012-08-09 17:02:36 +02:00
Michael Zolotukhin
9319fa21f4 adxintrin.h: Remove guarding __ADX__ check.
Changelog
        * config/i386/adxintrin.h: Remove guarding __ADX__ check.
        * config/i386/x86intrin.h: Likewise.
        * config/i386/i386.c (ix86_init_mmx_sse_builtins): Remove
        OPTION_MASK_ISA_ADX from needed options for
        __builtin_ia32_addcarryx_u32 and __builtin_ia32_addcarryx_u64.
        (ix86_expand_builtin): Use add<mode>3_carry in expanding of
        IX86_BUILTIN_ADDCARRYX32 and IX86_BUILTIN_ADDCARRYX64.

testsuite/Changelog
        * gcc.target/i386/adx-addxcarry32-3.c: New.
        * gcc.target/i386/adx-addxcarry64-3.c: New.

From-SVN: r190254
2012-08-09 14:35:02 +00:00
Andrey Belevantsev
0c02ab396e re PR rtl-optimization/53701 (ICE on ia64 (when building Allegro 4.4) in sel-sched)
PR rtl-optimization/53701
    * sel-sched.c (vinsn_vec_has_expr_p): Clarify function comment.
    Process not only expr's vinsns but all old vinsns from expr's
    history of changes.
    (update_and_record_unavailable_insns): Clarify comment.

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

From-SVN: r190253
2012-08-09 18:08:31 +04:00
Bernd Schmidt
82ad0aaf6e reload.c (find_valid_class_1): New static function.
* reload.c (find_valid_class_1): New static function.
	(push_reload): Use it when reloading a SYMBOL_REG as the inner
	of a subreg.  Keep better track of needed classes for the
	secondary memory case.
	* config/i386/i386.h (LIMIT_RELOAD_CLASS): Limit INT_SSE_REGS to
	GENERAL_REGS.
	* reload1.c (replaced_subreg): New static function.
	(gen_reload): Use it when deciding whether to use secondary
	memory.

	* gcc.c-torture/compile/20120727-1.c: New test.

From-SVN: r190252
2012-08-09 13:18:05 +00:00
Tobias Burnus
62d6a5bbc8 re PR fortran/54199 (Superfluous diagnostic "is also the name of an intrinsic" for internal procedures)
2012-08-09  Tobias Burnus  <burnus@net-b.de>

        PR fortran/54199
        * intrinsic.c (gfc_warn_intrinsic_shadow): Better warning
        for internal procedures.

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

        PR fortran/54199
        * gfortran.dg/intrinsic_shadow_4.f90: New.

From-SVN: r190251
2012-08-09 14:06:31 +02:00
Richard Guenther
6738604187 tree.h (SSA_VAR_P): Simplify.
2012-08-09  Richard Guenther  <rguenther@suse.de>

	* tree.h (SSA_VAR_P): Simplify.
	* tree-ssanames.c (make_ssa_name_fn): Strengthen assert.
	* fold-const.c (fold_comparison): Check for default def first
	before checking for PARM_DECL.
	* tree-complex.c (get_component_ssa_name): Likewise.
	* tree-inline.c (remap_ssa_name): Likewise.
	* tree-ssa-loop-ivopts.c (parm_decl_cost): Likewise.
	* tree-ssa-structalias.c (get_fi_for_callee): Likewise.
	(find_what_p_points_to): Likewise.
	* tree-ssa-operands.c (add_stmt_operand): Simplify.

From-SVN: r190250
2012-08-09 11:00:11 +00:00
Dodji Seketeli
4531d13af5 Use accessor functions to manipulate xmlOutputBuffer
This is a fix to prepare the xmlj_io.c file of gnu classpath to a coming
API change in libxml2.

Basically, we were previously accessing fields inside the
xmlOutputBuffer struct of libxml2.  In a coming version of libxml2,
that won't be possible anymore.  Client code will have to use accessor
functions instead.  For the gory details, there is an interestin note
of Daniel Veillard (author of libxml2) at
https://mail.gnome.org/archives/desktop-devel-list/2012-August/msg00007.html.

This patch defines too accessor macros that, depending on the version
of libxml2 we are using will either access the fields of
xmlOutputBuffer directly, or use the new accessor function.

Tested on x86_64-unknown-linux-gnu against trunk.

libjava/classpath/

	* native/jni/xmlj/xmlj_io.c (GET_XML_OUTPUT_BUFFER_CONTENT)
	(GET_XML_OUTPUT_BUFFER_SIZE): New macros.
	(xmljOutputWriteCallback): Use them.

From-SVN: r190249
2012-08-09 12:33:48 +02:00
GCC Administrator
5100dfce9d Daily bump.
From-SVN: r190246
2012-08-09 00:18:12 +00:00
H.J. Lu
ac295cf1ae Require non-ilp32 for gcc.dg/tree-ssa/slsr-30.c
* gcc.dg/tree-ssa/slsr-30.c: Require non-ilp32.  Remove
	dg-skip-if.

From-SVN: r190242
2012-08-08 15:47:07 -07:00
Joseph Myers
e7160b278e simplify-rtx.c (simplify_binary_operation_1): Do not simplify IOR to a constant if one operand has side effects.
* simplify-rtx.c (simplify_binary_operation_1): Do not simplify
	IOR to a constant if one operand has side effects.

testsuite:
	* gcc.c-torture/execute/20120808-1.c: New test.

From-SVN: r190237
2012-08-08 20:42:58 +01:00
Ulrich Weigand
215770ada8 builtins.c (expand_builtin_atomic_compare_exchange): Pass old value operand as MEM to expand_atomic_compare_and_swap.
* builtins.c (expand_builtin_atomic_compare_exchange): Pass old
	value operand as MEM to expand_atomic_compare_and_swap.

	* config/s390/s390.md ("atomic_compare_and_swap<mode>"): Accept
	nonimmediate_operand for old value; generate load and store if
	needed.
	* config/s390/s390.c (s390_expand_cs_hqi): Accept any operand
	as vtarget.

From-SVN: r190236
2012-08-08 18:03:37 +00:00
Steven Bosscher
07c5a154bb re PR middle-end/54146 (Very slow compile with attribute((flatten)))
PR middle-end/54146
	* gimpify.c (gimplify_body): Only verify_gimple_in_seq with
	checking enabled.
	* tree-ssa-loop-manip.c (add_exit_phis_var): Assert that var is
	a gimple_reg if checking is enabled.
	(find_uses_to_rename_stmt): Only look at non-virtual USE operands.
	* tree-into-ssa (compute_global_livein): Change the worklist
	type from an array to a VEC.

From-SVN: r190235
2012-08-08 17:39:46 +00:00
Richard Guenther
a471762f68 tree-ssa-operands.h (virtual_operand_p): Declare.
2012-08-08  Richard Guenther  <rguenther@suse.de>

	* tree-ssa-operands.h (virtual_operand_p): Declare.
	* tree-ssa-operands.c (virtual_operand_p): New predicate.
	* gimple.c (is_gimple_reg): Use virtual_operand_p.
	* tree-into-ssa.c (prepare_block_for_update): Likewise.
	* tree-vect-loop-manip.c (adjust_debug_stmts): Likewise.

From-SVN: r190231
2012-08-08 14:51:26 +00:00
Uros Bizjak
aa5d8db019 ffi.c (ffi_prep_closure_loc): Don't ASSERT ABI test, just return FFI_BAD_ABI when things are wrong.
* src/s390/ffi.c (ffi_prep_closure_loc): Don't ASSERT ABI test,
	just return FFI_BAD_ABI when things are wrong.

From-SVN: r190230
2012-08-08 16:48:43 +02:00
Richard Guenther
6b4a85ad6f tree-call-cdce.c (check_pow): Simplify.
2012-08-08  Richard Guenther  <rguenther@suse.de>

	* tree-call-cdce.c (check_pow): Simplify.
	(gen_conditions_for_pow_int_base): Likewise.
	* tree-ssa-dom.c (propagate_rhs_into_lhs): Do not handle
	virtual operands here.
	* tree-ssa-operands.c (get_name_decl): Remove unused function.
	* gimplify.c (gimple_regimplify_operands): Remove dead code.
	* tree-vrp.c (get_value_range): Move SSA_NAME_VAR access.
	* tree-parloops.c (create_phi_for_local_result): Use copy_ssa_name.
	* value-prof.c (gimple_ic): Use duplicate_ssa_name.
	(gimple_stringop_fixed_value): Likewise.
	* tree.c (needs_to_live_in_memory): Remove SSA name handling.
	* tree-stdarg.c (find_va_list_reference): Store SSA_NAME_VERSIONs
	in the bitmap alongside shifted DECL_UIDs.
	(va_list_counter_struct_op): Likewise.
	(va_list_ptr_read): Likewise.
	(va_list_ptr_write): Likewise.
	(check_va_list_escapes): Likewise.
	(check_all_va_list_escapes): Likewise.
	(execute_optimize_stdarg): Likewise.
	* tree-outof-ssa.c (insert_backedge_copies): Use copy_ssa_name.

From-SVN: r190229
2012-08-08 14:40:30 +00:00
H.J. Lu
3b1e1a029a Don't return identity for CONST or symbolic reference
gcc/

	PR rtl-optimization/54157
	* combine.c (gen_lowpart_for_combine): Don't return identity
	for CONST or symbolic reference.

gcc/testsuite/

	PR rtl-optimization/54157
	* gcc.target/i386/pr54157.c: New file.

From-SVN: r190228
2012-08-08 06:39:33 -07:00
Michael Zolotukhin
d05e383bc7 i386-common.c (OPTION_MASK_ISA_ADX_SET): New.
ChangeLog:
2012-08-08 Michael Zolotukhin <michael.v.zolotukhin@intel.com>

        * common/config/i386/i386-common.c (OPTION_MASK_ISA_ADX_SET): New.
        (OPTION_MASK_ISA_ADX_UNSET): Likewise.
        (ix86_handle_option): Handle madx option.
        * config.gcc (i[34567]86-*-*): Add adxintrin.h.
        (x86_64-*-*): Likewise.
        * config/i386/adxintrin.h: New header.
        * config/i386/driver-i386.c (host_detect_local_cpu): Detect ADCX/ADOX
        support.
        * config/i386/i386-builtin-types.def
        (UCHAR_FTYPE_UCHAR_UINT_UINT_PUNSIGNED): New function type.
        (UCHAR_FTYPE_UCHAR_ULONGLONG_ULONGLONG_PULONGLONG): Likewise.
        * config/i386/i386-c.c: Define __ADX__ if needed.
        * config/i386/i386.c (ix86_target_string): Define -madx option.
        (PTA_ADX): New.
        (ix86_option_override_internal): Handle new option.
        (ix86_valid_target_attribute_inner_p): Add OPT_madx.
        (ix86_builtins): Add IX86_BUILTIN_ADDCARRYX32,
        IX86_BUILTIN_ADDCARRYX64.
        (ix86_init_mmx_sse_builtins): Define corresponding built-ins.
        (ix86_expand_builtin): Handle these built-ins.
        (ix86_expand_args_builtin): Handle new function types.
        * config/i386/i386.h (TARGET_ADX): New.
        * config/i386/i386.md (adcx<mode>3): New define_insn.
        * config/i386/i386.opt (madx): New.
        * config/i386/x86intrin.h: Include adxintrin.h.

testsuite/ChangeLog:
        * gcc.target/i386/adx-addcarryx32-1.c: New.
        * gcc.target/i386/adx-addcarryx32-2.c: New.
        * gcc.target/i386/adx-addcarryx64-1.c: New.
        * gcc.target/i386/adx-addcarryx64-2.c: New.
        * gcc.target/i386/adx-check.h: New.
        * gcc.target/i386/i386.exp (check_effective_target_adx): New.
        * gcc.target/i386/sse-12.c: Add -madx.
        * gcc.target/i386/sse-13.c: Ditto.
        * gcc.target/i386/sse-14.c: Ditto.
        * gcc.target/i386/sse-22.c: Ditto.
        * gcc.target/i386/sse-23.c: Ditto.
        * g++.dg/other/i386-2.C: Ditto.
        * g++.dg/other/i386-3.C: Ditto.

From-SVN: r190227
2012-08-08 13:25:58 +00:00
Nick Clifton
916f8bbf52 oops - accidentally omitted from previous delta.
From-SVN: r190225
2012-08-08 09:03:05 +00:00
Nick Clifton
c72d36f2aa * config/rl78/rl78.c: Include tree-pass.h.
From-SVN: r190224
2012-08-08 08:34:25 +00:00
Steven Bosscher
cee784f5fb re PR middle-end/54146 (Very slow compile with attribute((flatten)))
PR middle-end/54146
	* ira.c (init_live_subregs): Take live_subregs_used as a bitmap.
	(build_insn_chain): Make live_subregs_used a bitmap.
	Use SBITMAP_SIZE to ignore the paradoxical bytes of subregs.
	Use sbitmap_free to free the live_subreg sbitmaps.

From-SVN: r190223
2012-08-08 06:29:12 +00:00
Steven Bosscher
985e963f0c re PR middle-end/54146 (Very slow compile with attribute((flatten)))
PR middle-end/54146
	* ifcvt.c: Include pointer-set.h.
	(cond_move_process_if_block): Change type of then_regs and
	else_regs from alloca'd array to pointer_sets.
	(check_cond_move_block): Update for this change.
	(cond_move_convert_if_block): Likewise.
	* Makefile.in: Fix dependencies for ifcvt.o.

From-SVN: r190222
2012-08-08 06:28:10 +00:00
Bill Schmidt
88ca9ea18f gimple-ssa-strength-reduction.c (struct incr_info_d): New struct.
gcc:

2012-08-07  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	* gimple-ssa-strength-reduction.c (struct incr_info_d): New struct.
	(incr_vec): New static var.
	(incr_vec_len): Likewise.
	(address_arithmetic_p): Likewise.
	(stmt_cost): Remove dead assignment.
	(dump_incr_vec): New function.
	(cand_abs_increment): Likewise.
	(lazy_create_slsr_reg): Likewise.
	(incr_vec_index): Likewise.
	(count_candidates): Likewise.
	(record_increment): Likewise.
	(record_increments): Likewise.
	(unreplaced_cand_in_tree): Likewise.
	(optimize_cands_for_speed_p): Likewise.
	(lowest_cost_path): Likewise.
	(total_savings): Likewise.
	(analyze_increments): Likewise.
	(ncd_for_two_cands): Likewise.
	(nearest_common_dominator_for_cands): Likewise.
	(profitable_increment_p): Likewise.
	(insert_initializers): Likewise.
	(introduce_cast_before_cand): Likewise.
	(replace_rhs_if_not_dup): Likewise.
	(replace_one_candidate): Likewise.
	(replace_profitable_candidates): Likewise.
	(analyze_candidates_and_replace): Handle candidates with SSA-name
	strides.

gcc/testsuite:

2012-08-07  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	* gcc.dg/tree-ssa/slsr-5.c: New.
	* gcc.dg/tree-ssa/slsr-6.c: New.
	* gcc.dg/tree-ssa/slsr-7.c: New.
	* gcc.dg/tree-ssa/slsr-8.c: New.
	* gcc.dg/tree-ssa/slsr-9.c: New.
	* gcc.dg/tree-ssa/slsr-10.c: New.
	* gcc.dg/tree-ssa/slsr-11.c: New.
	* gcc.dg/tree-ssa/slsr-12.c: New.
	* gcc.dg/tree-ssa/slsr-13.c: New.
	* gcc.dg/tree-ssa/slsr-14.c: New.
	* gcc.dg/tree-ssa/slsr-15.c: New.
	* gcc.dg/tree-ssa/slsr-16.c: New.
	* gcc.dg/tree-ssa/slsr-17.c: New.
	* gcc.dg/tree-ssa/slsr-18.c: New.
	* gcc.dg/tree-ssa/slsr-19.c: New.
	* gcc.dg/tree-ssa/slsr-20.c: New.
	* gcc.dg/tree-ssa/slsr-21.c: New.
	* gcc.dg/tree-ssa/slsr-22.c: New.
	* gcc.dg/tree-ssa/slsr-23.c: New.
	* gcc.dg/tree-ssa/slsr-24.c: New.
	* gcc.dg/tree-ssa/slsr-25.c: New.
	* gcc.dg/tree-ssa/slsr-26.c: New.
	* gcc.dg/tree-ssa/slsr-30.c: New.
	* gcc.dg/tree-ssa/slsr-31.c: New.

From-SVN: r190220
2012-08-08 01:35:22 +00:00
GCC Administrator
02044923b7 Daily bump.
From-SVN: r190219
2012-08-08 00:17:43 +00:00
Benjamin Kosnik
743ca87fe8 re PR libstdc++/54005 (Use __atomic_always_lock_free in libstdc++ is_lock_free instead of __atomic_is_lock_free)
2012-08-07  Benjamin Kosnik  <bkoz@redhat.com>

	PR libstdc++/54005
	* include/std/atomic: Use __atomic_always_lock_free.
	* include/bits/atomic_base.h: Same.

From-SVN: r190216
2012-08-07 23:03:55 +00:00
Steven Bosscher
f8923f7ead cfg.c (debug_bb): Do not set TDF_BLOCKS.
gcc/
	* cfg.c (debug_bb): Do not set TDF_BLOCKS.
	* cfghooks.c (dump_bb): Honor ~TDF_BLOCKS.
	* pretty-print.c (pp_base_flush): Do not add a newline, and do not
	clear pp_needs_newline.
	* pretty-print.h (pp_newline_and_flush): New macro with the behavior
	of pp_base_flush before the above change.
	* langhooks.c (lhd_print_error_function): Use pp_newline_and_flush
	instead of pp_flush.
	* diagnostic.c (diagnostic_finish): Likewise.
	(diagnostic_report_diagnostic): Likewise.
	(verbatim): Likewise.
	(error_recursion): Likewise.
	* tree-pretty-print.c (print_generic_stmt): Likewise.
	(print_generic_stmt_indented): LIkewise.
	* gimple-pretty-print.c (print_gimple_stmt): Likewise.
	(print_gimple_seq): Likewise.
	(gimple_dump_bb_buff): Likewise.

c-family/
	* c-pretty-print.c (pp_c_function_definition): Use pp_newline_and_flush
	instead of separate pp_newline and pp_flush.
	(print_c_tree): Likewise.

cp/
	* error.c (print_instantiation_context): Pretty-print a newline before
	diagnostic_flush_buffer.
	* cxx-pretty-print.c (pp_cxx_function_definition): Use
	pp_newline_and_flush instead of separate pp_newline and pp_flush.

testsuite/
	* gcc.dg/tree-prof/update-loopch.c: Ask for dump with blocks info.
	* gcc.dg/tree-ssa/attr-hotcold-2.c: Likewise.
	* gcc.dg/tree-ssa/pr18133-1.c: Likewise.

From-SVN: r190215
2012-08-07 22:14:29 +00:00
Uros Bizjak
4ccaeceec0 * ChangeLog: Add PR number.
From-SVN: r190213
2012-08-07 23:01:52 +02:00
Uros Bizjak
1791f36f52 var-tracking.c (var_lowpart): Exit early for matched modes.
* var-tracking.c (var_lowpart): Exit early for matched modes.

From-SVN: r190212
2012-08-07 22:57:56 +02:00
Richard Henderson
78ce265b71 s390: Convert from sync to atomic optabs
* config/s390/s390.c (s390_emit_compare_and_swap): Update for
        atomic_compare_and_swapsi_internal name change.
        (s390_expand_insv): Try RISBG last, not requiring operands in
        registers but forcing them there.  Try a limited form of ICM.
        (s390_two_part_insv): New.
        (s390_expand_cs_hqi): Use it.  Update for atomic optabs.
        * config/s390/s390.md (UNSPEC_MOVA): New.
        (TDSI): Remove mode iterator.
        (DGPR, DINT, TDI): New mode iterators.
        (td): New mode attribute.
        (mem_signal_fence): New.
        (mem_thread_fence): Rename from memory_barrier; update for model arg.
        (mem_thread_fence_1): Rename from *memory_barrier.
        (atomic_load<DINT>, atomic_store<DINT>): New expanders.
        (atomic_loaddi_1, atomic_loadti_1): New.
        (atomic_storedi_1, atomic_storeti_1): New.
        (sync_compare_and_swap<TDSI>, sync_compare_and_swap<HQI>): Remove.
        (atomic_compare_and_swap<DGPR>, atomic_compare_and_swap<HQI>): New.
        (atomic_compare_and_swap<DGPR>_internal): New.
        (*sync_compare_and_swap<DW>, *sync_compare_and_swap<GPR>): Remove.
        (*atomic_compare_and_swap<TDI>_1): New.
        (*atomic_compare_and_swapdi_2, *atomic_compare_and_swapsi_3): New.
        (sync_<ATOMIC_Z196><GPR>, sync_old_<ATOMIC_Z196><GPR>): Remove.
        (atomic_fetch_<ATOMIC_Z196><GPR>): New.
        (atomic_fetch_<ATOMC_Z196><GPR>_iaf): New.
        (sync_<ATOMIC><HQI>, sync_old_<ATOMIC><HQI>): Remove.
        (sync_new_<ATOMIC><HQI>): Remove.
        (atomic_<ATOMIC><HQI>, atomic_fetch_<ATOMIC><HQI>): New.
        (atomic_<ATOMIC>_fetch<HQI>): New.
        (sync_lock_test_and_set<HQI>): Remove.
        (atomic_exchange<HQI>): New.

From-SVN: r190209
2012-08-07 10:32:19 -07:00
Paul Brook
3e6011cfeb except.c (switch_to_exception_section): Place tables for DECL_ONE_ONLY functions in comdat groups.
2012-08-07  Paul Brook  <paul@codesourcery.com>
	    Sandra Loosemore  <sandra@codesourcery.com>

	gcc/
	* except.c (switch_to_exception_section): Place tables for
	DECL_ONE_ONLY functions in comdat groups.

Co-Authored-By: Sandra Loosemore <sandra@codesourcery.com>

From-SVN: r190206
2012-08-07 12:08:49 -04:00
Richard Guenther
070ecdfd03 tree-flow.h (copy_ssa_name_fn): New function.
2012-08-07  Richard Guenther  <rguenther@suse.de>

	* tree-flow.h (copy_ssa_name_fn): New function.
	(duplicate_ssa_name_fn): Likewise.
	* tree-flow-inline.h (copy_ssa_name): New function.
	(duplicate_ssa_name): Likewise.
	* tree-ssanames.c (copy_ssa_name_fn): New function.
	(duplicate_ssa_name): Rename to ...
	(duplicate_ssa_name_fn): ... this and adjust.
	* tree-tailcall.c (update_accumulator_with_ops): Use copy_ssa_name.
	* tree-vect-loop-manip.c (slpeel_update_phi_nodes_for_guard1): Likewise.
	(slpeel_update_phi_nodes_for_guard2): Likewise.
	(slpeel_tree_peel_loop_to_edge): Likewise.
	(vect_loop_versioning): Likewise.
	* tree-parloops.c (transform_to_exit_first_loop): Likewise.
	(create_parallel_loop): Likewise.
	* ipa-split.c (split_function): Likewise.
	* tree-vect-loop.c (vect_is_simple_reduction_1): Likewise.
	(vect_create_epilog_for_reduction): Likewise.
	* tree-vect-data-refs.c (bump_vector_ptr): Likewise.
	(vect_setup_realignment): Likewise.
	* tree-vect-stmts.c (vectorizable_load): Likewise.
	* tree-switch-conversion.c (build_one_array): Likewise.
	(gen_def_assigns): Likewise.
	* tree-cfg.c (gimple_make_forwarder_block): Likewise.
	* graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Call
	create_zero_dim_array with the SSA name.
	(rewrite_phi_out_of_ssa): Likewise.
	(rewrite_cross_bb_scalar_dependence): Likewise.  Use copy_ssa_name.

From-SVN: r190202
2012-08-07 14:17:44 +00:00
Richard Guenther
01c59d23df tree-dfa.c (set_ssa_default_def): Clear the SSA_NAME_DEFAULT_DEF bit of the old name when we clear the slot.
2012-08-07  Richard Guenther  <rguenther@suse.de>

	* tree-dfa.c (set_ssa_default_def): Clear the SSA_NAME_DEFAULT_DEF
	bit of the old name when we clear the slot.
	* tree-ssa-live.c (remove_unused_locals): Release any default
	def associated with an unused var.
	* tree-ssa-copy.c (may_propagate_copy_into_asm): Always return true.

From-SVN: r190201
2012-08-07 14:16:11 +00:00
Richard Guenther
5f33a4fc3e tree-into-ssa.c (rewrite_stmt): Remove clobbers for variables we rewrite into SSA form.
2012-08-07  Richard Guenther  <rguenther@suse.de>

	* tree-into-ssa.c (rewrite_stmt): Remove clobbers for variables
	we rewrite into SSA form.
	(rewrite_enter_block): Adjust.
	* gimple-iterator.c (gsi_replace): Also allow replacement with
	a stmt without a lhs.
	* tree-ssa-live.c (remove_unused_locals): Remove code handling
	clobbers of SSA names.
	* tree-nested.c (convert_local_reference_stmt): Remove clobbers
	for variables we access through the local chain.
	* tree-cfg.c (verify_gimple_assign_single): Verify clobbers
	clobber full decls only.

From-SVN: r190200
2012-08-07 12:11:43 +00:00
Richard Guenther
dcc748dd77 gimple.h (gimple_phi_set_result): Adjust SSA_NAME_DEF_STMT.
2012-08-07  Richard Guenther  <rguenther@suse.de>

	* gimple.h (gimple_phi_set_result): Adjust SSA_NAME_DEF_STMT.
	* tree-phinodes.c (make_phi_node): Allow a NULL var.
	* tree-into-ssa.c (insert_phi_nodes_for): Simplify.
	* tree-complex.c (update_phi_components): Likewise.
	* tree-ssa-loop-manip.c (create_iv): Likewise.
	(add_exit_phis_edge): Likewise.
	(split_loop_exit_edge): Likewise.
	(tree_transform_and_unroll_loop): Likewise.
	* value-prof.c (gimple_ic): Likewise.
	(gimple_stringop_fixed_value): Likewise.
	* tree-tailcall.c (tree_optimize_tail_calls_1): Likewise.
	* omp-low.c (expand_parallel_call): Likewise.
	(expand_omp_for_static_chunk): Likewise.
	(expand_omp_atomic_pipeline): Likewise.
	* tree-parloops.c (create_phi_for_local_result): Likewise.
	(transform_to_exit_first_loop): Likewise.
	* tree-vect-data-refs.c (vect_setup_realignment): Likewise.
	* graphite-scop-detection.c (canonicalize_loop_closed_ssa): Likewise.
	* tree-predcom.c (initialize_root_vars): Likewise.
	(initialize_root_vars_lm): Likewise.
	* sese.c (sese_add_exit_phis_edge): Likewise.
	* gimple-streamer-in.c (input_phi): Likewise.
	* tree-inline.c (copy_phis_for_bb): Likewise.
	* tree-ssa-phiprop.c (phiprop_insert_phi): Likewise.
	* tree-cfg.c (gimple_make_forwarder_block): Likewise.
	(gimple_duplicate_bb): Likewise.

From-SVN: r190199
2012-08-07 10:36:01 +00:00
Nick Clifton
d13abe1e88 mn10300.c (mn10300_expand_prologue): Report stack usage if requested.
* config/mn10300/mn10300.c (mn10300_expand_prologue): Report
	stack usage if requested.

From-SVN: r190198
2012-08-07 10:27:37 +00:00
Ian Lance Taylor
233115eaf5 runtime: support NumCPU() on more platforms Added support for Solaris, Irix, *BSD (including Darwin).
runtime: support NumCPU() on more platforms
        Added support for Solaris, Irix, *BSD (including Darwin).
        Still missing support for RTEMS.
        Fixes issue 3698 in Go issue tracker.

From-SVN: r190197
2012-08-07 04:42:49 +00:00
GCC Administrator
2dbfe2c6d5 Daily bump.
From-SVN: r190194
2012-08-07 00:17:32 +00:00
Cary Coutant
292ffe8608 cgraphunit.c (assemble_thunk): Add source line info.
2012-08-06  Cary Coutant  <ccoutant@google.com>

gcc/
	* cgraphunit.c (assemble_thunk): Add source line info.
	* final.c (final): Check for non-null cfg pointer.

gcc/testsuite/
	* g++.dg/debug/dwarf2/non-virtual-thunk.C: New test case.

From-SVN: r190190
2012-08-06 15:49:05 -07:00