Commit Graph

112323 Commits

Author SHA1 Message Date
David S. Miller
26e2f443df Fix VIS3 assembler check and conditionalize testsuite on VIS3 support.
gcc/

	PR 50655
	* configure.ac: Add .register directives to VIS3 test.
	* configure: Regenerate.

gcc/testsuite/

	PR 50655
	* gcc.target/sparc/sparc.exp: Add vis3 target test.
	* gcc.target/sparc/cmask.c: Use it.
	* gcc.target/sparc/fhalve.c: Likewise.
	* gcc.target/sparc/fnegop.c: Likewise.
	* gcc.target/sparc/fpadds.c: Likewise.
	* gcc.target/sparc/fshift.c: Likewise.
	* gcc.target/sparc/fucmp.c: Likewise.
	* gcc.target/sparc/lzd.c: Likewise.
	* gcc.target/sparc/vis3misc.c: Likewise.
	* gcc.target/sparc/xmul.c: Likewise.

From-SVN: r179667
2011-10-07 10:23:47 -07:00
Richard Henderson
d792cd1e4a Fix avx256 test cases for AVX2.
From-SVN: r179666
2011-10-07 10:01:43 -07:00
Jonathan Wakely
920a97b75d testsuite_allocator.h (uneq_allocator): Add propagate_on_container_swap typedef for C++0x testing.
2011-10-07  Jonathan Wakely  <jwakely.gcc@gmail.com>

	* testsuite/util/testsuite_allocator.h (uneq_allocator): Add
	propagate_on_container_swap typedef for C++0x testing.

From-SVN: r179665
2011-10-07 16:20:31 +00:00
Richard Henderson
d67ce16aa5 * config.gcc (x86_64-*): Add core-avx-i, core-avx2 for with_cpu.
From-SVN: r179664
2011-10-07 08:43:12 -07:00
Richard Henderson
dca804668a re PR other/49752 (Non-existing struct tree_type' in fold_checksum_tree in fold-const.c, can't build with --enable-checking=fold')
PR 49752
        * fold-const.c (fold_checksum_tree): Remove out-of-date assert.

From-SVN: r179663
2011-10-07 08:35:49 -07:00
Andrew Stubbs
793f1c97d1 predicates.md (shift_amount_operand): Remove constant range check.
2011-10-07  Andrew Stubbs  <ams@codesourcery.com>

	gcc/
	* config/arm/predicates.md (shift_amount_operand): Remove constant
	range check.
	(shift_operator): Check range of constants for all shift operators.

	gcc/testsuite/
	* gcc.dg/pr50193-1.c: New file.
	* gcc.target/arm/shiftable.c: New file.

From-SVN: r179662
2011-10-07 15:00:06 +00:00
Andrew Stubbs
55cdadd504 predicates.md (shift_amount_operand): Remove constant range check.
2011-10-07  Andrew Stubbs  <ams@codesourcery.com>

	gcc/
	* config/arm/predicates.md (shift_amount_operand): Remove constant
	range check.
	(shift_operator): Check range of constants for all shift operators.

	gcc/testsuite/
	* gcc.dg/pr50193-1.c: New file.
	* gcc.target/arm/shiftable.c: New file.

From-SVN: r179661
2011-10-07 14:59:37 +00:00
Janus Weil
58eba51591 re PR fortran/50625 ([OOP] ALLOCATABLE attribute lost for module CLASS variables)
2011-10-07  Janus Weil  <janus@gcc.gnu.org>

	PR fortran/50625
	* class.c (gfc_build_class_symbol): Fix whitespace.
	* module.c (mio_symbol): Set 'class_ok' attribute.
	* trans-decl.c (gfc_get_symbol_decl): Make sure the backend_decl has
	been built for class symbols.


2011-10-07  Janus Weil  <janus@gcc.gnu.org>

	PR fortran/50625
	* gfortran.dg/class_46.f03: New.

From-SVN: r179660
2011-10-07 16:40:14 +02:00
Joern Rennecke
14307a72de pr47276.c (ASMNAME, [...]): Define.
* gcc.dg/pr47276.c (ASMNAME, ASMNAME2, STRING): Define.
        (__EI___vsyslog_chk, __EI_syslog, __EI_vsyslog): Use ASMNAME.  
        (syslog, vsyslog, __vsyslog_chk): Likewise.

        * gcc.dg/lto/20081222_1.c (ASMNAME, ASMNAME2, STRING): Define.
        (x, EXT_x): Use ASMNAME.

        * gcc.dg/torture/pr48044.c (ASMNAME, ASMNAME2, STRING): Define.
        (a, c): Use ASMNAME.

From-SVN: r179659
2011-10-07 14:52:17 +01:00
Andreas Krebbel
68c0ef75f3 s390.c (s390_emit_tls_call_insn): Remove assertion.
2011-10-07  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>

	* config/s390/s390.c (s390_emit_tls_call_insn): Remove assertion.
	Load GOT pointer for non-pic builds.
	(s390_load_got): Replace pic_offset_table_rtx with hardcoded r12.
	(s390_emit_call): Likewise.

From-SVN: r179658
2011-10-07 13:50:01 +00:00
Tom de Vries
8be5e1cc7d re PR middle-end/50527 (inconsistent vla align)
2011-10-07  Tom de Vries  <tom@codesourcery.com>

	PR middle-end/50527
	* gcc.dg/pr50527.c: New test.

From-SVN: r179656
2011-10-07 12:49:56 +00:00
Tom de Vries
13e49da934 re PR middle-end/50527 (inconsistent vla align)
2011-10-07  Tom de Vries  <tom@codesourcery.com>

	PR middle-end/50527
	* tree.c (build_common_builtin_nodes): Add local_define_builtin for
	BUILT_IN_ALLOCA_WITH_ALIGN.  Mark that BUILT_IN_ALLOCA_WITH_ALIGN can
	throw.
	* builtins.c (expand_builtin_alloca): Handle BUILT_IN_ALLOCA_WITH_ALIGN
	arglist.  Set align for	BUILT_IN_ALLOCA_WITH_ALIGN.
	(expand_builtin): Handle BUILT_IN_ALLOCA_WITH_ALIGN.
	(is_inexpensive_builtin): Handle BUILT_IN_ALLOCA_WITH_ALIGN.
	* tree-ssa-ccp.c (evaluate_stmt): Set align for
	BUILT_IN_ALLOCA_WITH_ALIGN.
	(fold_builtin_alloca_for_var): Rename to ...
	(fold_builtin_alloca_with_align): Set DECL_ALIGN from 2nd
	BUILT_IN_ALLOCA_WITH_ALIGN argument.
	(ccp_fold_stmt): Try folding BUILT_IN_ALLOCA_WITH_ALIGN using
	fold_builtin_alloca_with_align.
	(optimize_stack_restore): Handle BUILT_IN_ALLOCA_WITH_ALIGN.
	* builtins.def (BUILT_IN_ALLOCA_WITH_ALIGN): Declare using
	DEF_BUILTIN_STUB.
	* ipa-pure-const.c (special_builtin_state): Handle
	BUILT_IN_ALLOCA_WITH_ALIGN.
	* tree-ssa-alias.c (ref_maybe_used_by_call_p_1)
	(call_may_clobber_ref_p_1): Same.
	* function.c (gimplify_parameters): Lower vla to
	BUILT_IN_ALLOCA_WITH_ALIGN.
	* gimplify.c (gimplify_vla_decl): Same.
	* cfgexpand.c (expand_call_stmt): Handle BUILT_IN_ALLOCA_WITH_ALIGN.
	* tree-mudflap.c (mf_xform_statements): Same.
	* tree-ssa-dce.c (mark_stmt_if_obviously_necessary)
	(mark_all_reaching_defs_necessary_1, propagate_necessity): Same.
	* varasm.c (incorporeal_function_p): Same.
	* tree-object-size.c (alloc_object_size): Same.
	* gimple.c (gimple_build_call_from_tree): Same.

From-SVN: r179655
2011-10-07 12:49:49 +00:00
Bernd Schmidt
764a2546bb function.c (frame_required_for_rtx): Remove function.
* function.c (frame_required_for_rtx): Remove function.
	(requires_stack_frame_p): New arg set_up_by_prologue.  All callers
	changed.  Compute a set of mentioned registers and compare against
	the new arg rather than calling frame_required_for_rtx.
	(thread_prologue_and_epilogue_insns): Compute the set_up_by_prologue
	reg set.  Convert the unconverted_simple_returns mechanism to store
	jump insns rather than their basic blocks.  Also check the
	orig_entry_edge destination for new blocks.

From-SVN: r179654
2011-10-07 12:20:17 +00:00
Jakub Jelinek
87aab9b24b re PR middle-end/50650 (ICE in vect_is_simple_use_1, at tree-vect-stmts.c:5689)
PR tree-optimization/50650
	* tree-vect-patterns.c (vect_recog_mixed_size_cond_pattern): Don't
	call vect_is_simple_cond here, instead fail if cond_expr isn't
	COMPARISON_CLASS_P or if get_vectype_for_scalar_type returns NULL
	for cond_expr's first operand.
	* tree-vect-stmts.c (vect_is_simple_cond): Static again.
	* tree-vectorizer.h (vect_is_simple_cond): Remove prototype.

	* gcc.c-torture/compile/pr50650.c: New test.

From-SVN: r179653
2011-10-07 13:48:03 +02:00
Eric Botcazou
228ee42613 re PR lto/50492 (Ada bootstrap failure --with-build-config=bootstrap-lto)
PR lto/50492
	* gcc-interface/gigi.h (gnat_pushdecl): Adjust comment.
	* gcc-interface/utils.c (global_context): New variable.
	(gnat_pushdecl): Initialize it and set it as the DECL_CONTEXT of DECLs
	that are either public external or at top level.  Use "No" macro.
	(end_subprog_body): Call decl_function_context.
	(rest_of_subprog_body_compilation): Likewise.

From-SVN: r179652
2011-10-07 11:43:03 +00:00
Rainer Orth
b97bf1ac69 Disable ABI warnings for gcc.c-torture/execute/vector-compare-2.c (PR tree-optimization/50575)
PR tree-optimization/50575
	* gcc.c-torture/execute/vector-compare-2.x: New file.

From-SVN: r179651
2011-10-07 11:32:59 +00:00
Eric Botcazou
71196d4e64 gigi.h (gnat_useless_type_conversion): Declare.
* gcc-interface/gigi.h (gnat_useless_type_conversion): Declare.
	(rest_of_subprog_body_compilation): Likewise.
	* gcc-interface/decl.c (gnat_to_gnu_entity) <E_Variable>: For renaming,
	test for useless conversions by means of gnat_useless_type_conversion.
	* gcc-interface/trans.c: Include bitmap.h and cgraph.h.
	(language_function): Add named_ret_val and other_ret_val.
	(f_named_ret_val): New macro.
	(f_other_ret_val): Likewise.
	(gigi): Call rest_of_subprog_body_compilation.
	(struct nrv_data): New structure.
	(is_nrv_p): New predicate.
	(prune_nrv_r): New helper function.
	(prune_nrv_in_block): New function.
	(finalize_nrv_r): New helper function.
	(finalize_nrv): New function.
	(return_value_ok_for_nrv_p): New predicate.
	(build_return_expr): If optimization is enabled, record candidates for
	the Named Return Value optimization.
	(build_function_stub): Call rest_of_subprog_body_compilation.
	(Subprogram_Body_to_gnu): If optimization is enabled and there are
	candidates, finalize the Named Return Value optimization.
	Call rest_of_subprog_body_compilation.
	(call_to_gnu): At the end, if a return value is needed, simplify the
	result before wrapping it up in a COMPOUND_EXPR.
	* gcc-interface/utils.c (end_subprog_body): Split into...
	(rest_of_subprog_body_compilation): ...this.  New function.
	(gnat_useless_type_conversion): Likewise.

From-SVN: r179650
2011-10-07 11:17:55 +00:00
Rainer Orth
302b8e2a16 Don't XFAIL gcc.dg/uninit-B.c etc. (PR middle-end/50125)
PR middle-end/50125
	* gcc.dg/uninit-B.c (baz): Remove xfail *-*-*.
	* gcc.dg/uninit-pr19430.c (main): Remove xfail *-*-*.
	(bar3): Likewise.

From-SVN: r179649
2011-10-07 09:02:13 +00:00
Richard Guenther
54616742d8 re PR testsuite/50637 (gcc.dg/vect/vect-align-2.c is invalid (FAILs with -O2 -flto -fpeel-loops))
2011-10-07  Richard Guenther  <rguenther@suse.de>

	PR testsuite/50637
	* gcc.dg/vect/vect-align-2.c: Increase array size.

From-SVN: r179648
2011-10-07 08:28:48 +00:00
Andreas Krebbel
6e0d70c957 s390.md (DWH, dwh): New mode macros.
2011-10-07  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>

	* config/s390/s390.md (DWH, dwh): New mode macros.
	("umulsidi3"): Extend to support "umulditi3" as well.

From-SVN: r179647
2011-10-07 06:51:26 +00:00
Uros Bizjak
10c1a3e722 re PR target/50603 ([x32] Unnecessary lea)
PR target/50603
	* config/i386/i386.c (ix86_fixup_binary_operands): Force src2 of
	integer PLUS RTX to a register to improve address combine.

testsuite/ChangeLog:

	PR target/50603
	* gcc.target/i386/pr50603.c: New test.

From-SVN: r179646
2011-10-07 08:43:17 +02:00
GCC Administrator
e7912e12dd Daily bump.
From-SVN: r179642
2011-10-07 00:19:37 +00:00
Richard Henderson
4efb91dfc3 re PR middle-end/50632 (FAIL: gcc.dg/pr50132.c)
PR 50632

        * combine-stack-adjust.c (maybe_move_args_size_note): Add after
        parameter; use it to decide whether to merge two notes.
        (combine_stack_adjustments_for_block): Use maybe_move_args_size_note
        for the deallocation case as well.

From-SVN: r179637
2011-10-06 15:22:11 -07:00
Jason Merrill
7e8ec1ec70 re PR c++/39164 ([C++0x] defaulted dtor redefinition not caught)
PR c++/39164
	* decl.c (grokfndecl): Diagnose redefinition of defaulted fn.

From-SVN: r179634
2011-10-06 15:56:53 -04:00
Arnaud Charlet
885c4871af [multiple changes]
2011-10-06  Thomas Quinot  <quinot@adacore.com>

	* einfo.ads, exp_attr.adb, exp_ch3.adb, exp_ch4.adb, exp_ch7.adb,
	exp_ch9.adb, exp_ch9.ads, exp_strm.adb, exp_util.adb, freeze.adb,
	g-debpoo.ads, opt.ads, par-ch12.adb, par-ch2.adb, par-ch3.adb,
	par-ch5.adb, par-ch6.adb, sem_aggr.adb, sem_attr.adb, sem_cat.adb,
	sem_ch10.adb, sem_ch12.adb, sem_ch3.adb, sem_ch4.adb, sem_ch5.adb,
	sem_ch6.adb, sem_intr.adb, sem_res.ads, sem_type.adb, sem_util.adb,
	s-regpat.adb, s-tpopde-vms.ads: Minor reformatting.
	* s-osinte-freebsd.ads: Fix for tasking failures on FreeBSD.

2011-10-06  Ed Schonberg  <schonberg@adacore.com>

	* a-cihase.adb, a-ciorma.adb: Avoid accessibility checks in container
	references.

2011-10-06  Matthew Heaney  <heaney@adacore.com>

	* a-cuprqu.ads, a-cuprqu.adb, a-cbprqu.ads, a-cbprqu.adb
	(Dequeue_Only_High_Priority): Protected procedure now implemented.

2011-10-06  Vincent Celier  <celier@adacore.com>

	* g-trasym.adb: Replace old implementation with the default
	implementation that returns list of addresses as "0x...".
	* g-trasym.ads: Update the list of platforms with the full
	capability.  Indicate that there is a default implementation
	for other platforms.
	* g-trasym-unimplemented.ads, g-trasym-unimplemented.adb: Remove.
	* gcc-interface/Makefile.in: Remove g-trasym-unimplemented, as there
	is now a default implementation for all platforms without the full
	capability.

From-SVN: r179631
2011-10-06 21:37:25 +02:00
Anatoly Sokolov
e12671331b system.h (OUTPUT_ADDR_CONST_EXTRA): Poison.
* system.h (OUTPUT_ADDR_CONST_EXTRA): Poison.
	* doc/tm.texi.in (OUTPUT_ADDR_CONST_EXTRA): Remove documentation.
	* doc/tm.texi: Regenerate.
	* target.def (output_addr_const_extra): Use
	hook_bool_FILEptr_rtx_false.
	* targhooks.c (default_asm_output_addr_const_extra): Remove.
	* targhooks.h (default_asm_output_addr_const_extra): Remove.
	* hooks.c (hook_bool_FILEptr_rtx_false): New functions.
	* hooks.h (hook_bool_FILEptr_rtx_false): Declare.

From-SVN: r179630
2011-10-06 23:25:53 +04:00
Arnaud Charlet
ce72a9a305 [multiple changes]
2011-10-06  Robert Dewar  <dewar@adacore.com>

	* a-ciorse.adb, a-cihase.adb, a-cihase.ads, a-coorse.adb,
	a-cborse.adb, a-comutr.adb, a-ciorma.adb, a-cbmutr.adb,
	a-cbmutr.ads, a-cbhase.adb, a-cbhase.ads: Minor reformatting and code
	reorganization (use conditional expressions).

2011-10-06  Robert Dewar  <dewar@adacore.com>

	* sem_res.adb (Resolve_Arithmetic_Op): Fix bad warning for
	floating divide by zero.

2011-10-06  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch6.adb: Limited interfaces that are not immutably limited
	are OK in return statements.

From-SVN: r179629
2011-10-06 21:24:49 +02:00
David S. Miller
908e19d0d0 Correct errors in sparc SImode popcount/clz patterns when 64-bit.
* config/sparc/sparc.md (popcount<mode>2, clz<mode>2): Split up into...
	(popcountdi2, popcountsi2, clzdi2, clzsi2): Explicit expanders, in the
	SI mode 64-bit code gen case explicitly zero-extend and truncate.
	(*popcount<mode>_sp64): Split up into...
	(*popcountdi_sp64, *popcountsi_64): Explicit instantiations, and in the
	SImode case use truncate.
	(*clzsi_sp64): Rewrite to use truncate, and let the expander emit the
	subtract so the compiler can optimize it.
	(SIDI): Remove unused mode iterator.

From-SVN: r179628
2011-10-06 12:15:39 -07:00
Bernd Schmidt
f4b31a33a2 function.c (thread_prologue_and_epilogue_insns): Emit split prologue on the orig_entry_edge.
* function.c (thread_prologue_and_epilogue_insns): Emit split
	prologue on the orig_entry_edge. Don't account for it in
	prologue_clobbered.

From-SVN: r179627
2011-10-06 18:59:36 +00:00
Jakub Jelinek
69d2aade06 re PR tree-optimization/50596 (Problems in vectorization of condition expression)
PR tree-optimization/50596
	* tree-vectorizer.h (vect_is_simple_cond): New prototype.
	(NUM_PATTERNS): Change to 6.
	* tree-vect-patterns.c (vect_recog_mixed_size_cond_pattern): New
	function.
	(vect_vect_recog_func_ptrs): Add vect_recog_mixed_size_cond_pattern.
	(vect_mark_pattern_stmts): Don't create stmt_vinfo for def_stmt
	if it already has one, and don't set STMT_VINFO_VECTYPE in it
	if it is already set.
	* tree-vect-stmts.c (vect_mark_stmts_to_be_vectorized): Handle
	COND_EXPR in pattern stmts.
	(vect_is_simple_cond): No longer static.

	* lib/target-supports.exp (check_effective_target_vect_cond_mixed):
	New.
	* gcc.dg/vect/vect-cond-8.c: New test.

From-SVN: r179626
2011-10-06 19:49:36 +02:00
Richard Henderson
810cfbebfa i386: Use the proper mode for blend in vshuffle.
From-SVN: r179625
2011-10-06 10:12:44 -07:00
Richard Henderson
44167383a1 i386: Add AVX2 support to ix86_expand_vshuffle.
From-SVN: r179624
2011-10-06 10:12:36 -07:00
Richard Henderson
cf9899972b Rework vector shuffle tests.
Test vector sizes 8, 16, and 32.  Test most data types for each size.

From-SVN: r179623
2011-10-06 10:12:28 -07:00
Richard Henderson
8864db874b vshuffle: Use correct mode for mask operand.
From-SVN: r179622
2011-10-06 10:12:19 -07:00
Jakub Jelinek
92aea285e7 tree-vect-patterns.c (vect_pattern_recog_1): Use vect_recog_func_ptr typedef for the first argument.
* tree-vect-patterns.c (vect_pattern_recog_1): Use
	vect_recog_func_ptr typedef for the first argument.
	(vect_pattern_recog): Rename vect_recog_func_ptr variable
	to vect_recog_func, use vect_recog_func_ptr typedef for it.

From-SVN: r179621
2011-10-06 18:50:23 +02:00
Jakub Jelinek
b799033017 re PR tree-optimization/49279 (Optimization incorrectly presuming constant variable inside loop in g++ 4.5 and 4.6 with -O2 and -O3 for x86_64 targets)
PR tree-optimization/49279
	* tree-ssa-structalias.c (find_func_aliases): Don't handle
	CAST_RESTRICT.
	* tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Allow
	restrict propagation.
	* tree-ssa.c (useless_type_conversion_p): Don't return false
	if TYPE_RESTRICT differs.

	* gcc.dg/tree-ssa/restrict-4.c: XFAIL.
	* gcc.c-torture/execute/pr49279.c: New test.

From-SVN: r179620
2011-10-06 18:38:29 +02:00
Bernd Schmidt
b966d3a966 function.c (thread_prologue_and_epilogue_insns): Build a vector of unconverted simple return blocks rather than trying to...
* function.c (thread_prologue_and_epilogue_insns): Build a vector
	of unconverted simple return blocks rather than trying to
	recompute them later based on bb_flags bitmap tests.

From-SVN: r179619
2011-10-06 15:59:53 +00:00
Michael Matz
07f5041085 tree-flow.h (get_var_ann): Don't declare.
* tree-flow.h (get_var_ann): Don't declare.
	* tree-flow-inline.h (get_var_ann): Remove.
	(set_is_used): Use var_ann, not get_var_ann.
	* tree-dfa.c (add_referenced_var): Inline body of get_var_ann.
	* tree-profile.c (gimple_gen_edge_profiler): Call
	find_referenced_var_in.
	(gimple_gen_interval_profiler): Ditto.
	(gimple_gen_pow2_profiler): Ditto.
	(gimple_gen_one_value_profiler): Ditto.
	(gimple_gen_average_profiler): Ditto.
	(gimple_gen_ior_profiler): Ditto.
	(gimple_gen_ic_profiler): Ditto plus call add_referenced_var.
	(gimple_gen_ic_func_profiler): Call add_referenced_var.
	* tree-mudflap.c (execute_mudflap_function_ops): Call
	add_referenced_var.

From-SVN: r179618
2011-10-06 15:18:12 +00:00
Paolo Carlini
5847ec9338 assign_neg.cc: Tidy dg- directives, for C++0x testing too.
2011-10-06  Paolo Carlini  <paolo.carlini@oracle.com>

	* testsuite/27_io/ios_base/cons/assign_neg.cc: Tidy dg- directives,
	for C++0x testing too.
	* testsuite/27_io/ios_base/cons/copy_neg.cc: Likewise.
	* testsuite/ext/pb_ds/example/hash_resize_neg.cc: Likewise.
	* testsuite/24_iterators/istreambuf_iterator/requirements/
	base_classes.cc: Adjust for C++0x testing.
	* testsuite/ext/codecvt/char-1.cc: Avoid warnings in C++0x mode.
	* testsuite/ext/codecvt/char-2.cc: Likewise.
	* testsuite/ext/codecvt/wchar_t.cc: Likewise.

From-SVN: r179616
2011-10-06 14:43:26 +00:00
Jakub Jelinek
62371b9228 tree-vect-patterns.c (vect_handle_widen_mult_by_const): For lhs don't set SSA_NAME_DEF_STMT that has been already set by...
* tree-vect-patterns.c (vect_handle_widen_mult_by_const): For lhs
	don't set SSA_NAME_DEF_STMT that has been already set by
	gimple_build_assign_with_ops.
	(vect_recog_pow_pattern, vect_recog_widen_sum_pattern,
	vect_operation_fits_smaller_type, vect_recog_over_widening_pattern):
	Likewise.

From-SVN: r179615
2011-10-06 16:36:44 +02:00
Jakub Jelinek
e7f9dae09c tree.h (avoid_folding_inline_builtin): New prototype.
* tree.h (avoid_folding_inline_builtin): New prototype.
	* builtins.c (avoid_folding_inline_builtin): No longer static.
	* gimple-fold.c (gimple_fold_builtin): Give up if
	avoid_folding_inline_builtin returns true.

From-SVN: r179614
2011-10-06 16:34:48 +02:00
Richard Guenther
bc622b2a5e tree-vect-generic.c (vector_element): Look at previous generated results.
2011-10-06  Richard Guenther  <rguenther@suse.de>

	* tree-vect-generic.c (vector_element): Look at previous
	generated results.

From-SVN: r179613
2011-10-06 14:28:47 +00:00
David Edelsohn
7a9a6698cc re PR c++/39950 (__unix__ macro is not predefined on AIX platform (C and C++))
PR target/39950
        * config/rs6000/aix.h (TARGET_OS_AIX_CPP_BUILTINS): Define
        __powerpc__, __PPC__, __unix__.

From-SVN: r179612
2011-10-06 10:05:54 -04:00
Rainer Orth
cc49116d66 Restore FreeBSD/SPARC bootstrap (PR bootstrap/49804)
From-SVN: r179610
2011-10-06 13:48:14 +00:00
Michael Matz
b86b9f4474 i386.opt (recip_mask, [...]): New variables and cl_target member.
* i386/i386.opt (recip_mask, recip_mask_explicit,
	x_recip_mask_explicit): New variables and cl_target member.
	(mrecip=): New option.
	* i386/i386.h (RECIP_MASK_DIV, RECIP_MASK_SQRT, RECIP_MASK_VEC_DIV,
	RECIP_MASK_VEC_SQRT, RECIP_MASK_ALL, RECIP_MASK_NONE): New bitmasks.
	(TARGET_RECIP_DIV, TARGET_RECIP_SQRT, TARGET_RECIP_VEC_DIV,
	TARGET_RECIP_VEC_SQRT): New tests.
	* i386/i386.md (divsf3): Check TARGET_RECIP_DIV.
	(sqrt<mode>2): Check TARGET_RECIP_SQRT.
	* i386/sse.md (div<mode>3): Check TARGET_RECIP_VEC_DIV.
	(sqrt<mode>2): Check TARGET_RECIP_VEC_SQRT.
	* i386/i386.c (ix86_option_override_internal): Set recip_mask
	for -mrecip and -mrecip=options.
	(ix86_function_specific_save): Save recip_mask_explicit.
	(ix86_function_specific_restore): Restore recip_mask_explicit.

	* doc/invoke.texi (ix86 Options): Document the new option.

From-SVN: r179608
2011-10-06 13:27:47 +00:00
Bernd Schmidt
16340e8601 re PR target/49049 (ICE in copyprop_hardreg_forward_1, at regcprop.c:767)
PR target/49049
	* config/arm/arm.md (arm_subsi3_insn): Lose the last alternative.

	* gcc.c-torture/compile/pr49049.c: New test.

From-SVN: r179607
2011-10-06 13:12:50 +00:00
Ulrich Weigand
4da6de81bc re PR target/50305 (Inline asm reload failure when building Linux kernel)
gcc/
	PR target/50305
	* config/arm/arm.c (arm_legitimize_reload_address): Recognize
	output of a previous pass through legitimize_reload_address.
	Do not attempt to optimize addresses if the base register is
	equivalent to a constant.

	gcc/testsuite/
	PR target/50305
	* gcc.target/arm/pr50305.c: New test.

From-SVN: r179603
2011-10-06 11:50:26 +00:00
Andreas Krebbel
fa7fd586c3 function.c (thread_prologue_and_epilogue_insns): Mark last_bb_active as possibly unused.
2011-10-06  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>

	* function.c (thread_prologue_and_epilogue_insns): Mark
	last_bb_active as possibly unused.  It is unused for targets which
	do neither have "return" nor "simple_return" expanders.

From-SVN: r179601
2011-10-06 11:44:51 +00:00
Richard Biener
2a86de57e1 fold-const.c (fold_ternary_loc): Also fold non-constant vector CONSTRUCTORs.
2011-10-06  Richard Guenther  <rguenther@suse.de>

	* fold-const.c (fold_ternary_loc): Also fold non-constant
	vector CONSTRUCTORs.  Make more efficient.
	* tree-ssa-dom.c (cprop_operand): Don't handle virtual operands.
	(cprop_into_stmt): Don't propagate into virtual operands.
	(optimize_stmt): Really dump original statement.

From-SVN: r179598
2011-10-06 10:35:20 +00:00
Richard Guenther
69c2fbf1ec fold-const.c (fold_ternary_loc): Also fold non-constant vector CONSTRUCTORs.
2011-10-06  Richard Guenther  <rguenther@suse.de>

	* fold-const.c (fold_ternary_loc): Also fold non-constant
	vector CONSTRUCTORs.  Make more efficient.
	* tree-ssa-dom.c (cprop_operand): Don't handle virtual operands.
	(cprop_into_stmt): Don't propagate into virtual operands.
	(optimize_stmt): Really dump original statement.

From-SVN: r179597
2011-10-06 10:34:18 +00:00