1. 07 Apr, 2011 13 commits
  2. 06 Apr, 2011 27 commits
    • Use backend interface for constant switch statements. · 8d0b03a2
      	* go-gcc.cc (if_statement): Use build3_loc.
      	(Gcc_backend::switch_statement): New function.
      	(Gcc_backend::statement_list): New function.
      
      From-SVN: r172066
      Ian Lance Taylor committed
    • re PR fortran/18918 (Eventually support Fortran 2008's coarrays [co-arrays]) · d17b0ae1
      2011-04-06  Tobias Burnus  <burnus@net-b.de>
      
              PR fortran/18918
              PR fortran/48477
              * gfortran.dg/coarray_13.f90: Avoid out-of-bounds access.
      
      From-SVN: r172061
      Tobias Burnus committed
    • re PR fortran/18918 (Eventually support Fortran 2008's coarrays [co-arrays]) · 7b7c0f2a
      2011-04-06  Tobias Burnus  <burnus@net-b.de>
      
              PR fortran/18918
              * trans-intrinsic.c (gfc_conv_intrinsic_function): Fix
              call for this_image.
      
      From-SVN: r172060
      Tobias Burnus committed
    • re PR fortran/18918 (Eventually support Fortran 2008's coarrays [co-arrays]) · 6eb87b33
      2011-04-06  Tobias Burnus  <burnus@net-b.de>
      
              PR fortran/18918
              * caf/mpi.c (_gfortran_caf_init, _gfortran_caf_finalize):
              Add global variable caf_mpi_initialized and use it for when
              finalizing.
      
      From-SVN: r172059
      Tobias Burnus committed
    • sse.md (AVXMODEDCVTDQ2PS): Remove. · a95d4000
      	* config/i386/sse.md (AVXMODEDCVTDQ2PS): Remove.
      	(AVXMODEDCVTPS2DQ): Ditto.
      	(VEC_FLOAT_MODE): Ditto.
      	(<sse>_andnot<mode>3): Merge with avx_andnot<mode>3.  Use VF mode
      	iterator.  Handle TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL target flag.
      	(<any_logic:code><mode>3): Use VF mode iterator.
      	(*<any_logic:code><mode>3): Merge with *avx_<any_logic:code><mode>3.
      	Use VF mode iterator.
      	(copysign<mode>3): Use VF mode iterator.
      	(*andnot<MODEF:mode>3): Merge with *avx_andnot<MODEF:mode>3.  Handle
      	TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL target flag.
      	(*<any_logic:code><MODEF:mode>3): Merge with
      	*avx_<any_logic:code><MODEF:mode>3.
      	(sse_cvtsi2ss): Merge with *avx_cvtsi2ss.
      	(sse_cvtsi2ssq): Merge with *avx_cvtsi2ssq.
      	(avx_cvtdq2ps256): Split from avx_cvtdq2ps<avxmodesuffix>.
      	(avx_cvtdq2ps<avxmodesuffix>): Remove.
      	(sse2_cvtdq2ps): Use %v modifier.
      	(avx_cvtps2dq256): Split from avx_cvtps2dq<avxmodesuffix>.
      	(avx_cvtps2dq<avxmodesuffix>): Remove.
      	(sse2_cvtps2dq): Use %v modifier.
      	(avx_cvttps2dq256): Split from avx_cvttps2dq<avxmodesuffix>.
      	(avx_cvttps2dq<avxmodesuffix>): Remove.
      	(sse2_cvttps2dq): Use %v modifier.
      	(sse2_cvtsi2sd): Merge with *avx_cvtsi2sd.
      	(sse2_cvtsi2sdq): Merge with *avx_cvtsi2sdq.
      	(sse2_cvtsd2siq): Fix insn template.
      	(sse2_cvtsd2siq_2): Ditto.
      	(sse2_cvttsd2siq): Ditto.
      	(sse2_cvtsd2ss): Merge with *avx_cvtsd2ss.
      	(sse2_cvtss2sd): Merge with *avx_cvtss2sd.
      
      From-SVN: r172058
      Uros Bizjak committed
    • mtune.c: Prune note from output. · 4e927875
      2011-04-06  Steve Ellcey  <sje@cup.hp.com>
      
      	* gcc.dg/mtune.c: Prune note from output.
      
      From-SVN: r172056
      Steve Ellcey committed
    • * gcov-io.c: Use GCC Runtime Library Exception. · ad01c437
      From-SVN: r172053
      Joseph Myers committed
    • Use backend interface for if statements. · db0adf82
      Rename some temporary conversion functions to shorter names.
      
      	* go-gcc.cc (Gcc_backend::if_statement): New function.
      	(tree_to_stat): New function.
      	(expr_to_tree): Renamed from expression_to_tree.
      	(stat_to_tree): Renamed from statement_to_tree.
      
      From-SVN: r172052
      Ian Lance Taylor committed
    • Use backend interface for expression statements. · cfebcf30
      	* go-gcc.cc (Gcc_backend::expression_statement): New function.
      
      From-SVN: r172051
      Ian Lance Taylor committed
    • re PR testsuite/48480 (FAIL: staticrootslib.lo -O2 (test for excess errors)) · 763ea608
      	PR testsuite/48480
      	* testsuite/lib/boehm-gc.exp (boehm-gc-dg-prune): Allow for path
      	to ranlib.
      
      From-SVN: r172050
      Rainer Orth committed
    • configure.ac (build_tools): Remove build-byacc. · 85bfb75e
      	* configure.ac (build_tools): Remove build-byacc.
      	(host_libs): Remove mmalloc.
      	(host_tools): Remove byacc make patch prms send-pr ash bash bzip2
      	autoconf automake libtool diff rcs fileutils shellutils time
      	textutils wdiff find uudecode hello tar gzip indent recode release
      	sed perl gawk findutils gettext zip.
      	(libgcj): Remove target-qthreads.
      	(target_tools): Remove target-examples target-gperf.
      	(YACC): Don't handle building byacc.
      	* configure: Regenerate.
      	* Makefile.def (ash, autoconf, automake, bash, byacc, bzip2, diff,
      	dosutils, examples, fileutils, find, findutils, gawk, gettext,
      	gnuserv, gperf, gzip, hello, indent, libtool, make, mmalloc,
      	patch, perl, prms, qthreads, rcs, recode, release, sed, send-pr,
      	shellutils, tar, textutils, time, uudecode, wdiff, zip): Don't
      	handle building components.
      	* Makefile.in: Regenerate.
      
      From-SVN: r172042
      Joseph Myers committed
    • re PR debug/48466 (Wrong variable locations at -O0 on i686) · fe846284
      	PR debug/48466
      	* dwarf2out.c (based_loc_descr): If drap_reg is INVALID_REGNUM, use
      	as base_reg whatever register reg has been eliminated to, instead
      	of hardcoding STACK_POINTER_REGNUM.
      
      	* gcc.dg/guality/pr36977.c: New test.
      	* gcc.dg/guality/pr48466.c: New test.
      
      From-SVN: r172039
      Jakub Jelinek committed
    • tm.texi.in: Document C target hooks as separate from general target hooks. · acce4e77
      	* doc/tm.texi.in: Document C target hooks as separate from general
      	target hooks.
      	* doc/tm.texi: Regenerate.
      	* genhooks.c (struct hook_desc): Add docname field.
      	(HOOK_VECTOR_1, DEFHOOKPOD, DEFHOOK, DEFHOOK_UNDOC).  Initialize
      	docname field.
      	(hook_array): Include c-target.def.
      	(emit_documentation): Use docname field in output.
      	(emit_init_macros): Take docname argument.  Only emit definitions
      	for hooks matching docname.
      	(main): Expect additional arguments in all cases.  Pass argument
      	to emit_init_macros.
      	* target.def: Move initial macro definitions and comments to
      	target-hooks-macros.h.
      	(gcc_targetcm): Move to c-family/c-target.def.
      	* target.h (targetcm): Move declaration to c-family/c-target.h.
      	* targhooks.c (default_handle_c_option): Move to
      	c-family/c-opts.c.
      	* targhooks.h (default_handle_c_option): Move declaration to
      	c-family/c-common.h.
      	* target-hooks-macros.h: New file.
      	* config.gcc (target_has_targetcm): Define and use to add to
      	c_target_objs and cxx_target_objs.
      	* config/default-c.c: New file.
      	* config/darwin-c.c: Include c-target.h and c-target-def.h instead
      	of target.h and target-def.h.
      	(TARGET_HANDLE_C_OPTION, targetcm): Define later in file.
      	(darwin_objc_construct_string, darwin_cfstring_ref_p,
      	darwin_check_cfstring_format_arg): Make static.
      	(TARGET_OBJC_CONSTRUCT_STRING_OBJECT,
      	TARGET_STRING_OBJECT_REF_TYPE_P,
      	TARGET_CHECK_STRING_OBJECT_FORMAT_ARG): Define here.
      	* config/darwin-protos.h (darwin_objc_construct_string,
      	darwin_cfstring_ref_p, darwin_check_cfstring_format_arg): Don't
      	declare.
      	* config/darwin.h (TARGET_OBJC_CONSTRUCT_STRING_OBJECT,
      	TARGET_STRING_OBJECT_REF_TYPE_P,
      	TARGET_CHECK_STRING_OBJECT_FORMAT_ARG, TARGET_HAS_TARGETCM):
      	Remove.
      	* config/t-darwin (darwin-c.o): Update dependencies.
      	* system.h (TARGET_HAS_TARGETCM): Poison.
      	* Makefile.in (TARGET_H): Update.
      	(TARGET_DEF, C_TARGET_DEF, C_TARGET_H, C_TARGET_DEF_H): Define.
      	(c-family/c-format.o, c-family/c-opts.o): Update dependencies.
      	(default-c.o): New target.
      	(s-target-hooks-def-h): Pass "Target Hook" string to genhooks.
      	(c-family/c-target-hooks-def.h, s-c-target-hooks-def-h): New
      	targets.
      	(s-tm-texi): Pass -d option to genhooks.  Also test timestamp on
      	c-target.def.
      	(build/genhooks.o): Update dependencies.
      
      c-family:
      	* c-target-def.h: New file.
      	* c-target.def: New file.
      	* c-target.h: New file.
      	* c-common.c (targetcm): Don't define here.
      	* c-common.h (default_handle_c_option): Declare.
      	* c-format.c: Include c-target.h instead of target.h.
      	* c-opts.c: Include c-target.h instead of target.h.  Explicitly
      	include tm.h.
      	(default_handle_c_option): Move from targhooks.c.
      
      objc:
      	* objc-act.c: Include c-target.h instead of target.h.
      	* Make-lang.in (objc/objc-act.o): Update dependencies.
      
      From-SVN: r172035
      Joseph Myers committed
    • ipa-inline.c (enum inlining_mode): Remove. · 275b4baa
      2011-04-06  Richard Guenther  <rguenther@suse.de>
       
      	* ipa-inline.c (enum inlining_mode): Remove.
      	(cgraph_flatten): Use some other token.
      	(cgraph_edge_early_inlinable_p): New function, split out from ...
      	(cgraph_perform_always_inlining): New function, split out from ...
      	(cgraph_decide_inlining_incrementally): ... here.
      	(cgraph_mark_inline_edge): Adjust.
      	(cgraph_early_inlining): Re-structure.
      	(pass_early_inline): Require SSA form.
      
      From-SVN: r172033
      Richard Guenther committed
    • arm.h (arm_class_likely_spilled_p): Check against LO_REGS only for Thumb-1. · 9adc580c
      2011-03-06  Andrew Stubbs  <ams@codesourcery.com>
      	    Julian Brown  <julian@codesourcery.com>
      	    Mark Shinwell  <shinwell@codesourcery.com>
      
      	gcc/
      	* config/arm/arm.h (arm_class_likely_spilled_p): Check against
      	LO_REGS only for Thumb-1.
      	(MODE_BASE_REG_CLASS): Restrict base registers to those which can
      	be used in short instructions when optimising for size on Thumb-2.
      
      
      
      Co-Authored-By: Julian Brown <julian@codesourcery.com>
      Co-Authored-By: Mark Shinwell <shinwell@codesourcery.com>
      
      From-SVN: r172032
      Andrew Stubbs committed
    • Fix commit for PR target/43920 · 33abfb6b
      From-SVN: r172031
      Ramana Radhakrishnan committed
    • gimple-low.c (lower_gimple_return): When not optimizing, force labels associated… · 516426da
      gimple-low.c (lower_gimple_return): When not optimizing, force labels associated with user returns to be preserved.
      
      	* gimple-low.c (lower_gimple_return): When not optimizing, force labels
      	associated with user returns to be preserved.
      
      From-SVN: r172030
      Eric Botcazou committed
    • dbxout.c: (debug_nesting... · 96621ebf
      2011-04-06  Tristan Gingold  <gingold@adacore.com>
      
      	* dbxout.c: (debug_nesting, symbol_queue, symbol_queue_index)
      	(symbol_queue_size, DBXOUT_DECR_NESTING)
      	(DBXOUT_DECR_NESTING_AND_RETURN): Also define
      	if XCOFF_DEBUGGING_INFO.
      
      From-SVN: r172029
      Tristan Gingold committed
    • i386.md (attribute isa): New. · 07c0852e
      	* config/i386/i386.md (attribute isa): New.
      	(attribute enabled): New.
      	(setcc_<mode>_sse): Merge from *{avx,sse}_setcc<mode>.
      	(*fop_<mode>_comm_mixed): Merge with *fop_<mode>_comm_mixed_avx.
      	(*fop_<mode>_comm_sse): Merge with *fop_<mode>_comm_avx.
      	(*fop_<mode>_1_mixed): Merge with *fop_<mode>_1_mixed_avx.
      	(*fop_<mode>_1_sse): Merge with *fop_<mode>_1_avx.
      	(<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
      	(*ieee_smin<mode>3): Merge with *avx_ieee_smin<mode>3.
      	(*ieee_smax<mode>3): Merge with *avx_ieee_smax<mode>3.
      
      	* config/i386/sse.md (VF): New mode iterator.
      	(VF1): Ditto.
      	(VF2): Ditto.
      	(VF_128): Ditto.
      	(SSEMODEF4): Remove.
      	(attribute sse): Handle V8SF and V4DF modes.
      	(<absneg:code><mode>2): Use VF mode iterator.
      	(*absneg<mode>2): Merge from *{avx,sse}_absneg<mode>2.  Use VF
      	mode iterator.
      	(<plusminus_insn><mode>3): Use VF mode iterator.
      	(*<plusminus_insn><mode>3): Merge with *avx_<plusminus_insn><mode>3.
      	Use VF mode iterator.
      	(<sse>_vm<plusminus_insn><mode>3): Merge with
      	*avx_vm<plusminus_insn><mode>3.  Use VF_128 mode iterator.
      	(mul<mode>3): Use VF mode iterator.
      	(*mul<mode>3): Merge with *avx_mul<mode>3.  Use VF mode iterator.
      	(<sse>_vmmul<mode>3): Merge with *avx_vmmul<mode>3.  Use VF_128
      	mode iterator.
      	(div<VF2:mode>3): Merge from divv2df3 and divv4df3.
      	(div<VF1:mode>3): Merge from divv4sf3 and divv8sf3.
      	(<sse>_div<mode>3): Merge with *avx_div<mode>3.  Use VF mode iterator.
      	(<sse>_vmdiv<mode>3): Merge with *avx_vmdiv<mode>3.  Use VF_128
      	mode iterator.
      	(<sse>_rcp<mode>2): Merge from avx_rcpv8sf2 and sse_rcpv4sf2.
      	Use VF1 mode iterator.
      	(sse_vmrcpv4sf2): Merge with *avx_vmrcpv4sf2.
      	(sqrt<VF2:mode>2): New expander.
      	(sqrt<VF1:mode>2): Merge from sqrtv4sf2 and sqrtv8sf2.
      	(<sse>_sqrt<mode>2): Merge from avx_sqrtv8sf2, sse_sqrtv4sf, sqrtv4df2
      	and sqrtv2df2.  Use VF mode iterator.
      	(<sse>_vmsqrt<mode>2): Merge with *avx_vmsqrt<mode>2.  Use VF_128
      	mode iterator.
      	(rsqrt<VF1:mode>2): Merge from rsqrtv4sf2 and rsqrtv8sf2.
      	(<sse>_rsqrt<mode>2): Merge from avx_rsqrtv8sf2 and sse_rsqrt4sf2.
      	Use VF1 mode iterator.
      	(sse_vmrsqrtv4sf2): Merge with *avx_vmrsqrtv4sf2.
      	(<smaxmin:code><mode>3): Use VF mode iterator.
      	(*<smaxmin:code><mode>3_finite): Merge with
      	*avx_<smaxmin:code><mode>3_finite.  Use VF mode iterator.
      	(*<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
      	(<sse>_vm<smaxmin:code><mode>2): Merge with
      	*avx_vm<smaxmin:code><mode>2.  Use VF_128 mode iterator.
      	(*ieee_smin<mode>3): Merge with *avx_ieee_smin<mode>3.  Use VF
      	mode iterator.
      	(*ieee_smax<mode>3): Merge with *avx_ieee_smax<mode>3.  Use VF
      	mode iterator.
      	(sse3_addsubv2df3): Merge with *avx_addsubv2df3.
      	(sse3_addsubv4sf3): Merge with *avx_addsubv4sf3.
      	(sse3_h<plusminus_insn>v2df3): Merge with *avx_h<plusminus_insn>v2df3.
      	(sse3_h<plusminus_insn>v4sf3): Merge with *avx_h<plusminus_insn>v4sf3.
      	(avx_cmp<mode>3): Rename from avx_cmp<ssemodesuffix><mode>3.  Use
      	VF mode iterator.
      	(avx_vmcmp<mode>3): Rename from avx_cmp<ssescalarmodesuffix><mode>3.
      	Use VF_128 mode iterator.
      	(<sse>_maskcmp<mode>3): Merge with *avx_maskcmp<mode>3.  Use VF
      	mode iterator.
      	(<sse>_vmmaskcmp<mode>3): Merge with *avx_vmmaskcmp<mode>3.  Use
      	VF_128 mode iterator.
      	(vcond<mode>): Use VF mode iterator.
      	* config/i386/predicates.md (sse_comparison_operator): Merge with
      	avx_comparison_float_operator.  Do not declare as special_predicate.
      	* config/i386/i386.c (struct builtin_description): Update for renamed
      	compare patterns.
      	(ix86_expand_args_builtin): Ditto.
      	(ix86_expand_sse_compare_mask): Ditto.
      
      From-SVN: r172028
      Uros Bizjak committed
    • tree-inline.c (estimate_num_insns): For calls simply account for all passed… · ff5d142c
      tree-inline.c (estimate_num_insns): For calls simply account for all passed arguments and a used return value.
      
      2011-04-06  Richard Guenther  <rguenther@suse.de>
      
      	* tree-inline.c (estimate_num_insns): For calls simply account
      	for all passed arguments and a used return value.
      
      From-SVN: r172024
      Richard Guenther committed
    • re PR middle-end/47663 (Very simple wrapper not inlined) · d7d1d041
      2011-04-06  Richard Guenther  <rguenther@suse.de>
       
      	PR tree-optimization/47663
      	* cgraph.h (struct cgraph_edge): Add call_stmt_size and
      	call_stmt_time fields.
      	(cgraph_edge_inlinable_p): Declare.
      	(cgraph_edge_recursive_p): New inline function.
      	* cgraph.c (cgraph_create_edge_1): Initialize call_stmt_size.
      	(cgraph_clone_edge): Copy it.
      	* ipa-inline.c (cgraph_estimate_edge_time): New function.
      	Account for call stmt time.
      	(cgraph_estimate_time_after_inlining): Take edge argument.
      	(cgraph_estimate_edge_growth): Account call stmt size.
      	(cgraph_estimate_size_after_inlining): Take edge argument.
      	(cgraph_mark_inline_edge): Adjust.
      	(cgraph_check_inline_limits): Likewise.
      	(cgraph_recursive_inlining_p): Remove.
      	(cgraph_edge_badness): Use cgraph_edge_recursive_p.
      	(cgraph_decide_recursive_inlining): Take edge argument and
      	adjust.
      	(cgraph_decide_inlining_of_small_functions): Do not avoid
      	diags for recursive inlining here.
      	(cgraph_flatten): Adjust.
      	(cgraph_decide_inlining_incrementally): Likewise.
      	(estimate_function_body_sizes): Remove call cost handling.
      	(compute_inline_parameters): Initialize caller edge call costs.
      	(cgraph_estimate_edge_growth): New function.
      	(cgraph_estimate_growth): Use it.
      	(cgraph_edge_badness): Likewise.
      	(cgraph_check_inline_limits): Take an edge argument.
      	(cgraph_decide_inlining_of_small_functions): Adjust.
      	(cgraph_decide_inlining): Likewise.
      	* tree-inline.c (estimate_num_insns): Only account for call
      	return value if it is used.
      	(expand_call_inline): Avoid diagnostics on recursive inline
      	functions here.
      	* lto-cgraph.c (lto_output_edge): Output edge call costs.
      	(input_edge): Input edge call costs.
      
      	* gcc.dg/tree-ssa/inline-8.c: New testcase.
      
      From-SVN: r172023
      Richard Guenther committed
    • * config/alpha/osf5.h (MAX_OFILE_ALIGNMENT): Define. · 2feb95f7
      From-SVN: r172022
      Rainer Orth committed
    • invoke.texi (Spec Files): Fix typo. · 26fbd9c2
      2011-04-06  Jonathan Wakely  <jwakely.gcc@gmail.com>
      
      	* doc/invoke.texi (Spec Files): Fix typo.
      
      From-SVN: r172020
      Jonathan Wakely committed
    • profile.c (branch_prob): Move declaration of local variable. · 694dc0ca
      	* profile.c (branch_prob): Move declaration of local variable.  Remove
      	obsolete ??? comment.  Expand the location explicitly instead of using
      	the LOCATION_FILE and LOCATION_LINE macros.
      
      From-SVN: r172019
      Eric Botcazou committed
    • libgo: Always use AM_LDFLAGS when linking libgo.la. · 5c8e4952
      This ensures that we pass -fsplit-stack as required.
      
      From-SVN: r172018
      Ian Lance Taylor committed
    • arm.md (arm_cmpsi_insn): Compute attr "length". · 4925d0d5
      	* config/arm/arm.md (arm_cmpsi_insn): Compute attr "length".
      	(arm_cond_branch): Likewise.
      	(arm_cond_branch_reversed): Likewise.
      	(arm_jump): Likewise.
      	(push_multi): Likewise.
      	* config/arm/constraints.md (Py): New constraint.
      
      From-SVN: r172017
      Wei Guozhi committed
    • re PR bootstrap/48471 (ia64-*-* does not bootstrap due to unused variables in dbxout.c) · f55dfa2f
      	PR bootstrap/48471
      	* dbxout.c (debug_nesting, symbol_queue, symbol_queue_index):
      	Move these...
      	(symbol_queue_size, DBXOUT_DECR_NESTING): ...and these...
      	(DBXOUT_DECR_NESTING_AND_RETURN): ...and this under
      	#ifdef DBX_DEBUGGING_INFO.
      
      From-SVN: r172016
      Nathan Froyd committed