Commit Graph

117603 Commits

Author SHA1 Message Date
Richard Guenther 9ef7adc086 re PR tree-optimization/53693 (ICE in vect_get_vec_def_for_stmt_copy, at tree-vect-stmts.c:1438)
2012-06-18  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/53693
	* tree-vect-patterns.c (vect_operation_fits_smaller_type):
	Reject operands with more than one use.

	* g++.dg/torture/pr53693.C: New testcase.

From-SVN: r188733
2012-06-18 14:05:27 +00:00
Bill Schmidt 9b10be32fd re PR tree-optimization/53703 (verify_ssa: definition in block 105 does not dominate use in block 103)
gcc:

2012-06-18  Bill Schmidt  <wschmidt@linux.ibm.com>

	PR tree-optimization/53703
	* tree-ssa-phiopt.c (hoist_adjacent_loads): Skip virtual phis;
	correctly set bb_for_def[12].

gcc/testsuite:

2012-06-18  Bill Schmidt  <wschmidt@linux.ibm.com>

	PR tree-optimization/53703
	* gcc.dg/torture/pr53703.c: New test.

From-SVN: r188731
2012-06-18 12:22:37 +00:00
Steven Bosscher d421b10cd1 vax.h (VMS_TARGET): Remove.
gcc/
	* config/vax/vax.h (VMS_TARGET): Remove.

cp/
	* decl.c (finish_function): Remove code conditional on VMS_TARGET.

From-SVN: r188729
2012-06-18 11:34:28 +00:00
Richard Guenther 3928c098e4 tree-vrp.c (extract_range_from_assert): Split out range intersecting code.
2012-06-18  Richard Guenther  <rguenther@suse.de>

	* tree-vrp.c (extract_range_from_assert): Split out range
	intersecting code.
	(intersect_ranges): New function.
	(vrp_intersect_ranges): Likewise.

From-SVN: r188728
2012-06-18 11:11:32 +00:00
Andreas Krebbel ab4a745bd9 s390.c (s390_gimplify_va_arg): Revert change from r187965.
2012-06-18  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>

	* config/s390/s390.c (s390_gimplify_va_arg): Revert change from
	r187965.

From-SVN: r188727
2012-06-18 11:05:41 +00:00
Tejas Belagod 57a4717bd3 Implement support for int iterators.
From-SVN: r188726
2012-06-18 11:43:03 +01:00
Richard Sandiford b7104c55e7 re PR middle-end/53698 (ICE: in plus_constant, at explow.c:88 with -O -mx32 -maddress-mode=long -fno-tree-dominator-opts)
gcc/
	PR middle-end/53698
	* expr.c (expand_expr_addr_expr_1): Convert to tmode before
	performing an addition.

gcc/testsuite/
	PR middle-end/53698
	* gcc.target/i386/pr53698.c: New test.

From-SVN: r188725
2012-06-18 09:32:51 +00:00
GCC Administrator 89029ba5da Daily bump.
From-SVN: r188721
2012-06-18 00:18:37 +00:00
Uros Bizjak 3eb2d93455 * gcc.target/i386/pr33329.c: .
From-SVN: r188717
2012-06-18 00:14:03 +02:00
Uros Bizjak f51ff4dd6e * gcc.target/i386/pr33329.c: Fix tabcount increase.
From-SVN: r188716
2012-06-18 00:09:40 +02:00
Uros Bizjak 9fd814b02d pr33329.c (f): Increase tabs array to 1024.
* gcc.target/i386/pr33329.c (f): Increase tabs array to 1024.

From-SVN: r188715
2012-06-18 00:01:25 +02:00
Steven Bosscher ca3f295026 output.h (split_double): Move prototype to rtl.h.
* output.h (split_double): Move prototype to rtl.h.
	(constructor_static_from_elts_p): Move prototype to tree.c.
	* rtl.h (split_double): Moved here from output.h.
	* tree.h (constructor_static_from_elts_p): Moved here from output.h.
	* final.c (split_double): Move from here ...
	* rtlanal.c (split_double): ... to here.
	* expr.c: Do not include output.h.

From-SVN: r188714
2012-06-17 21:12:24 +00:00
Steven Bosscher 172a84ffae forgot ChangeLog
From-SVN: r188713
2012-06-17 21:09:08 +00:00
Steven Bosscher 78bde837ec cfglayout.h: Remove.
2012-06-17  Steven Bosscher  <steven@gcc.gnu.org>

	* cfglayout.h: Remove.
	* cfglayout.c: Remove.
	* function.h (struct function): Remove x_last_location field.
	* function.c: Do not include cfglayout.h.
	(expand_function_start): Do not call no-op force_next_line_note.
	(expand_function_end): Likewise.
	* cfgrtl.c: Do not include cfglayout.h.  Include gt-cfgrtl.h.
	(unlink_insn_chain): Moved here from cfglayout.c.
	(skip_insns_after_block, label_for_bb, record_effective_endpoints,
	into_cfg_layout_mode, outof_cfg_layout_mode,
	pass_into_cfg_layout_mode, pass_outof_cfg_layout_mode,
	relink_block_chain, fixup_reorder_chain, verify_insn_chain,
	fixup_fallthru_exit_predecessor, force_one_exit_fallthru,
	cfg_layout_can_duplicate_bb_p, duplicate_insn_chain,
	cfg_layout_duplicate_bb, cfg_layout_initialize, break_superblocks,
	cfg_layout_finalize): Likewise.
	(rtl_can_remove_branch_p): Likewise.
	* rtl.h (insn_scope): Move prototype from cfglayout.h here.
	(duplicate_insn_chain): Likewise.
	(force_next_line_note): Remove prototype.
	* emit-rtl.c: Do not include tree-flow.h, egad.  Include vecprim.h.
	(last_location): Remove #define to emit.x_last_location.
	(force_next_line_note): Remove no-op function.
	(init_emit): Don't set x_last_location.
	(block_locators_locs, block_locators_blocks, locations_locators_locs,
	locations_locators_vals, prologue_locator, epilogue_locator,
	curr_location, last_location, curr_block, last_block, curr_rtl_loc):
	Move POD to here from cfglayout.c.
	(insn_locators_alloc, insn_locators_finalize, insn_locators_free,
	set_curr_insn_source_location, get_curr_insn_source_location,
	set_curr_insn_block, get_curr_insn_block, curr_insn_locator,
	locator_scope, insn_scope, locator_location, locator_line, insn_line,
	locator_file, insn_file, locator_eq): Move to here from cfglayout.c.
	* cfghooks.h: Remove double-include protection.
	(can_copy_bbs_p, copy_bbs): Move prototypes from cfglayout.h to here.
	* cfghooks.c (can_copy_bbs_p, copy_bbs): Move to here from cfglayout.c.
	* final.c: Do not include cfglayout.h.
	(choose_inner_scope, change_scope): Move to here from cfglayout.c.
	(reemit_insn_block_notes): Likewise.  Make static.
	* tree-flow.h (tree_could_trap_p, operation_could_trap_helper_p,
	operation_could_trap_p, tree_could_throw_p): Move from here...
	* tree.h: ... to here.
	* gengtype.c (open_base_files): Remove cfglayout.h from the list.
	* profile.c: Do not include cfghooks.h.
	* cfgloopmanip.c: Do not include cfglayout.h and cfghooks.h.
	* modulo-sched.c: Likewise.
	* loop-unswitch.c: Do not include cfglayout.h.
	* sched-ebb.c: Likewise.
	* tracer.c: Likewise.
	* ddg.c: Likewise.
	* tree-vect-loop-manip.c: Likewise.
	* loop-init.c: Likewise.
	* dwarf2out.c: Likewise.
	* hw-doloop.c: Likewise.
	* loop-unroll.c: Likewise.
	* cfgcleanup.c: Likewise.
	* bb-reorder.c: Likewise.
	* sched-rgn.c: Likewise.
	* tree-cfg.c: Likewise.
	* config/alpha/alpha.c: Likewise.
	* config/spu/spu.c: Likewise.
	* config/sparc/sparc.c: Likewise.
	* config/sh/sh.c: Likewise.
	* config/c6x/c6x.c: Likewise.
	* config/ia64/ia64.c: Likewise.
	* config/rs6000/rs6000.c: Likewise.
	* config/score/score.c: Likewise.
	* config/mips/mips.c: Likewise.
	* config/bfin/bfin.c: Likewise.
	* Makefile.in (CFGAYOUT_H): Remove, and fixup users.
	* config/rs6000/t-rs6000 (rs6000.o): Do not depend on cfglayout.h.
	* config/spu/t-spu-elf (spu.o: $): Likewise.
	* config/sparc/t-sparc (sparc.o): Do not depend on CFGLAYOUT_H.

From-SVN: r188712
2012-06-17 21:08:39 +00:00
Steven Bosscher 1c1ad7bbbc cfgloop.h: Do not include rtl.h.
* cfgloop.h: Do not include rtl.h.
	(enum iv_extend_code): New.
	(struct rtx_iv): Use iv_extend_code instead of rtx_code.
	* Makefile.in (CFGLOOP_H): Do not depend on RTL_H.
	* loop-iv.c (iv_extend_to_rtx_code): New function to translate
	an IV_EXTEND_CODE to an RTX_CODE.
	(dump_iv_info): Update for rtx_iv field type change.
	(iv_constant): Likewise.
	(iv_subreg): Likewise.
	(iv_extend): Likewise.
	(iv_neg): Likewise.
	(iv_add): Likewise.
	(iv_mult): Likewise.
	(iv_shift): Likewise.
	(get_biv_step_1): Likewise.
	(get_biv_step): Likewise.
	(iv_analyze_biv): Likewise.
	(get_iv_value): Likewise.
	(shorten_into_mode): Likewise.
	(canonicalize_iv_subregs): Likewise.
	* sese.c (sese_build_liveouts): Use MAY_HAVE_DEBUG_STMTS instead
	of MAY_HAVE_DEBUG_INSNS.
	* tree-ssa-loop-ivopts.c: Include recog.h after expr.h.
	* tree-ssa-loop-prefetch.c: Likewise.

From-SVN: r188711
2012-06-17 21:04:41 +00:00
Steven Bosscher 46d33ae927 expmed.c (ceil_log2): Move from here...
* expmed.c (ceil_log2): Move from here...
	* hwint.c: ... to here for older GCCs...
	* hwint.h: ... and here for newer GCCs.
	* rtl.h (ceil_log2): Remove prototype.

	* tree-phinodes.c: Do not include rtl.h.
	* Makefile.in (tree-phinodes.o): Do not depend on RTL_H.

From-SVN: r188710
2012-06-17 21:01:25 +00:00
Steven Bosscher 0df965d73f cris.h (TARGET_ELF): Remove.
* config/cris/cris.h (TARGET_ELF): Remove.
	(FORCE_EH_FRAME_INFO_IN_DATA_SECTION): Remove.
	(CRIS_ASM_OUTPUT_ALIGNED_DECL_COMMON): Simpify using TARGET_ELF==1.
	(LOCAL_LABEL_PREFIX): Likewise.
	* config/cris/cris.c (cris_target_asm_named_section): Remove.
	(cris_option_override): Simpify using TARGET_ELF==1.
	(cris_file_start): Likewise.
	* config/cris/cris-protos.h (cris_target_asm_named_section): Remove.

From-SVN: r188709
2012-06-17 20:55:12 +00:00
Tobias Burnus 9a575e0524 re PR fortran/53691 (ICE with -Wsurprising in LAPACK 3.4.1 cgbrfsx.f)
2012-06-17  Tobias Burnus  <burnus@net-b.de>

        PR fortran/53691
        PR fortran/53685
        * check.c (gfc_calculate_transfer_sizes): Return if
        SIZE= is not constant or source-size cannot be determined.

2012-06-17  Tobias Burnus  <burnus@net-b.de>

        PR fortran/53691
        PR fortran/53685
        * gfortran.dg/transfer_check_3.f90: New.

From-SVN: r188708
2012-06-17 21:30:29 +02:00
Uros Bizjak a20d08fd75 sfp-machine.h (FP_HANDLE_EXCEPTIONS): Use __builtin_expect when checking for exceptions.
* config/i386/sfp-machine.h (FP_HANDLE_EXCEPTIONS): Use
	__builtin_expect when checking for exceptions.
	* config/ia64/sfp-machine.h (FP_HANDLE_EXCEPTIONS): Ditto.

From-SVN: r188705
2012-06-17 15:54:53 +02:00
Uros Bizjak 0a2818d5f9 sse.md (vcvtph2ps): Fix vec_select selector.
* config/i386/sse.md (vcvtph2ps): Fix vec_select selector.

From-SVN: r188704
2012-06-17 15:48:31 +02:00
Uros Bizjak 413c35303e vrp68.c: Fix scan-tree-dump-times argument order.
* gcc.dg/tree-ssa/vrp68.c: Fix scan-tree-dump-times argument order.

From-SVN: r188703
2012-06-17 10:39:13 +02:00
GCC Administrator 9fddbc100d Daily bump.
From-SVN: r188701
2012-06-17 00:17:24 +00:00
Tobias Burnus 0f6bfefdef re PR fortran/53642 (Front-end optimization: Wrong string length for deferred-length strings)
2012-06-16  Tobias Burnus  <burnus@net-b.de>

        PR fortran/53642
        PR fortran/45170
        * frontend-passes.c (optimize_assignment): Don't remove RHS's
        trim when assigning to a deferred-length string.
        * trans-expr.c (gfc_trans_assignment_1): Ensure that the RHS string
        length is evaluated before the deferred-length LHS is reallocated.

2012-06-16  Tobias Burnus  <burnus@net-b.de>

        PR fortran/53642
        PR fortran/45170
        * gfortran.dg/deferred_type_param_8.f90: New.

From-SVN: r188692
2012-06-16 20:13:38 +02:00
Eric Botcazou 9510c5af63 re PR middle-end/53590 (compiler fails to generate SIMD instruction for FP division)
PR middle-end/53590
	* tree-inline.c (initialize_cfun): Copy can_delete_dead_exceptions.

From-SVN: r188691
2012-06-16 11:05:43 +00:00
GCC Administrator b073de5ebb Daily bump.
From-SVN: r188689
2012-06-16 00:17:32 +00:00
Janis Johnson b616eb029b gcov.exp (verify-lines, [...]): Use testname that includes flags, passed in as new argument, in pass/fail messages.
* lib/gcov.exp (verify-lines, verify-branches, verify-calls): Use
	testname that includes flags, passed in as new argument, in
	pass/fail messages.
	(run_gcov): Get testname from dg-test, use it in pass/fail messages
	and pass it to verify-* procedures.

From-SVN: r188681
2012-06-15 19:45:54 +00:00
Janis Johnson 165b955b34 stackalign.exp: Combine stack alignment torture options with usual torture options.
* g++.dg/torture/stackalign/stackalign.exp: Combine stack
	alignment torture options with usual torture options.

From-SVN: r188678
2012-06-15 18:04:22 +00:00
Janis Johnson 0621f7c2b9 auto27.C: Add comments to checks for multiple messages reported for one line of source code.
* g++.dg/cpp0x/auto27.C: Add comments to checks for multiple
	messages reported for one line of source code.
	* g++.dg/cpp0x/constexpr-decl.C: Likewise.
	* g++.dg/cpp0x/decltype2.C: Likewise.
	* g++.dg/cpp0x/decltype3.C: Likewise.
	* g++.dg/cpp0x/lambda/lambda-syntax1.C: Likewise.
	* g++.dg/cpp0x/regress/error-recovery1.C: Likewise.
	* g++.dg/cpp0x/static_assert3.C: Likewise.
	* g++.dg/cpp0x/udlit-cpp98-neg.C: Likewise.
	* g++.dg/cpp0x/udlit-shadow-neg.C: Likewise.
	* g++.dg/cpp0x/union1.C: Likewise.
	* g++.dg/cpp0x/variadic-ex10.C: Likewise.
	* g++.dg/cpp0x/variadic-ex14.C: Likewise.
	* g++.dg/cpp0x/variadic2.C: Likewise.
	* g++.dg/cpp0x/variadic20.C: Likewise.
	* g++.dg/cpp0x/variadic74.C: Likewise.
	* g++.dg/diagnostic/bitfld2.C: Likewise.
	* g++.dg/ext/attrib44.C: Likewise.
	* g++.dg/ext/no-asm-1.C: Likewise.
	* g++.dg/other/error34.C: Likewise.
	* g++.dg/parse/crash46.C: Likewise.
	* g++.dg/parse/error10.C: Likewise.
	* g++.dg/parse/error2.C: Likewise.
	* g++.dg/parse/error3.C: Likewise.
	* g++.dg/parse/error36.C: Likewise.
	* g++.dg/parse/error8.C: Likewise.
	* g++.dg/parse/error9.C: Likewise.
	* g++.dg/parse/parser-pr28152-2.C: Likewise.
	* g++.dg/parse/parser-pr28152.C: Likewise.
	* g++.dg/parse/template25.C: Likewise.
	* g++.dg/parse/typename11.C: Likewise.
	* g++.dg/tc1/dr147.C: Likewise.
	* g++.dg/template/deduce3.C: Likewise.
	* g++.dg/template/koenig9.C: Likewise.
	* g++.dg/template/pr23510.C: Likewise.
	* g++.dg/warn/pr12242.C: Likewise.
	* g++.dg/warn/pr30551-2.C: Likewise.
	* g++.dg/warn/pr30551.C: Likewise.
	* g++.old-deja/g++.other/typename1.C: Likewise.
	* g++.old-deja/g++.pt/niklas01a.C: Likewise.

From-SVN: r188677
2012-06-15 18:03:34 +00:00
Easwaran Raman ad14c7daa3 passes.c (init_optimization_passes): Remove pass_call_cdce from its current position and insert after pass_dce.
2012-06-15   Easwaran Raman  <eraman@google.com>

	* passes.c (init_optimization_passes): Remove pass_call_cdce
	from its current position and insert after pass_dce.

From-SVN: r188675
2012-06-15 17:35:11 +00:00
Walter Lee 7eb0f14121 * config/tilegx/sync.md (atomic_fetch_<fetchop_name><mode>): Fix typo.
From-SVN: r188673
2012-06-15 17:19:16 +00:00
Richard Earnshaw 96adb18373 arm.c (note_invalid_constants): Don't return a result.
* arm.c (note_invalid_constants): Don't return a result.
	(arm_memory_load_p): Delete function.
	(arm_const_double_rtx): Delete iterator variable i;
	(fp_immediate_constant): Likewise.
	(fp_const_from_val): Likewise.

	* arm.c (arm_init_iwmmxt_builtins): Delete void_ftype_void.

From-SVN: r188672
2012-06-15 16:51:25 +00:00
Ramana Radhakrishnan 9e1a8dd161 [multiple changes]
2012-06-15  Marc Glisse  <marc.glisse@inria.fr>

	PR c++/51033
	* c-typeck.c (c_build_vec_perm_expr): Move to c-family/c-common.c.
        * c-tree.h (c_build_vec_perm_expr): Move to c-family/c-common.h.

cp/

2012-06-15  Marc Glisse  <marc.glisse@inria.fr>

	PR c++/51033
	* semantics.c (literal_type_p): Handle VECTOR_TYPE.
        (potential_constant_expression_1): Handle VEC_PERM_EXPR.
        * parser.c (cp_parser_postfix_expression): Handle RID_BUILTIN_SHUFFLE.

c-family
2012-06-15  Marc Glisse  <marc.glisse@inria.fr>

	PR c++/51033
	* c-common.h (c_build_vec_perm_expr): Move decl here.
	* c-common.c (c_build_vec_perm_expr): Move definition
	here.

2012-06-15  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>

	PR c++/51033
	* c-c++-common/torture/vshuf-16.inc: Move from gcc.c-torture/execute/.
	* c-c++-common/torture/vshuf-2.inc: Likewise.
	* c-c++-common/torture/vshuf-4.inc: Likewise.
	* c-c++-common/torture/vshuf-8.inc: Likewise.
	* c-c++-common/torture/vshuf-main.inc: Likewise.
	* c-c++-common/torture/vshuf-v16hi.c: Likewise.
	* c-c++-common/torture/vshuf-v16qi.c: Likewise.
	* c-c++-common/torture/vshuf-v2df.c: Likewise.
	* c-c++-common/torture/vshuf-v2di.c: Likewise.
	* c-c++-common/torture/vshuf-v2sf.c: Likewise.
	* c-c++-common/torture/vshuf-v2si.c: Likewise.
	* c-c++-common/torture/vshuf-v4df.c: Likewise.
	* c-c++-common/torture/vshuf-v4di.c: Likewise.
	* c-c++-common/torture/vshuf-v4hi.c: Likewise.
	* c-c++-common/torture/vshuf-v4sf.c: Likewise.
	* c-c++-common/torture/vshuf-v4si.c: Likewise.
	* c-c++-common/torture/vshuf-v8hi.c: Likewise.
	* c-c++-common/torture/vshuf-v8qi.c: Likewise.
	* c-c++-common/torture/vshuf-v8si.c: Likewise.

From-SVN: r188671
2012-06-15 16:43:36 +00:00
Georg-Johann Lay eb6bb55998 avr.c (avr_default_expand_builtin): New function.
* config/avr/avr.c (avr_default_expand_builtin): New function.
	(avr_expand_builtin): Use it.
	(avr_expand_unop_builtin): Remove.
	(avr_expand_binop_builtin): Remove.
	(avr_expand_triop_builtin): Remove.

From-SVN: r188670
2012-06-15 15:56:02 +00:00
Michael Matz f8395d62c1 re PR middle-end/38474 (compile time explosion in dataflow_set_preserve_mem_locs at -O3)
PR middle-end/38474
	* cfgexpand.c (add_alias_set_conflicts): Remove.
	(expand_used_vars): Don't call it.
	(aggregate_contains_union_type): Remove.
	* function.c (n_temp_slots_in_use): New static data.
	(make_slot_available, assign_stack_temp_for_type): Update it.
	(init_temp_slots): Zero it.
	(remove_unused_temp_slot_addresses): Use it for quicker removal.
	(remove_unused_temp_slot_addresses_1): Use htab_clear_slot.

From-SVN: r188667
2012-06-15 14:56:26 +00:00
Michael Matz 4c53d18336 gimplify.c (gimplify_compound_literal_expr): Take gimple_test_f argument...
* gimplify.c (gimplify_compound_literal_expr): Take gimple_test_f
	argument, don't emit assign statement if value is directly usable.
	(gimplify_expr): Adjust.

testsuite/
	* gcc.dg/tree-ssa/vector-4.c: New test.

From-SVN: r188665
2012-06-15 14:46:36 +00:00
Michael Matz 6da8be895c gimplify.c (gimplify_modify_expr): Fold generated statements.
* gimplify.c (gimplify_modify_expr): Fold generated statements.
	* gimple-fold.c (can_refer_decl_in_current_unit_p): Check flag_ltrans.

testsuite/
	* gcc.dg/debug/dwarf2/inline3.c: Adjust.
	* gcc.dg/tree-ssa/foldstring-1.c: Adjust.

From-SVN: r188664
2012-06-15 14:40:38 +00:00
Richard Guenther ef5ad3b745 tree-vrp.c (set_and_canonicalize_value_range): Use canonical predicates to set VR_UNDEFINED and VR_VARYING.
2012-06-15  Richard Guenther  <rguenther@suse.de>

	* tree-vrp.c (set_and_canonicalize_value_range): Use canonical
	predicates to set VR_UNDEFINED and VR_VARYING.  Drop a case
	we assert for in set_value_range to VR_VARYING.

From-SVN: r188663
2012-06-15 13:38:17 +00:00
Richard Earnshaw dae840fcd3 arm.md (addsf3, adddf3): Use s_register_operand.
* arm.md (addsf3, adddf3): Use s_register_operand.
	(subsf3, subdf3): Likewise.
	(mulsf3, muldf3): Likewise.
	(difsf3, divdf3): Likewise.
	(movsfcc, movdfcc): Likewise.
	* predicates.md (f_register_operand): Delete.
	(arm_float_rhs_operand): Delete.
	(arm_float_add_operand): Delete.
	(arm_float_compare_operand): Use s_register_operand when
	there's no VFP.
	(cirrus_register_operand): Delete.
	(cirrus_fp_register): Delete.
	(cirrus_shift_const): Delete.
	(cmpdi_operand): Remove Maverick support.
	* constraints.md (f, v, H): Delete constraints.
	(G): Update documentation.
	* arm.c (fp_consts_inited): Convert to bool.
	(strings_fp): Delete.
	(values_fp): Delete.
	(value_fp0): New variable.
	(init_fp_table): Simplify logic.
	(arm_const_double_rtx): Likewise.
	(fp_immediate_constant): Likewise.
	(fp_const_from_val): Likewise.
	(neg_const_double_rtx_ok_for_fpa): Delete.
	* doc/md.texi (ARM constraints): Update documentation.

From-SVN: r188662
2012-06-15 13:32:09 +00:00
Ulrich Weigand 3ebde0e9e3 re PR tree-optimization/53636 (SLP may create invalid unaligned memory accesses)
gcc/
	PR tree-optimization/53636
	* tree-vect-data-refs.c (vect_compute_data_ref_alignment): Verify
	stride when doing basic-block vectorization.

	gcc/testsuite/
	PR tree-optimization/53636
	* gcc.target/arm/pr53636.c: New test.

From-SVN: r188661
2012-06-15 13:30:36 +00:00
Ramana Radhakrishnan 273d260f83 tree-vect-generic.c (lower_vec_perm): Propagate vector constants into VEC_PERM_EXPR.
2012-06-15  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>

	* tree-vect-generic.c (lower_vec_perm): Propagate vector constants
	into VEC_PERM_EXPR.

From-SVN: r188659
2012-06-15 13:06:51 +00:00
Jakub Jelinek 772e61e10e tree-vect-patterns.c (vect_pattern_recog): Don't unnecessarily allocate and free bbs array for the SLP case.
* tree-vect-patterns.c (vect_pattern_recog): Don't unnecessarily
	allocate and free bbs array for the SLP case.

From-SVN: r188657
2012-06-15 13:08:28 +02:00
Jakub Jelinek 079c527f5e re PR tree-optimization/51581 (Integer division by constant is not vectorized)
PR tree-optimization/51581
	* expr.h (choose_multiplier): New prototype.
	* expmed.c (choose_multiplier): No longer static.
	Change multiplier_ptr from rtx * to UHWI *.
	(expand_divmod): Adjust callers.
	* tree-vect-patterns.c (vect_recog_sdivmod_pow2_pattern):
	Renamed to...
	(vect_recog_divmod_pattern): ... this.  Pass bb_vinfo as last
	argument to new_stmt_vec_info.  Attempt to optimize also divisions
	by non-pow2 constants if integer vector division isn't supported.
	* tree-vect-stmts.c (vect_analyze_stmt): If node != NULL,
	don't look at pattern stmts and sequences.

	* gcc.c-torture/execute/pr51581-1.c: New test.
	* gcc.c-torture/execute/pr51581-2.c: New test.
	* gcc.dg/vect/pr51581-1.c: New test.
	* gcc.dg/vect/pr51581-2.c: New test.
	* gcc.dg/vect/pr51581-3.c: New test.
	* gcc.target/i386/avx-pr51581-1.c: New test.
	* gcc.target/i386/avx-pr51581-2.c: New test.
	* gcc.target/i386/avx2-pr51581-1.c: New test.
	* gcc.target/i386/avx2-pr51581-2.c: New test.
	* gcc.dg/vect/slp-26.c (main1): Divide by 0x8031 instead of 3.

From-SVN: r188656
2012-06-15 13:07:47 +02:00
Richard Guenther c55224dc4d 20120615-1.c: New testcase.
2012-06-15  Richard Guenther  <rguenther@suse.de>

	* gcc.c-torture/execute/20120615-1.c: New testcase.

From-SVN: r188655
2012-06-15 11:06:16 +00:00
Eric Botcazou f71d5704ba re PR ada/53592 (ICE on assignment to component of vector_type)
PR ada/53592
	* gcc-interface/gigi.h (maybe_vector_array): Make static inline.
	* gcc-interface/utils.c (maybe_vector_array): Delete.
	* gcc-interface/trans.c (gnat_to_gnu) <N_Indexed_Component>: Mark the
	array object as addressable if it has vector type and is on the LHS.

From-SVN: r188653
2012-06-15 10:41:13 +00:00
Eric Botcazou 2da02156af re PR middle-end/53590 (compiler fails to generate SIMD instruction for FP division)
PR middle-end/53590
	* common.opt (-fdelete-dead-exceptions): New switch.
	* doc/invoke.texi (Code Gen Options): Document it.
	* cse.c (count_reg_usage) <CALL_INSN>: Use !insn_nothrow_p in lieu of
	insn_could_throw_p predicate.  Do not skip an insn that could throw
	if dead exceptions can be deleted.
	(insn_live_p): Likewise, do not return true in that case.
	* dce.c (can_alter_cfg): New flag.
	(deletable_insn_p): Do not return false for an insn that can throw if
	the CFG can be altered and dead exceptions can be deleted.
	(init_dce): Set can_alter_cfg to false for fast DCE, true otherwise.
	* dse.c (scan_insn): Use !insn_nothrow_p in lieu of insn_could_throw_
	predicate. Do not preserve an insn that could throw if dead exceptions
	can be deleted.
	* function.h (struct function): Add can_delete_dead_exceptions flag.
	* function.c (allocate_struct_function): Set it.
	* lto-streamer-in.c (input_struct_function_base): Stream it.
	* lto-streamer-out.c (input_struct_function_base): Likewise.
	* tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Do not mark a
	statement that could throw as necessary if dead exceptions can be
	deleted.
ada/
	* gcc-interface/misc.c (gnat_init_options_struct): Set
	opts->x_flag_delete_dead_exceptions to 1.

From-SVN: r188651
2012-06-15 09:22:00 +00:00
Andreas Schwab 6724292e72 locks.h (compare_and_swap): Use __sync_bool_compare_and_swap.
* sysdep/m68k/locks.h (compare_and_swap): Use
__sync_bool_compare_and_swap.
(release_set): Use write_barrier instead of inlining it.

From-SVN: r188650
2012-06-15 08:08:04 +00:00
Andreas Krebbel 6d017004b1 2012-06-15 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
* sysdep/s390/locks.h (compare_and_swap, release_set)
	(read_barrier, write_barrier): Use the GCC atomic builtins.

From-SVN: r188649
2012-06-15 07:29:26 +00:00
Uros Bizjak 6c31f5fbe0 (*zero_extendsidi2_rex64): Remove isa attribute.
From-SVN: r188648
2012-06-15 08:53:28 +02:00
Jonathan Wakely ea15487933 re PR libstdc++/53578 (include/ext/concurrence.h relies on ill-formed narrowing conversions)
PR libstdc++/53578
	* include/ext/concurrence.h (__recursive_mutex::_S_destroy): Fix
	narrowing conversion.
	* include/std/mutex (__recursive_mutex_base::_S_destroy): Likewise.

From-SVN: r188646
2012-06-15 01:27:29 +01:00
GCC Administrator e48c9c3e05 Daily bump.
From-SVN: r188645
2012-06-15 00:18:49 +00:00