Commit Graph

111684 Commits

Author SHA1 Message Date
Iain Sandoe
c52571dff7 re PR target/49614 (FAIL: gcc.dg/vmx/gcc-bug-i.c -O0 (test for excess errors))
gcc/testsuite:

	PR target/49614
	* gcc.dg/vmx/gcc-bug-i.c (inline_me): Declare 'inline'.

From-SVN: r178730
2011-09-09 13:51:12 +00:00
Richard Guenther
107defbe86 re PR tree-optimization/50328 (reduction with constant or invariant not vectorized)
2011-09-09  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/50328
	* tree-vect-loop.c (vect_is_simple_reduction_1): Allow one
	constant or default-def operand.

	* gcc.dg/vect/fast-math-vect-outer-7.c: New testcase.

From-SVN: r178728
2011-09-09 12:35:11 +00:00
Richard Guenther
0aa1658649 tree-ssa-pre.c (create_expression_by_pieces): Fold the last statement.
2011-09-09  Richard Guenther  <rguenther@suse.de>

	* tree-ssa-pre.c (create_expression_by_pieces): Fold the
	last statement.

From-SVN: r178727
2011-09-09 12:31:33 +00:00
Richard Guenther
59401b92b3 gimple.h (fold_stmt_inplace): Adjust to take a gimple_stmt_iterator instead of a statement.
2011-09-09  Richard Guenther  <rguenther@suse.de>

	* gimple.h (fold_stmt_inplace): Adjust to take a gimple_stmt_iterator
	instead of a statement.
	* gimple-fold.c (fold_stmt_inplace): Likewise.
	* sese.c (graphite_copy_stmts_from_block): Adjust.
	* tree-ssa-dom.c (propagate_rhs_into_lhs): Likewise.
	* tree-ssa-forwprop.c (forward_propagate_into_comparison): Use
	fold_stmt.
	(forward_propagate_addr_into_variable_array_index): Likewise.
	(forward_propagate_addr_expr_1): adjust.
	(associate_plusminus): Likewise.
	(ssa_forward_propagate_and_combine): Likewise.
	* tree-ssa-mathopts.c (replace_reciprocal): Adjust.
	(execute_cse_reciprocals): Likewise.
	* tree-ssa.c (insert_debug_temp_for_var_def): Adjust.

From-SVN: r178726
2011-09-09 11:52:51 +00:00
Nick Clifton
cf13d9cf50 mn10300.c (mn10300_split_and_operand_count): Return a positive value to indicate that the bits at the bottom of the register...
* config/mn10300/mn10300.c (mn10300_split_and_operand_count):
	Return a positive value to indicate that the bits at the
	bottom of the register should be cleared.

From-SVN: r178724
2011-09-09 10:58:10 +00:00
Richard Guenther
64d9cb054e tree-ssa-operands.c (swap_tree_operands): Always adjust existing operand positions.
2011-09-09  Richard Guenther  <rguenther@suse.de>

	* tree-ssa-operands.c (swap_tree_operands): Always adjust
	existing operand positions.

From-SVN: r178723
2011-09-09 10:31:10 +00:00
Richard Guenther
ffd78b302f re PR middle-end/50333 (internal compiler error: in extract_ops_from_tree, at gimple.h:1909)
2011-09-09  Richard Guenther  <rguenther@suse.de>

	PR middle-end/50333
	* tree-data-ref.c (split_constant_offset): Do not try to handle
	ternary ops.

	* gcc.dg/torture/pr50333.c: New testcase.

From-SVN: r178720
2011-09-09 09:06:49 +00:00
GCC Administrator
f9e72719b2 Daily bump.
From-SVN: r178717
2011-09-09 00:19:15 +00:00
Paolo Carlini
ebb6e4af61 re PR libstdc++/50336 (LWG issue 445)
2011-09-09  Paolo Carlini  <paolo.carlini@oracle.com>

	PR libstdc++/50336
	* include/bits/streambuf_iterator.h (class istreambuf_iterator):
	Implement LWG 445 in C++0x mode.
	* testsuite/24_iterators/istreambuf_iterator/requirements/dr445.cc:
	New.

From-SVN: r178713
2011-09-08 22:42:21 +00:00
Dodji Seketeli
164bb913f2 re PR c/50332 (FAIL: gcc.dg/attr-invalid.c)
Fix PR c/50332

gcc/testsuite/

	* gcc.dg/attr-invalid.c: Adjust as __attribute__((used) is no
	longer ignored on typedefs.

From-SVN: r178712
2011-09-08 23:46:14 +02:00
Eric Botcazou
416de7d549 utils.c (unchecked_convert): Use a field of the right precision when converting to or from an integral type...
* gcc-interface/utils.c (unchecked_convert): Use a field of the right
	precision when converting to or from an integral type whose precision
	is not equal to its size.

From-SVN: r178711
2011-09-08 21:12:37 +00:00
Andrew Stubbs
c3c5a1ccc0 re PR tree-optimization/50318 (ICE optimizing widening multiply-and-accumulate)
2011-09-08  Andrew Stubbs  <ams@codesourcery.com>

	PR tree-optimization/50318

	gcc/
	* tree-ssa-math-opts.c (convert_plusminus_to_widen): Correct
	typo in use of mult_rhs1 and mult_rhs2.

	gcc/testsuite/
	* gcc.target/arm/pr50318-1.c: New file.

From-SVN: r178708
2011-09-08 19:45:37 +00:00
Uros Bizjak
a2e6888d20 * config/i386.c (standard_sse_constant_opcode): Fix last commit.
From-SVN: r178705
2011-09-08 20:30:43 +02:00
Uros Bizjak
974e0ad69d i386.c (standard_sse_constant_p): Handle AVX2 modes.
2011-09-08  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.c (standard_sse_constant_p): Handle AVX2 modes.
	(standard_sse_constant_opcode) <case 2>: Change vpcmpeqd template.

testsuite/ChangeLog:

2011-09-08  Uros Bizjak  <ubizjak@gmail.com>

	* gcc.target/i386/all_one_m256i.c: New test.

From-SVN: r178704
2011-09-08 20:24:04 +02:00
Bernd Schmidt
bd2777de1f arm.md (push_multi): Emit predicates.
* config/arm/arm.md (push_multi): Emit predicates.
	(push_fp_multi): Likewise.
	* config/arm/arm.c (vfp_output_fstmd): Likewise.

From-SVN: r178700
2011-09-08 16:29:17 +00:00
Mikael Morin
e97b61c26e trans-array.c (gfc_trans_constant_array_constructor): Remove superfluous initialisation of DIM field.
2011-09-08  Mikael Morin  <mikael.morin@sfr.fr>

	* trans-array.c (gfc_trans_constant_array_constructor): Remove
	superfluous initialisation of DIM field.
	(gfc_trans_array_constructor): Assert that DIMEN field is properly set.
	(gfc_conv_expr_descriptor): Ditto.
	* trans-expr.c (gfc_conv_procedure_call): Ditto.

From-SVN: r178698
2011-09-08 15:40:48 +00:00
Mikael Morin
26f7753013 trans-array.h (gfc_get_scalar_ss): New prototype.
2011-09-08  Mikael Morin  <mikael.morin@sfr.fr>

	* trans-array.h (gfc_get_scalar_ss): New prototype.
	* trans-array.c (gfc_get_scalar_ss): New function.
	(gfc_walk_variable_expr, gfc_walk_op_expr,
	gfc_walk_elemental_function_args): Re-use gfc_get_scalar_ss.
	* trans-expr.c (gfc_trans_subarray_assign): Ditto.
	(gfc_trans_assignment_1): Ditto.
	* trans-stmt.c (compute_inner_temp_size, gfc_trans_where_assign,
	gfc_trans_where_3): Ditto.

From-SVN: r178697
2011-09-08 15:30:39 +00:00
Mikael Morin
a1ae4f435f trans-array.h (gfc_get_temp_ss): New prototype.
2011-09-08  Mikael Morin  <mikael.morin@sfr.fr>

	* trans-array.h (gfc_get_temp_ss): New prototype.
	* trans-array.c (gfc_get_temp_ss): New function.
	(gfc_conv_resolve_dependencies): Re-use gfc_get_temp_ss.
	(gfc_conv_expr_descriptor): Ditto.
	* trans-expr.c (gfc_conv_subref_array_arg): Ditto.

From-SVN: r178696
2011-09-08 15:18:20 +00:00
Mikael Morin
6687727615 trans-array.h (gfc_get_array_ss): New prototype.
2011-09-08  Mikael Morin  <mikael.morin@sfr.fr>

	* trans-array.h (gfc_get_array_ss): New prototype.
	* trans-array.c (gfc_get_array_ss): New function.
	(gfc_walk_variable_expr, gfc_walk_function_expr,
	gfc_walk_array_constructor): Re-use gfc_get_array_ss.
	* trans-expr.c (gfc_trans_subarray_assign): Ditto.
	* trans-intrinsic.c (gfc_walk_intrinsic_bound,
	gfc_walk_intrinsic_libfunc): Ditto.
	* trans-io.c (transfer_array_component): Ditto.

From-SVN: r178695
2011-09-08 15:07:01 +00:00
Paolo Carlini
2d49bd6e23 re PR c++/50324 ([C++0x] SFINAE does not handle the object creation of an incomplete type)
/cp
2011-09-08  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/50324
	* typeck2.c (digest_init_r): Call complete_type_or_maybe_complain
	instead of complete_type_or_else.

/testsuite
2011-09-08  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/50324
	* g++.dg/cpp0x/sfinae28.C: New.

From-SVN: r178694
2011-09-08 14:58:21 +00:00
Dodji Seketeli
3797cb21ff PR c++/33255 - Support -Wunused-local-typedefs warning
gcc/

	* c-decl.c (lookup_name): Use the new
	maybe_record_typedef_use.
	(pushdecl): Use the new
	record_locally_defined_typedef.
	(store_parm_decls): Allocate cfun->language.
	(finish_function): Use the new maybe_warn_unused_local_typedefs,
	and free cfun->language.
	(c_push_function_context): Allocate cfun->language here only if
	needed.
	(c_pop_function_context): Likewise, mark cfun->language
	for collection only when it should be done.
	* c-common.c (handle_used_attribute): Don't ignore TYPE_DECL
	nodes.
	* c-typeck.c (c_expr_sizeof_type, c_cast_expr): Use the new
	maybe_record_local_typedef_use.

gcc/c-family

	* c-common.h (struct c_language_function::local_typedefs): New
	field.
	(record_locally_defined_typedef, maybe_record_typedef_use)
	(maybe_warn_unused_local_typedefs): Declare new functions.
	* c-common.c (record_locally_defined_typedef)
	(maybe_record_typedef_use)
	(maybe_warn_unused_local_typedefs): Define new functions.
	* c.opt: Declare new -Wunused-local-typedefs flag.

gcc/cp

	* name-lookup.c (pushdecl_maybe_friend_1): Use the new
	record_locally_defined_typedef.
	* decl.c (finish_function): Use the new
	maybe_warn_unused_local_typedefs.
	(grokfield): Use the new record_locally_defined_typedef.
	* parser.c (lookup_name): Use the new maybe_record_typedef_use.

gcc/doc/

	* invoke.texi: Update documentation for -Wunused-local-typedefs.

gcc/testsuite/

	* g++.dg/warn/Wunused-local-typedefs.C: New test file.
	* c-c++-common/Wunused-local-typedefs.c: Likewise.

libstdc++-v3/

	* include/ext/bitmap_allocator.h
	(__detail::__mini_vector::__lower_bound): Remove unused typedef.
	* src/istream.cc (std::operator>>(basic_istream<char>& __in,
	basic_string<char>& __str)): Likewise.
	(std::getline): Likewise.
	* src/valarray.cc (__valarray_product): Likewise.

From-SVN: r178692
2011-09-08 15:54:24 +02:00
Enkovich Ilya
d275ab8b80 Improve AGU stalls avoidance optimization.
2011-09-08  Enkovich Ilya  <ilya.enkovich@intel.com>

	* config/i386/i386-protos.h (ix86_lea_outperforms): New.
	(ix86_avoid_lea_for_add): Likewise.
	(ix86_avoid_lea_for_addr): Likewise.
	(ix86_split_lea_for_addr): Likewise.

	* config/i386/i386.c (LEA_MAX_STALL): New.
	(increase_distance): Likewise.
	(insn_defines_reg): Likewise.
	(insn_uses_reg_mem): Likewise.
	(distance_non_agu_define_in_bb): Likewise.
	(distance_agu_use_in_bb): Likewise.
	(ix86_lea_outperforms): Likewise.
	(ix86_ok_to_clobber_flags): Likewise.
	(ix86_avoid_lea_for_add): Likewise.
	(ix86_avoid_lea_for_addr): Likewise.
	(ix86_split_lea_for_addr): Likewise.
	(distance_non_agu_define): Search in pred BBs added.
	(distance_agu_use): Search in succ BBs added.
	(IX86_LEA_PRIORITY): Value changed from 2 to 0.
	(LEA_SEARCH_THRESHOLD): Now depends on LEA_MAX_STALL.
	(ix86_lea_for_add_ok): Use ix86_lea_outperforms to make decision.

	* config/i386/i386.md: Split added to transform non destructive
	add into move and add.
	(lea_1): transformed into insn_and_split to avoid AGU stalls.
	(lea<mode>_2): Likewise.

From-SVN: r178689
2011-09-08 06:41:27 -07:00
Martin Jambor
868141900a re PR tree-optimization/50287 (FAIL: gcc.c-torture/execute/builtins/vsnprintf-chk.c compilation, -O2 -flto)
2011-09-08  Martin Jambor  <mjambor@suse.cz>

	PR tree-optimization/50287
	* ipa-split.c (split_function): Do not create SSA names for
	non-gimple-registers.

	* testsuite/gcc.dg/torture/pr50287.c: New test.

From-SVN: r178688
2011-09-08 15:09:38 +02:00
Richard Guenther
996e1de5e6 re PR tree-optimization/19831 (Missing DSE/malloc/free optimization)
2011-09-08  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/19831
	* tree-ssa-dce.c (mark_all_reaching_defs_necessary_1): Also
	skip builtins with vdefs that do not really store something.
	(propagate_necessity): For calls to free that we can associate
	with an allocation function do not mark the freed pointer
	definition necessary.
	(eliminate_unnecessary_stmts): Remove a call to free if
	the associated call to an allocation function is not necessary.

	* gcc.dg/tree-ssa/pr19831-1.c: New testcase.
	* gcc.dg/tree-ssa/pr19831-2.c: Likewise.
	* gcc.dg/tree-ssa/pr19831-3.c: Likewise.
	* gcc.dg/errno-1.c: Adjust.

From-SVN: r178687
2011-09-08 13:00:23 +00:00
Richard Guenther
c22c0db26a re PR tree-optimization/19831 (Missing DSE/malloc/free optimization)
2011-09-08  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/19831
	* tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Do not mark
	allocation functions as necessary.

	* gcc.dg/tree-ssa/ssa-dce-8.c: New testcase.

From-SVN: r178683
2011-09-08 09:21:39 +00:00
Iain Sandoe
88b7601303 part of restore of powerpc-darwin Ada bootstrap
* traceback.c (Darwin) USE_GCC_UNWINDER for Darwin
	versions >= 8.

From-SVN: r178682
2011-09-08 09:20:12 +00:00
Iain Sandoe
558c362ad0 make darwin port a little more cross & cross native build friendly.
*config/darwin-driver.c (darwin_find_version_from_kernel): New routine 
	cut from ... (darwin_default_min_version): Amended to provide defaults
	for the cross directory case.
	(darwin_driver_init): call darwin_default_min_version unconditionally.
	* config/darwin.h (DEF_MIN_OSX_VERSION): New.
	* config/darwin9.h: Likewise.
	* config/darwin10.h: Likewise.
	* config/rs6000/darwin7.h: Likewise.

From-SVN: r178679
2011-09-08 07:28:11 +00:00
Tobias Burnus
8c6a85e33b re PR fortran/44646 ([F08] Implement DO CONCURRENT)
gcc/fortran/
2011-09-08  Tobias Burnus  <burnus@net-b.de>

        PR fortran/44646
        * decl.c (gfc_match_entry, gfc_match_end): Handle
        * COMP_DO_CONCURRENT.
        * dump-parse-tree.c (show_code_node): Handle EXEC_DO_CONCURRENT.
        * gfortran.h (gfc_exec_op): Add EXEC_DO_CONCURRENT.
        * match.c (gfc_match_critical, match_exit_cycle,
        * gfc_match_stopcode,
        lock_unlock_statement, sync_statement, gfc_match_allocate,
        gfc_match_deallocate, gfc_match_return): Add DO CONCURRENT diagnostic.
        (gfc_match_do): Match DO CONCURRENT.
        (match_derived_type_spec, match_type_spec, gfc_free_forall_iterator,
        match_forall_iterator, match_forall_header, match_simple_forall,
        gfc_match_forall): Move up in the file.
        * parse.c (check_do_closure, parse_do_block): Handle do
        * concurrent.
        * parse.h (gfc_compile_state): Add COMP_DO_CONCURRENT.
        * resolve.c (do_concurrent_flag): New global variable.
        (resolve_function, pure_subroutine, resolve_branch,
        gfc_resolve_blocks, resolve_code, resolve_types): Add do concurrent
        diagnostic.
        * st.c (gfc_free_statement): Handle EXEC_DO_CONCURRENT.
        * trans-stmt.c (gfc_trans_do_concurrent): New function.
        (gfc_trans_forall_1): Handle do concurrent.
        * trans-stmt.h (gfc_trans_do_concurrent): New function
        * prototype.
        * trans.c (trans_code): Call it.
        * frontend-passes.c (gfc_code_walker): Handle
        * EXEC_DO_CONCURRENT.

gcc/testsuite/
2011-09-08  Tobias Burnus  <burnus@net-b.de>

        PR fortran/44646
        * gfortran.dg/do_concurrent_1.f90: New.
        * gfortran.dg/do_concurrent_2.f90: New.

From-SVN: r178677
2011-09-08 08:38:13 +02:00
Jakub Jelinek
1542d97a4e re PR target/50310 (ICE: in gen_vcondv2div2df, at config/i386/sse.md:1435 with -O -ftree-vectorize and __builtin_isunordered())
PR target/50310
	* config/i386/i386.c (ix86_prepare_sse_fp_compare_args): Return
	code early if TARGET_AVX.
	(ix86_expand_fp_vcond): Handle LTGT and UNEQ.

	* gcc.c-torture/execute/ieee/pr50310.c: New test.
	* gcc.dg/pr50310-2.c: New test.

From-SVN: r178673
2011-09-08 07:58:54 +02:00
François Dumont
02dce1e99c at.cc: Revert to...
2011-09-07  François Dumont  <francois.cppdevs@free.fr>

	* testsuite/23_containers/array/at.cc: Revert to...
	* testsuite/23_containers/array/at_neg.cc: ...this.

From-SVN: r178670
2011-09-08 01:24:11 +00:00
GCC Administrator
92b4c82234 Daily bump.
From-SVN: r178669
2011-09-08 00:18:59 +00:00
Janus Weil
6a38e15189 re PR fortran/48095 ([OOP] Invalid assignment to procedure pointer component not rejected)
2011-09-07  Janus Weil  <janus@gcc.gnu.org>

	PR fortran/48095
	* primary.c (gfc_match_structure_constructor): Handle parsing of
	procedure pointers components in structure constructors.
	* resolve.c (resolve_structure_cons): Check interface of procedure
	pointer components. Changed wording of some error messages.


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

	PR fortran/48095
	* gfortran.dg/derived_constructor_comps_2.f90: Modified.
	* gfortran.dg/impure_constructor_1.f90: Modified.
	* gfortran.dg/proc_ptr_comp_33.f90: New.

From-SVN: r178665
2011-09-08 00:20:47 +02:00
Jakub Jelinek
601a5d76ca re PR target/50310 (ICE: in gen_vcondv2div2df, at config/i386/sse.md:1435 with -O -ftree-vectorize and __builtin_isunordered())
* config/i386/sse.md (sseinsnmode): Remove 32-byte integer vector
	duplicates.

	PR target/50310
	* config/i386/sse.md (*andnot<mode>3, *<code><mode>3): Fix up
	"mode" attribute computation.

	* gcc.dg/pr50310-1.c: New test.

From-SVN: r178659
2011-09-07 21:46:14 +02:00
Bernd Schmidt
ca1ae7e38d bb-reorder.c (insert_section_boundary_note): Don't check optimize_function_for_speed_p.
* bb-reorder.c (insert_section_boundary_note): Don't check
	optimize_function_for_speed_p.
	(gate_handle_partition_blocks): Do it here instead.
	(gate_handle_reorder_blocks): Move preliminary checks here ...
	(rest_of_handle_reorder_blocks): ... from here.

From-SVN: r178657
2011-09-07 17:38:29 +00:00
Georg-Johann Lay
d14e12290a re PR tree-optimization/48571 (Missed data-dependence for (bogus?) reconstructed array-refs)
PR middle-end/48571
	* gcc.c-torture/execute/pr48571-1.c (bar): Use offsets sizeof(int)
	instead of 4.

From-SVN: r178655
2011-09-07 17:31:01 +00:00
Paolo Carlini
3023956508 re PR c++/50309 ([C++0x] ICE: tree check: expected tree_list, have error_mark in comp_except_specs, at cp/typeck.c:1014 on empty noexcept)
/cp
2011-09-07  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/50309
	* decl.c (grokdeclarator): Check u.function.exception_specification
	for error_mark_node.

/testsuite
2011-09-07  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/50309
	* g++.dg/cpp0x/noexcept14.C: New.

From-SVN: r178654
2011-09-07 17:16:23 +00:00
Jason Merrill
e39438c55d re PR c++/50298 ([C++0x][constexpr] References cannot be bound to static constexpr reference members)
PR c++/50298
	* parser.c (cp_parser_member_declaration): Don't require a constant
	rvalue here in C++0x.

From-SVN: r178652
2011-09-07 13:11:49 -04:00
Jason Merrill
30288f9aa2 pt.c (type_unification_real): Correct complain arg for tsubsting default template args.
* pt.c (type_unification_real): Correct complain arg for tsubsting
	default template args.

From-SVN: r178651
2011-09-07 13:11:37 -04:00
Jason Merrill
10e8dd8275 * pt.c (tsubst_aggr_type): Check TYPE_P before tsubsting.
From-SVN: r178650
2011-09-07 13:11:20 -04:00
Georg-Johann Lay
aad0eef6aa section1.c: Don't xfail for avr.
* gcc.dg/section1.c: Don't xfail for avr.

From-SVN: r178649
2011-09-07 16:55:08 +00:00
Georg-Johann Lay
74a73e8be4 re PR testsuite/50322 ([avr]: fail: gcc.dg/tree-ssa/ivopts-lt.c)
PR tree-optimization/50322
	* gcc.dg/tree-ssa/ivopts-lt.c: Add xfails for avr.

From-SVN: r178646
2011-09-07 16:09:12 +00:00
Bernd Schmidt
8ffa0351a5 regrename.c (struct du_head): Make nregs signed.
* regrename.c (struct du_head): Make nregs signed.
	(closed_chains): Remove.
	(create_new_chain): Return the new chain.
	(chain_from_id): New static function.
	(dump_def_use_chain): Change argument to be an int, indicating
	the first ID to print.  All callers changed.
	(merge_overlapping_regs): Use chain_from_id.  Assert that
	chains don't conflict with themselves.
	(rename_chains): Take no argument.  Iterate over id_to_chain
	rather to find chains to rename.  Clear tick before the main
	loop.
	(struct incoming_reg_info): New struct.
	(struct bb_rename_info): New struct.
	(init_rename_info, set_incoming_from_chain, merge_chains): New
	static functions.
	(regrename_analyze): New static function, broken out of
	regrename_optimize.  Record and make use of open chain information
	at basic block boundaries, and merge chains where possible.
	(scan_rtx_reg): Make this_nregs signed.  Don't update
	closed_chains.
	(build_def_use): Return a bool to indicate success.  All callers
	changed.  Don't initialize global data here.
	(regrename_optimize): Move most code out of here into
	regrename_analyze.
	* regs.h (add_range_to_hard_reg_set, remove_range_from_hard_reg_set,
	range_overlaps_hard_reg_set_p, range_in_hard_reg_set_p): New
	static inline functions.
	* vec.h (FOR_EACH_VEC_ELT_FROM): New macro.

From-SVN: r178645
2011-09-07 15:57:45 +00:00
Martin Jambor
a81462f103 pr49911.C: Added flag -fstrict-enums.
2011-09-07  Martin Jambor  <mjambor@suse.cz>

	* g++.dg/tree-ssa/pr49911.C: Added flag -fstrict-enums.

From-SVN: r178642
2011-09-07 17:36:53 +02:00
Martin Jambor
128c61eeb9 re PR middle-end/50301 (416.gamess in SPEC CPU 2006 failed to build with LTO)
2011-09-07  Martin Jambor  <mjambor@suse.cz>

	PR middle-end/50301
	* ipa-cp.c (find_more_values_for_callers_subset): Check jump
	function index bounds.
	(perhaps_add_new_callers): Likewise.

From-SVN: r178640
2011-09-07 16:31:40 +02:00
Martin Jambor
da990dc0e0 re PR tree-optimization/49911 (SRA + DOM + VRP + -fstrict-enums incorrectly remove predicate)
2011-09-07  Martin Jambor  <mjambor@suse.cz>

	PR tree-optimization/49911
	* tree-sra.c (analyze_access_subtree): Change type of to-be-replaced
	enumerations to the corresponding plain integer type.

	* testsuite/g++.dg/tree-ssa/pr49911.C: New test.

From-SVN: r178639
2011-09-07 16:25:39 +02:00
Richard Guenther
747633c574 re PR tree-optimization/50319 (if-conversion produces unvectorizable conditions)
2011-09-07  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/50319
	* tree-if-conv.c (set_bb_predicate): Assert we only set
	canonical predicates.
	(add_to_predicate_list): Simplify.  Allow TRUTH_NOT_EXPR
	around canonical predicates.
	(predicate_bbs): Do not re-gimplify already canonical
	predicates.  Properly unshare them though.
	(find_phi_replacement_condition): Simplify.

From-SVN: r178638
2011-09-07 14:19:33 +00:00
Richard Sandiford
723d95fe2b re PR target/49030 (ICE in get_arm_condition_code, at config/arm/arm.c:17180)
gcc/
	PR target/49030
	* config/arm/arm-protos.h (maybe_get_arm_condition_code): Declare.
	* config/arm/arm.c (maybe_get_arm_condition_code): New function,
	reusing the old code from get_arm_condition_code.  Return ARM_NV
	for invalid comparison codes.
	(get_arm_condition_code): Redefine in terms of
	maybe_get_arm_condition_code.
	* config/arm/predicates.md (arm_comparison_operator): Use
	maybe_get_arm_condition_code.

gcc/testsuite/
	PR target/49030
	* gcc.dg/torture/pr49030.c: New test.

From-SVN: r178636
2011-09-07 13:48:03 +00:00
Janus Weil
b7b1babae9 re PR fortran/50288 (FAIL: gfortran.dg/class_45b.f03)
2011-09-07  Janus Weil  <janus@gcc.gnu.org>

	PR fortran/50288
	* gfortran.dg/class_4c.f03: Modified ("dg-do link" and "dg-final").
	* gfortran.dg/class_4d.f03: Deleted.
	* gfortran.dg/class_45b.f03: Modififed ("dg-do link").

From-SVN: r178635
2011-09-07 15:31:04 +02:00
Richard Guenther
e864294433 tree-ssa-forwprop.c (forward_propagate_into_gimple_cond): Canonicalize negated predicates by swapping edges.
2011-09-07  Richard Guenther  <rguenther@suse.de>

	* tree-ssa-forwprop.c (forward_propagate_into_gimple_cond):
	Canonicalize negated predicates by swapping edges.
	(forward_propagate_into_cond): Likewise.

	* gcc.dg/tree-ssa/forwprop-16.c: New testcase.

From-SVN: r178634
2011-09-07 13:02:05 +00:00
Richard Guenther
601f64e2e9 re PR tree-optimization/50213 (Regression in space-optimized code relative to 4.5.x)
2011-09-07  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/50213
	* tree-flow.h (simple_iv_increment_p): Declare.
	* tree-ssa-dom.c (simple_iv_increment_p): Export.  Also handle
	POINTER_PLUS_EXPR.
	* tree-ssa-forwprop.c (ssa_forward_propagate_and_combine): Do
	not propagate simple IV counter increments.

From-SVN: r178633
2011-09-07 11:28:39 +00:00