Commit Graph

108003 Commits

Author SHA1 Message Date
Jason Merrill 5b97c77f8c semantics.c (finish_decltype_type): Add complain parm.
* semantics.c (finish_decltype_type): Add complain parm.
	* cp-tree.h: Adjust.
	* parser.c (cp_parser_decltype): Adjust.
	* pt.c (tsubst): Adjust.

From-SVN: r172139
2011-04-07 17:46:57 -04:00
Jason Merrill 1ee44b260d re PR c++/48450 ([C++0x][SFINAE] Hard errors with static_cast expressions)
PR c++/48450
	* c-family/c-common.c (c_common_truthvalue_conversion): Don't ignore
	conversion from C++0x scoped enum.
	* cp/cvt.c (ocp_convert): Handle converting scoped enum to bool.

From-SVN: r172138
2011-04-07 17:46:48 -04:00
Joseph Myers 39e7722bbf m68k.c (m68k_handle_option): Don't handle OPT_m68000...
* config/m68k/m68k.c (m68k_handle_option): Don't handle
	OPT_m68000, OPT_mc68000, OPT_m68010, OPT_m68020, OPT_mc68020,
	OPT_m68030, OPT_m68040, OPT_m68060, OPT_m68302, OPT_m68332 and
	OPT_mcpu32.
	* config/m68k/m68k.h (OPTION_DEFAULT_SPECS, ASM_CPU_SPEC): Don't
	handle -mc68000, -m68000, -m68302, -m68010, -mc68020, -m68020,
	-m68030, -m68040, -m68060, -mcpu32 and -m68332.
	* config/m68k/m68k.opt (m68000, m68010, m68020, m68030, m68040,
	m68060, m68302, m68332, mc68000, mc68020, mcpu32): Use Alias.
	* config/m68k/t-mlibs (CANONICALIZE_OPTIONS): Remove.
	(MULTILIB_OPTIONS): Don't use $(CANONICALIZE_OPTIONS).
	(MULTILIB_MATCHES): Map -march= options to corresponding -mcpu=
	options.  Don't map other m68k options manually.  Don't handle
	old-style options as canonical.
	(MULTILIB_EXCEPTIONS): Don't use $(CANONICALIZE_OPTIONS).
	* doc/install.texi (m68k-*-*): Document binutils version
	requirement.

From-SVN: r172130
2011-04-07 22:25:55 +01:00
Eric Botcazou cf103ca449 basic-block.h (force_nonfallthru): Move to...
* basic-block.h (force_nonfallthru): Move to...
	* cfghooks.h (struct cfg_hooks): Add force_nonfallthru hook.
	(force_nonfallthru): ...here.
	* cfghooks.c (force_nonfallthru): New function.
	* cfgrtl.c (force_nonfallthru): Rename into...
	(rtl_force_nonfallthru): ...this.
	(commit_one_edge_insertion): Do not set AUX field.
	(commit_edge_insertions): Do not discover new basic blocks.
	(rtl_cfg_hooks): Add rtl_force_nonfallthru.
	(cfg_layout_rtl_cfg_hooks): Likewise.
	* function.c (thread_prologue_and_epilogue_insns): Remove bogus
	ATTRIBUTE_UNUSED.  Discover new basic blocks in the prologue insns.
	* tree-cfg.c (gimple_cfg_hooks): Add NULL for force_nonfallthru.

From-SVN: r172128
2011-04-07 21:11:51 +00:00
Mike Stump df9292840d non-local-goto-5.c: Fix for targets with no trampolines.
* gcc.dg/torture/stackalign/non-local-goto-5.c: Fix for targets
	with no trampolines.

From-SVN: r172127
2011-04-07 20:55:01 +00:00
Anatoly Sokolov 14431f58e4 mips.h (REG_MODE_OK_FOR_BASE_P, [...]): Remove macros.
* config/mips/mips.h (REG_MODE_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P):
	Remove macros.

From-SVN: r172125
2011-04-07 23:58:24 +04:00
Uros Bizjak 3729983c93 sse.md: Update copyright year.
* config/i386/sse.md: Update copyright year.
	(avxcvtvecmode): Remove.
	(sse_movhlps): Merge with *avx_movhlps.
	(sse_movlhps): Merge with *avx_movlhps.
	(vec_interleave_highv4sf): Merge with *avx_interleave_highv4sf.
	(vec_interleave_lowv4sf): Merge with *avx_interleave_lowv4sf.
	(sse_shufps_<mode>): Merge with *avx_shufps_<mode>.
	(sse_loadhps): Merge with *avx_loadhps.
	(sse_storelps): Merge with *avx_storelps.
	(sse_loadlps): Merge with *avx_loadlps.
	(sse_movss): Merge with *avx_movss.
	(*vec_concatv2sf_sse4_1): Merge with *vec_concatv2sf_avx.
	(*vec_concatv4sf_sse): Merge with *vec_concatv4sf_avx.
	(*vec_set<mode>_0_sse4_1): Merge with *vec_set<mode>_0_avx.
	(*vec_set<mode>_0_sse2): Split multi-unit alternative.
	(vec_set<mode>_0): Ditto.
	(*vec_setv4sf_sse4_1): Merge with *vec_setv4sf_avx.
	(sse4_1_insertps): Merge with *avx_insertps.
	(*sse3_interleave_highv2df): Merge with *avx_interleave_highv2df.
	(*sse3_interleave_lowv2df): Merge with *avx_interleave_lowv2df.
	(vec_interleave_highv2di): Merge with *avx_interleave_highv2di.
	(sse2_shufpd_<mode>): Merge with *avx_shufpd_<mode>.
	(sse2_storehpd): Merge with *avx_storehpd.
	(sse2_loadhpd): Merge with *avx_loadhpd.
	(sse2_loadlpd): Merge with *avx_loadlpd.
	(sse2_movsd): Merge with *avx_movsd.
	(*vec_concatv2df): Merge with *vec_concatv2df.

From-SVN: r172123
2011-04-07 20:47:16 +02:00
Jakub Jelinek c714e2423e re PR fortran/48117 (ICE: OpenMP; in build_int_cst_wide, at tree.c:1178)
PR fortran/48117
	* gfortran.dg/gomp/pr48117.f90: New test.

From-SVN: r172119
2011-04-07 20:31:43 +02:00
Jakub Jelinek 54f16bf8f3 re PR debug/48343 (ICE compiling i586 linux-2.6.38/drivers/staging/wlan-ng/p80211wep.c: in form_sum, at reload.c:5338)
PR debug/48343
	* combine.c (combine_instructions): Add last_combined_insn,
	update it if insn is after it, pass it to all try_combine
	calls.
	(try_combine): Add last_combined_insn parameter, pass it instead of
	i3 to propagate_for_debug.

	* gcc.dg/torture/pr48343.c: New test.

From-SVN: r172109
2011-04-07 19:58:05 +02:00
Jakub Jelinek 4e626909c7 re PR debug/48343 (ICE compiling i586 linux-2.6.38/drivers/staging/wlan-ng/p80211wep.c: in form_sum, at reload.c:5338)
PR debug/48343
	* combine.c (combine_instructions): Add last_combined_insn,
	update it if insn is after it, pass it to all try_combine
	calls.
	(try_combine): Add last_combined_insn parameter, pass it instead of
	i3 to propagate_for_debug.

	* gcc.dg/torture/pr48343.c: New test.

From-SVN: r172108
2011-04-07 19:57:26 +02:00
Rainer Orth 2e3597fef8 * gcc.target/i386/asm-6.c: Remove dg-xfail-if.
From-SVN: r172107
2011-04-07 17:11:30 +00:00
Ian Lance Taylor 405ca10418 libgo: Update to current Go library.
From-SVN: r172106
2011-04-07 17:09:10 +00:00
Joseph Myers a751005d50 * de.po: Update.
From-SVN: r172103
2011-04-07 17:30:42 +01:00
Eric Botcazou f15b8bdf44 Fix typos
From-SVN: r172102
2011-04-07 16:07:44 +00:00
Maxim Kuvyrkov 5fc1ae9931 * gcc.dg/lto/20090210_0.c: Require tls_runtime target.
From-SVN: r172101
2011-04-07 14:53:50 +00:00
Nick Clifton 5a10b0a943 mn10300.md (movqi_internal): Add alternatives to handle MDR <-> data register transfers.
* config/mn10300/mn10300.md (movqi_internal): Add alternatives
	to handle MDR <-> data register transfers.
	(movhi_internal): Likewise.

From-SVN: r172099
2011-04-07 14:02:37 +00:00
Alan Modra 20c033673b rs6000.c (rs6000_stack_info): Don't compare against previous stack info.
* config/rs6000/rs6000.c (rs6000_stack_info): Don't compare against
	previous stack info.

From-SVN: r172096
2011-04-07 20:47:05 +09:30
Stuart Henderson 8072c46058 MAINTAINERS (Write After Approval): Add myself.
2011-04-07  Stuart Henderson  <shenders@gcc.gnu.org>

	* MAINTAINERS (Write After Approval): Add myself.

From-SVN: r172095
2011-04-07 11:09:02 +00:00
Tom de Vries bf22920b4a re PR target/43920 (Choosing conditional execution over conditional branches for code size in some cases.)
2011-04-07  Tom de Vries  <tom@codesourcery.com>

	PR target/43920
	* cfgcleanup.c (try_crossjump_to_edge): Add dir parameter.  Pass dir to
	flow_find_cross_jump.  Swap variables to implement backward replacement.
	(try_crossjump_bb): Add argument to try_crossjump_to_edge.

From-SVN: r172094
2011-04-07 09:48:39 +00:00
Tom de Vries c7a69ce198 re PR target/43920 (Choosing conditional execution over conditional branches for code size in some cases.)
2011-04-07  Tom de Vries  <tom@codesourcery.com>

	PR target/43920
	* lib/scanasm.exp (object-size): New proc.
	* gcc.target/arm/pr43920-2.c: New test.

From-SVN: r172093
2011-04-07 09:28:11 +00:00
Tom de Vries 823918aef3 re PR target/43920 (Choosing conditional execution over conditional branches for code size in some cases.)
2011-04-07  Tom de Vries  <tom@codesourcery.com>

	PR target/43920
	* cfgcleanup.c (walk_to_nondebug_insn): New function.
	(flow_find_cross_jump): Use walk_to_nondebug_insn.  Recalculate bb1 and
	bb2.
	(try_crossjump_to_edge): Handle case that newpos1 or newpos2 is not src1
	or src2.  Redirect edges to the last basic block.  Update frequency and
	count on multiple basic blocks in case of fallthru.

From-SVN: r172091
2011-04-07 08:35:23 +00:00
Tom de Vries 472c95f5af re PR target/43920 (Choosing conditional execution over conditional branches for code size in some cases.)
2011-04-07  Tom de Vries  <tom@codesourcery.com>

	PR target/43920
	* cfgcleanup.c (equal_different_set_p, can_replace_by, merge_dir): New
	function.
	(old_insns_match_p): Change return type.  Replace return false/true with
	return dir_none/dir_both.  Use can_replace_by.
	(flow_find_cross_jump): Add dir_p parameter.  Init replacement direction
	from dir_p.  Register replacement direction in dir, last_dir and
	afterlast_dir.	Handle new return type of old_insns_match_p using
	merge_dir.  Return replacement direction in dir_p.
	(flow_find_head_matching_sequence, outgoing_edges_match): Handle new
	return type of old_insns_match_p.
	(try_crossjump_to_edge): Add argument to call to flow_find_cross_jump.
	* ifcvt.c ( cond_exec_process_if_block): Add argument to call to
	flow_find_cross_jump.
	* basic-block.h (enum replace_direction): New type.
	(flow_find_cross_jump): Add parameter to declaration.

From-SVN: r172090
2011-04-07 08:10:34 +00:00
Jeffrey Yasskin 7c16382a3a In C++0x mode, import iota and is_sorted from namespace std into namespace __gnu_cxx to avoid ambiguous call errors.
In C++0x mode, import iota and is_sorted from namespace std into
namespace __gnu_cxx to avoid ambiguous call errors.  copy_n would be a
good candidate for this too, except it was standardized with a
different return type.

Tested:
  `make -k check-c++` on x86_64-unknown-linux-gnu.

libstdc++-v3/ChangeLog:

2011-04-06  Jeffrey Yasskin  <jyasskin@google.com>

        * include/ext/algorithm (is_sorted): In C++0x mode import from
        namespace std.
        * include/ext/numeric (iota): In C++0x mode import from
        namespace std.
        * testsuite/ext/is_sorted/cxx0x.cc: New.
        * testsuite/ext/iota/cxx0x.cc: New.

From-SVN: r172073
2011-04-07 04:11:12 +00:00
GCC Administrator 030759ae91 Daily bump.
From-SVN: r172072
2011-04-07 00:18:54 +00:00
Ian Lance Taylor 8d0b03a22d Use backend interface for constant switch statements.
* go-gcc.cc (if_statement): Use build3_loc.
	(Gcc_backend::switch_statement): New function.
	(Gcc_backend::statement_list): New function.

From-SVN: r172066
2011-04-06 23:07:13 +00:00
Tobias Burnus d17b0ae1ca re PR fortran/18918 (Eventually support Fortran 2008's coarrays [co-arrays])
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
2011-04-06 20:32:27 +02:00
Tobias Burnus 7b7c0f2a21 re PR fortran/18918 (Eventually support Fortran 2008's coarrays [co-arrays])
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
2011-04-06 20:30:58 +02:00
Tobias Burnus 6eb87b330f re PR fortran/18918 (Eventually support Fortran 2008's coarrays [co-arrays])
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
2011-04-06 20:29:55 +02:00
Uros Bizjak a95d400021 sse.md (AVXMODEDCVTDQ2PS): Remove.
* 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
2011-04-06 19:39:27 +02:00
Steve Ellcey 4e927875b0 mtune.c: Prune note from output.
2011-04-06  Steve Ellcey  <sje@cup.hp.com>

	* gcc.dg/mtune.c: Prune note from output.

From-SVN: r172056
2011-04-06 16:15:28 +00:00
Joseph Myers ad01c4370f * gcov-io.c: Use GCC Runtime Library Exception.
From-SVN: r172053
2011-04-06 17:04:18 +01:00
Ian Lance Taylor db0adf8230 Use backend interface for if statements.
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
2011-04-06 15:46:53 +00:00
Ian Lance Taylor cfebcf30ea Use backend interface for expression statements.
* go-gcc.cc (Gcc_backend::expression_statement): New function.

From-SVN: r172051
2011-04-06 15:30:20 +00:00
Rainer Orth 763ea608b4 re PR testsuite/48480 (FAIL: staticrootslib.lo -O2 (test for excess errors))
PR testsuite/48480
	* testsuite/lib/boehm-gc.exp (boehm-gc-dg-prune): Allow for path
	to ranlib.

From-SVN: r172050
2011-04-06 15:23:33 +00:00
Joseph Myers 85bfb75e74 configure.ac (build_tools): Remove build-byacc.
* 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
2011-04-06 13:18:12 +01:00
Jakub Jelinek fe84628425 re PR debug/48466 (Wrong variable locations at -O0 on i686)
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
2011-04-06 13:49:59 +02:00
Joseph Myers acce4e7738 tm.texi.in: Document C target hooks as separate from general target hooks.
* 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
2011-04-06 12:08:17 +01:00
Richard Guenther 275b4baa71 ipa-inline.c (enum inlining_mode): Remove.
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
2011-04-06 10:16:30 +00:00
Andrew Stubbs 9adc580c20 arm.h (arm_class_likely_spilled_p): Check against LO_REGS only for Thumb-1.
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
2011-04-06 09:52:52 +00:00
Ramana Radhakrishnan 33abfb6bdb Fix commit for PR target/43920
From-SVN: r172031
2011-04-06 09:41:07 +00:00
Eric Botcazou 516426da9f 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
2011-04-06 09:34:02 +00:00
Tristan Gingold 96621ebf37 dbxout.c: (debug_nesting...
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
2011-04-06 09:29:53 +00:00
Uros Bizjak 07c0852e00 i386.md (attribute isa): New.
* 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
2011-04-06 11:24:46 +02:00
Richard Guenther ff5d142c9e 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
2011-04-06 08:56:28 +00:00
Richard Guenther d7d1d041ae re PR middle-end/47663 (Very simple wrapper not inlined)
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
2011-04-06 08:51:23 +00:00
Rainer Orth 2feb95f7d8 * config/alpha/osf5.h (MAX_OFILE_ALIGNMENT): Define.
From-SVN: r172022
2011-04-06 08:48:22 +00:00
Jonathan Wakely 26fbd9c219 invoke.texi (Spec Files): Fix typo.
2011-04-06  Jonathan Wakely  <jwakely.gcc@gmail.com>

	* doc/invoke.texi (Spec Files): Fix typo.

From-SVN: r172020
2011-04-06 09:00:43 +01:00
Eric Botcazou 694dc0cad2 profile.c (branch_prob): Move declaration of local variable.
* 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
2011-04-06 06:17:22 +00:00
Ian Lance Taylor 5c8e495222 libgo: Always use AM_LDFLAGS when linking libgo.la.
This ensures that we pass -fsplit-stack as required.

From-SVN: r172018
2011-04-06 06:01:53 +00:00
Wei Guozhi 4925d0d5e5 arm.md (arm_cmpsi_insn): Compute attr "length".
* 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
2011-04-06 02:24:16 +00:00