Commit Graph

54254 Commits

Author SHA1 Message Date
Nick Clifton 3a22ad890b mn10300.c (popcount): New function.
* config/mn10300/mn10300.c (popcount): New function.
	(mn10300_expand_prologue): Include saved registers in stack usage
	count.

From-SVN: r207665
2014-02-10 17:23:40 +00:00
Jeff Law f27be5508a re PR middle-end/52306 (ICE in cselib_record_set, at cselib.c:2158)
PR middle-end/52306
	* reload1.c (emit_input_reload_insns): Do not create invalid RTL
	when changing the SET_DEST of a prior insn to avoid an input
	reload.

	PR middle-end-52306
	* gcc.c-torture/compile/pr52306.c: New test.

From-SVN: r207662
2014-02-10 09:25:44 -07:00
Ulrich Weigand e15e38155c sysv4.h (ENDIAN_SELECT): Do not attempt to enforce big-endian mode for -mcall-aixdesc...
* config/rs6000/sysv4.h (ENDIAN_SELECT): Do not attempt to enforce
	big-endian mode for -mcall-aixdesc, -mcall-freebsd, -mcall-netbsd,
	-mcall-openbsd, or -mcall-linux.
	(CC1_ENDIAN_BIG_SPEC): Remove.
	(CC1_ENDIAN_LITTLE_SPEC): Remove.
	(CC1_ENDIAN_DEFAULT_SPEC): Remove.
	(CC1_SPEC): Remove (always empty) %cc1_endian_... spec.
	(SUBTARGET_EXTRA_SPECS): Remove %cc1_endian_big, %cc1_endian_little,
	and %cc1_endian_default.
	* config/rs6000/sysv4le.h (CC1_ENDIAN_DEFAULT_SPEC): Remove.

From-SVN: r207658
2014-02-10 14:46:24 +00:00
Richard Biener 4e1f39e43a re PR tree-optimization/60115 (wrong code at -O3 on x86_64-linux-gnu)
2014-02-10  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/60115
	* tree-eh.c (tree_could_trap_p): Unify TARGET_MEM_REF and
	MEM_REF handling.  Properly verify that the accesses are not
	out of the objects bound.

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

From-SVN: r207656
2014-02-10 13:51:23 +00:00
Kyrylo Tkachov e7af1c221d aarch64.c (aarch64_override_options): Fix typo from coretex to cortex.
* config/aarch64/aarch64.c (aarch64_override_options): Fix typo from
	coretex to cortex.

From-SVN: r207654
2014-02-10 11:25:16 +00:00
Eric Botcazou 79c7de844c ipa-devirt.c (get_polymorphic_call_info_from_invariant): Return proper constants and fix formatting.
* ipa-devirt.c (get_polymorphic_call_info_from_invariant): Return
	proper constants and fix formatting.
	(possible_polymorphic_call_targets): Fix formatting.

From-SVN: r207653
2014-02-10 11:15:38 +00:00
Kirill Yukhin cf73ee60e7 avx512fintrin.h (_mm512_storeu_epi64): Removed.
gcc/
	* config/i386/avx512fintrin.h (_mm512_storeu_epi64): Removed.
	(_mm512_loadu_epi32): Renamed into...
	(_mm512_loadu_si512): This.
	(_mm512_storeu_epi32): Renamed into...
	(_mm512_storeu_si512): This.
	(_mm512_maskz_ceil_ps): Removed.
	(_mm512_maskz_ceil_pd): Ditto.
	(_mm512_maskz_floor_ps): Ditto.
	(_mm512_maskz_floor_pd): Ditto.
	(_mm512_floor_round_ps): Ditto.
	(_mm512_floor_round_pd): Ditto.
	(_mm512_ceil_round_ps): Ditto.
	(_mm512_ceil_round_pd): Ditto.
	(_mm512_mask_floor_round_ps): Ditto.
	(_mm512_mask_floor_round_pd): Ditto.
	(_mm512_mask_ceil_round_ps): Ditto.
	(_mm512_mask_ceil_round_pd): Ditto.
	(_mm512_maskz_floor_round_ps): Ditto.
	(_mm512_maskz_floor_round_pd): Ditto.
	(_mm512_maskz_ceil_round_ps): Ditto.
	(_mm512_maskz_ceil_round_pd): Ditto.
	(_mm512_expand_pd): Ditto.
	(_mm512_expand_ps): Ditto.
	* config/i386/i386.c (ix86_builtins): Remove
	IX86_BUILTIN_EXPANDPD512_NOMASK, IX86_BUILTIN_EXPANDPS512_NOMASK.
	(bdesc_args): Ditto.
	* config/i386/predicates.md (const1256_operand): New.
	(const_1_to_2_operand): Ditto.
	* config/i386/sse.md (avx512pf_gatherpf<mode>sf): Change hint value.
	(*avx512pf_gatherpf<mode>sf_mask): Ditto.
	(*avx512pf_gatherpf<mode>sf): Ditto.
	(avx512pf_gatherpf<mode>df): Ditto.
	(*avx512pf_gatherpf<mode>df_mask): Ditto.
	(*avx512pf_gatherpf<mode>df): Ditto.
	(avx512pf_scatterpf<mode>sf): Ditto.
	(*avx512pf_scatterpf<mode>sf_mask): Ditto.
	(*avx512pf_scatterpf<mode>sf): Ditto.
	(avx512pf_scatterpf<mode>df): Ditto.
	(*avx512pf_scatterpf<mode>df_mask): Ditto.
	(*avx512pf_scatterpf<mode>df): Ditto.
	(avx512f_expand<mode>): Removed.
	(<shift_insn><mode>3<mask_name>): Change predicate type.

testsuite/gcc/
	* gcc.target/i386/avx512f-vexpandpd-1.c: Update intrinsics.
	* gcc.target/i386/avx512f-vexpandps-1.c: Ditto.
	* gcc.target/i386/avx512f-vexpandpd-2.c: Ditto.
	* gcc.target/i386/avx512f-vexpandps-2.c: Ditto.
	* gcc.target/i386/avx512f-vmovdqu32-1: Ditto.
	* gcc.target/i386/avx512f-vmovdqu32-2: Ditto.
	* gcc.target/i386/avx512f-vmovdqu64-1: Ditto.
	* gcc.target/i386/avx512f-vmovdqu64-2: Ditto.
	* gcc.target/i386/avx512f-vpcmpd-2.c: Ditto.
	* gcc.target/i386/avx512f-vpcmpq-2.c: Ditto.
	* gcc.target/i386/avx512f-vpcmupd-2.c: Ditto.
	* gcc.target/i386/avx512f-vpcmupq-2.c: Ditto.
	* gcc.target/i386/avx512f-vrndscalepd-1.c: Ditto.
	* gcc.target/i386/avx512f-vrndscaleps-1.c: Ditto.
	* gcc.target/i386/avx512f-vrndscalepd-2.c: Ditto.
	* gcc.target/i386/avx512f-vrndscaleps-2.c: Ditto.
	* gcc.target/i386/avx512pf-vgatherpf0dpd-1.c: Update parameters.
	* gcc.target/i386/avx512pf-vgatherpf0dps-1.c: Ditto.
	* gcc.target/i386/avx512pf-vgatherpf0qpd-1.c: Ditto.
	* gcc.target/i386/avx512pf-vgatherpf0qps-1.c: Ditto.
	* gcc.target/i386/avx512pf-vgatherpf1dpd-1.c: Ditto.
	* gcc.target/i386/avx512pf-vgatherpf1dps-1.c: Ditto.
	* gcc.target/i386/avx512pf-vgatherpf1qpd-1.c: Ditto.
	* gcc.target/i386/avx512pf-vgatherpf1qps-1.c: Ditto.
	* gcc.target/i386/avx512f-vpsrad-2.c: Initialize 64 bits.
	* gcc.target/i386/avx512f-vpslld-2.c: Ditto.
	* gcc.target/i386/avx512f-vpsrld-2.c: Ditto.

Co-Authored-By: Ilya Tocar <ilya.tocar@intel.com>

From-SVN: r207651
2014-02-10 10:36:59 +00:00
Jakub Jelinek 41475e966c tree-vect-data-refs.c (vect_analyze_data_refs): For clobbers not at the end of datarefs vector use ordered_remove to avoid...
* tree-vect-data-refs.c (vect_analyze_data_refs): For clobbers
	not at the end of datarefs vector use ordered_remove to avoid
	reordering datarefs vector.

From-SVN: r207632
2014-02-08 15:52:39 +01:00
Jakub Jelinek c74559df76 re PR c/59984 (OpenMP pragma makes loop incorrect)
PR c/59984
	* gimplify.c (gimplify_bind_expr): In ORT_SIMD region
	mark local addressable non-static vars as GOVD_PRIVATE
	instead of GOVD_LOCAL.
	* omp-low.c (lower_omp_for): Move gimple_bind_vars
	and BLOCK_VARS of gimple_bind_block to new_stmt rather
	than copying them.

	* gcc.dg/vect/pr59984.c: New test.

From-SVN: r207629
2014-02-08 10:10:14 +01:00
Jakub Jelinek 8fcbce729d re PR middle-end/60092 (posix_memalign not recognized to derive alias and alignment info)
PR middle-end/60092
	* tree-ssa-ccp.c (surely_varying_stmt_p): Don't return true
	if TYPE_ATTRIBUTES (gimple_call_fntype ()) contain
	assume_aligned or alloc_align attributes.
	(bit_value_assume_aligned): Add ATTR, PTRVAL and ALLOC_ALIGN
	arguments.  Handle also assume_aligned and alloc_align attributes.
	(evaluate_stmt): Adjust bit_value_assume_aligned caller.
	Handle calls to functions with assume_aligned or alloc_align
	attributes.
	* doc/extend.texi: Document assume_aligned and alloc_align
	attributes.
c-family/
	* c-common.c (handle_alloc_size_attribute): Use tree_fits_uhwi_p
	and tree_to_uhwi.
	(handle_alloc_align_attribute, handle_assume_aligned_attribute): New
	functions.
	(c_common_attribute_table): Add alloc_align and assume_aligned
	attributes.
testsuite/
	* gcc.dg/attr-alloc_align-1.c: New test.
	* gcc.dg/attr-alloc_align-2.c: New test.
	* gcc.dg/attr-alloc_align-3.c: New test.
	* gcc.dg/attr-assume_aligned-1.c: New test.
	* gcc.dg/attr-assume_aligned-2.c: New test.
	* gcc.dg/attr-assume_aligned-3.c: New test.

From-SVN: r207628
2014-02-08 10:09:01 +01:00
Terry Guo 451bdd2308 invoke.texi: Document ARM -march=armv7e-m.
2014-02-08  Terry Guo  <terry.guo@arm.com>

	* doc/invoke.texi: Document ARM -march=armv7e-m.

From-SVN: r207627
2014-02-08 01:33:54 +00:00
Jakub Jelinek d71dfeb743 cilk-common.c (cilk_init_builtins): Clear TREE_NOTHROW flag on __cilkrts_rethrow builtin.
* cilk-common.c (cilk_init_builtins): Clear TREE_NOTHROW
	flag on __cilkrts_rethrow builtin.

From-SVN: r207623
2014-02-08 00:58:29 +01:00
Jakub Jelinek d31d42c74d re PR ipa/60026 (ICE at -O3 on valid code (with the optimize pragma) on x86_64-linux-gnu)
PR ipa/60026
	* ipa-cp.c (determine_versionability): Fail at -O0
	or __attribute__((optimize (0))) or -fno-ipa-cp functions.
	* tree-sra.c (ipa_sra_preliminary_function_checks): Similarly.

	Revert:
	2014-02-04  Jakub Jelinek  <jakub@redhat.com>

	PR ipa/60026
	* tree-inline.c (copy_forbidden): Fail for
	__attribute__((optimize (0))) functions.

From-SVN: r207621
2014-02-08 00:54:17 +01:00
Jan Hubicka a0a98fef26 varpool.c: Include pointer-set.h.
* varpool.c: Include pointer-set.h.
	(varpool_remove_unreferenced_decls): Variables in other partitions
	will not be output; be however careful to not lose information
	about partitioning.

From-SVN: r207620
2014-02-07 23:49:18 +00:00
Jan Hubicka 8c311b50d1 gimple-fold.c (gimple_get_virt_method_for_vtable): Do O(1) lookup in the vtable constructor.
* gimple-fold.c (gimple_get_virt_method_for_vtable): Do O(1)
	lookup in the vtable constructor.

From-SVN: r207616
2014-02-07 23:26:39 +00:00
Jeff Law 63e6247dfe re PR target/40977 (problem with code like this: res = ((uint64_t)resh << 32) | resl;)
PR target/40977
	* config/m68k/m68k.md (ashldi_extsi): Turn into a
	define_insn_and_split.

From-SVN: r207615
2014-02-07 15:35:49 -07:00
Jeff Law 7ba03e5e3f * ipa-inline.c (inline_small_functions): Fix typos.
From-SVN: r207608
2014-02-07 10:29:26 -07:00
Richard Sandiford 177bc204a2 gcc/
* config/s390/s390-protos.h (s390_can_use_simple_return_insn)
	(s390_can_use_return_insn): Declare.
	* config/s390/s390.h (EPILOGUE_USES): Define.
	* config/s390/s390.c (s390_mainpool_start): Allow two main_pool
	instructions.
	(s390_chunkify_start): Handle return JUMP_LABELs.
	(s390_early_mach): Emit a main_pool instruction on the entry edge.
	(s300_set_up_by_prologue, s390_can_use_simple_return_insn)
	(s390_can_use_return_insn): New functions.
	(s390_fix_long_loop_prediction): Handle conditional returns.
	(TARGET_SET_UP_BY_PROLOGUE): Define.
	* config/s390/s390.md (ANY_RETURN): New code iterator.
	(*creturn, *csimple_return, return, simple_return): New patterns.

From-SVN: r207605
2014-02-07 14:52:26 +00:00
Richard Sandiford 0621cf3c78 s390.c (s390_restore_gprs_from_fprs): Add REG_CFA_RESTORE notes to each restore.
gcc/
	* config/s390/s390.c (s390_restore_gprs_from_fprs): Add REG_CFA_RESTORE
	notes to each restore.  Also add REG_CFA_DEF_CFA when restoring %r15.
	(s390_optimize_prologue): Don't clear RTX_FRAME_RELATED_P.  Update the
	REG_CFA_RESTORE list when deciding not to restore a register.

From-SVN: r207604
2014-02-07 14:52:13 +00:00
Richard Sandiford 4099494d5e s390.c: Include tree-pass.h and context.h.
gcc/
	* config/s390/s390.c: Include tree-pass.h and context.h.
	(s390_early_mach): New function, split out from...
	(s390_emit_prologue): ...here.
	(pass_data_s390_early_mach): New pass structure.
	(pass_s390_early_mach): New class.
	(s390_option_override): Create and register early_mach pass.
	Move to end of file.

From-SVN: r207603
2014-02-07 14:50:19 +00:00
Richard Sandiford 3489cc3363 var-tracking.c (vt_stack_adjustments): Don't require stack_adjusts to match for the exit block.
gcc/
	* var-tracking.c (vt_stack_adjustments): Don't require stack_adjusts
	to match for the exit block.

From-SVN: r207602
2014-02-07 14:49:12 +00:00
Andreas Krebbel 75cc21e2b7 2014-02-07 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
* config/s390/s390.md ("atomic_load<mode>", "atomic_store<mode>")
	("atomic_compare_and_swap<mode>", "atomic_fetch_<atomic><mode>"):
	Reject misaligned operands.

From-SVN: r207601
2014-02-07 14:22:41 +00:00
Andreas Krebbel 8bd7070a7a optabs.c (expand_atomic_compare_and_swap): Allow expander to fail.
2014-02-07  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>

	* optabs.c (expand_atomic_compare_and_swap): Allow expander to
	fail.

From-SVN: r207599
2014-02-07 14:20:17 +00:00
Richard Biener 831806cb21 re PR middle-end/60092 (posix_memalign not recognized to derive alias and alignment info)
2014-02-07  Richard Biener  <rguenther@suse.de>

	PR middle-end/60092
	* gimple-low.c (lower_builtin_posix_memalign): New function.
	(lower_stmt): Call it to lower posix_memalign in a way
	to make alignment info accessible.

	* gcc.dg/vect/pr60092-2.c: New testcase.

From-SVN: r207598
2014-02-07 13:41:10 +00:00
Jakub Jelinek 7ee9c16fa8 re PR c++/60082 (Certain Cilk keywords executable Hanging for -O1)
PR c++/60082
	* tree.c (build_common_builtin_nodes): Set ECF_LEAF for
	__builtin_setjmp_receiver.

	Revert
	2014-02-05  Balaji V. Iyer  <balaji.v.iyer@intel.com>

	* g++.dg/cilk-plus/CK/catch_exc.cc: Disable test for -O1.
	* c-c++-common/cilk-plus/CK/spawner_inline.c: Likewise.

From-SVN: r207597
2014-02-07 11:49:08 +01:00
Richard Biener 32cab212f2 re PR middle-end/60092 (posix_memalign not recognized to derive alias and alignment info)
2014-02-07  Richard Biener  <rguenther@suse.de>

	PR middle-end/60092
	* builtin-types.def (BT_FN_INT_PTRPTR_SIZE_SIZE): Add.
	* builtins.def (BUILT_IN_POSIX_MEMALIGN): Likewise.
	* tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
	Handle BUILT_IN_POSIX_MEMALIGN.
	(find_func_clobbers): Likewise.
	* tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Likewise.
	(call_may_clobber_ref_p_1): Likewise.

	* gcc.dg/tree-ssa/alias-30.c: New testcase.
	* gcc.dg/tree-ssa/alias-31.c: Likewise.

From-SVN: r207595
2014-02-07 09:33:23 +00:00
Jan Hubicka 6d6af79282 re PR ipa/59918 (ICE in record_target_from_binfo, at ipa-devirt.c:693)
PR ipa/59918
	* ipa-devirt.c (record_target_from_binfo): Remove overactive sanity check.
	* g++.dg/torture/pr59918.C: New testcase.

From-SVN: r207592
2014-02-07 06:01:36 +00:00
Jan Hubicka 3c0f1105e1 re PR ipa/59469 (LLVM build failure with gcc LTO)
PR ipa/59469
	* lto-cgraph.c (lto_output_node): Use
	symtab_get_symbol_partitioning_class.
	(lto_output_varpool_node): likewise.
	(symtab_get_symbol_partitioning_class): Move here from
	lto/lto-partition.c
	* cgraph.h (symbol_partitioning_class): Likewise.
	(symtab_get_symbol_partitioning_class): Declare.

From-SVN: r207590
2014-02-07 02:27:37 +00:00
Jan Hubicka b3bb0eb9c0 parser.c (synthesize_implicit_template_parm): Use grow_tree_vec.
* parser.c (synthesize_implicit_template_parm): Use grow_tree_vec.
	* ggc.h (ggc_internal_cleared_alloc): New macro.
	* vec.h (vec_safe_copy): Handle memory stats.
	* omp-low.c (simd_clone_struct_alloc): Use ggc_internal_cleared_alloc.
	* target-globals.c (save_target_globals): Likewise.

From-SVN: r207588
2014-02-07 02:14:58 +00:00
Jakub Jelinek e2f0f5f704 re PR target/60077 (gcc.target/i386/pr35767-5.c FAILs)
PR target/60077
	* expr.c (emit_move_resolve_push): Export; be bit more selective
	on when to clear alias set.
	* expr.h (emit_move_resolve_push): Declare.
	* function.h (struct function): Add tail_call_marked.
	* tree-tailcall.c (optimize_tail_call): Set tail_call_marked.
	* config/i386/i386-protos.h (ix86_expand_push): Remove.
	* config/i386/i386.md (TImode move expander): De not call
	ix86_expand_push.
	(FP push expanders): Preserve memory attributes.
	* config/i386/sse.md (push<mode>1): Remove.
	* config/i386/i386.c (ix86_expand_vector_move): Handle push
	operation.
	(ix86_expand_push): Remove.
	* config/i386/mmx.md (push<mode>1): Remove.

From-SVN: r207587
2014-02-07 02:11:27 +00:00
Jakub Jelinek 47d552eb01 re PR rtl-optimization/60030 (ICE in simplify_subreg, at simplify-rtx.c:5903)
PR rtl-optimization/60030
	* internal-fn.c (ubsan_expand_si_overflow_mul_check): Surround
	lopart with paradoxical subreg before shifting it up by hprec.

From-SVN: r207582
2014-02-06 22:54:21 +01:00
Kyrylo Tkachov 45c75ea7f1 [ARM] Cortex-A57 rtx costs
* config/arm/aarch-cost-tables.h (cortexa57_extra_costs): New table.
	Remove extra newline at end of file.
	* config/arm/arm.c (arm_cortex_a57_tune): New tuning struct.
	(arm_issue_rate): Handle cortexa57.
	* config/arm/arm-cores.def (cortex-a57): Use cortex_a57 tuning.
	(cortex-a57.cortex-a53): Likewise.

From-SVN: r207565
2014-02-06 16:51:03 +00:00
Jakub Jelinek 652a3e3ac3 re PR debug/59575 (ICE in maybe_record_trace_start, at dwarf2cfi.c:2239)
PR target/59575
	* config/arm/arm.c (emit_multi_reg_push): Add dwarf_regs_mask argument,
	don't record in REG_FRAME_RELATED_EXPR registers not set in that
	bitmask.
	(arm_expand_prologue): Adjust all callers.
	(arm_unwind_emit_sequence): Allow saved, but not important for unwind
	info, registers also at the lowest numbered registers side.  Use
	gcc_assert instead of abort, and SET_SRC/SET_DEST macros instead of
	XEXP.

	* gcc.target/arm/pr59575.c: New test.

From-SVN: r207563
2014-02-06 16:52:17 +01:00
Jakub Jelinek af116cae67 re PR debug/59992 (Compilation of insn-recog.c too slow due to var-tracking)
PR debug/59992
	* var-tracking.c (adjust_mems): Before adding a SET
	to amd->side_effects, adjust it's SET_SRC using
	simplify_replace_fn_rtx.

	* gcc.dg/pr59992.c: New test.

From-SVN: r207562
2014-02-06 16:47:12 +01:00
Alan Modra fdcee33b24 re PR target/60032 (ICE in reload_cse_simplify_operands, at postreload.c:411)
PR target/60032
gcc/
	* config/rs6000/rs6000.c (rs6000_secondary_memory_needed_mode): Only
	change SDmode to DDmode when lra_in_progress.
gcc/testsuite/
	* gcc.target/powerpc/pr60032.c: New.

From-SVN: r207553
2014-02-06 23:55:38 +10:30
Jakub Jelinek d3ef8c5316 re PR middle-end/59150 (ICE: in expand_one_var, at cfgexpand.c:1242 with -fopenmp)
PR middle-end/59150
	* tree-vect-data-refs.c (vect_analyze_data_refs): For clobbers, call
	free_data_ref on the dr first, and before goto again also set dr
	to the next dr.  For simd_lane_access, free old datarefs[i] before
	overwriting it.  For get_vectype_for_scalar_type failure, don't
	free_data_ref if simd_lane_access.

From-SVN: r207551
2014-02-06 11:59:30 +01:00
Jakub Jelinek 2754b38fd3 * Makefile.in (prefix.o, cppbuiltin.o): Depend on $(BASEVER).
From-SVN: r207550
2014-02-06 11:58:16 +01:00
Jakub Jelinek 251901a027 re PR target/60062 (wrong code (for code with the optimize attribute) at -O1 and above on x86_64-linux-gnu in 32-bit mode)
PR target/60062
	* tree.h (opts_for_fn): New inline function.
	(opt_for_fn): Define.
	* config/i386/i386.c (ix86_function_regparm): Use
	opt_for_fn (decl, optimize) instead of optimize.

	* gcc.c-torture/execute/pr60062.c: New test.
	* gcc.c-torture/execute/pr60072.c: New test.

From-SVN: r207549
2014-02-06 11:54:20 +01:00
Marcus Shawcroft 4a985a3778 [AArch64] Fix SYMBOL_REF symbol classification.
The symbol classification logic in correctly classifies all
SYMBOL_REF's as SYMBOL_FORCE_TO_MEM, the intention of the code is to
catch only the large memory model case.

From-SVN: r207544
2014-02-06 10:17:18 +00:00
Kyrylo Tkachov c366d38c64 aarch64-cores.def (cortex-a53): Specify CRC32 and crypto support.
2014-02-06  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* config/aarch64/aarch64-cores.def (cortex-a53): Specify CRC32
	and crypto support.
	(cortex-a57): Likewise.
	(cortex-a57.cortex-a53): Likewise.

From-SVN: r207539
2014-02-06 10:08:12 +00:00
Yury Gribov c801e24619 arm.c (arm_vector_alignment_reachable): Check unaligned_access.
2014-02-06  Yury Gribov  <y.gribov@samsung.com>
	    Kugan Vivekanandarajah  <kuganv@linaro.org>

gcc/
	* config/arm/arm.c (arm_vector_alignment_reachable): Check
	unaligned_access.
	* config/arm/arm.c (arm_builtin_support_vector_misalignment): Likewise.

testsuite/
	* gcc.target/arm/vect-noalign.c: New file.

Co-Authored-By: Kugan Vivekanandarajah <kuganv@linaro.org>

From-SVN: r207533
2014-02-06 09:48:15 +00:00
Richard Biener d50f7b84e3 tree-cfg.c (gimple_duplicate_sese_region): Fix ordering of set_loop_copy and initialize_original_copy_tables.
2014-02-06  Richard Biener  <rguenther@suse.de>

	* tree-cfg.c (gimple_duplicate_sese_region): Fix ordering of
	set_loop_copy and initialize_original_copy_tables.

From-SVN: r207532
2014-02-06 09:41:44 +00:00
Alex Velenko 179d29415e [AArch64] Shift right pattern fix
gcc/

	* config/aarch64/aarch64-simd.md
	(aarch64_ashr_simddi): Change QI to SI.

From-SVN: r207531
2014-02-06 09:27:57 +00:00
Jan Hubicka 78b1469d8b re PR middle-end/60013 (Build of 176.gcc from CPU2000 loops in cc1 starting with r207231)
PR middle-end/60013
	* ipa-inline-analysis.c (compute_bb_predicates): Ensure monotonicity
	of the dataflow.
	* gcc.dg/pr60013.c: New testcase.

Co-Authored-By: Jakub Jelinek <jakub@redhat.com>

From-SVN: r207529
2014-02-06 07:39:24 +00:00
Bill Schmidt d85f364c76 rs6000.c (altivec_expand_vec_perm_const): Change CODE_FOR_altivec_vpku[hw]um to CODE_FOR_altivec_vpku[hw]um_direct.
2014-02-05  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	* config/rs6000/rs6000.c (altivec_expand_vec_perm_const): Change
	CODE_FOR_altivec_vpku[hw]um to
	CODE_FOR_altivec_vpku[hw]um_direct.
	* config/rs6000/altivec.md (vec_unpacks_hi_<VP_small_lc>): Change
	UNSPEC_VUNPACK_HI_SIGN to UNSPEC_VUNPACK_HI_SIGN_DIRECT.
	(vec_unpacks_lo_<VP_small_lc>): Change UNSPEC_VUNPACK_LO_SIGN to
	UNSPEC_VUNPACK_LO_SIGN_DIRECT.

From-SVN: r207525
2014-02-05 23:54:57 +00:00
Bill Schmidt 7b1cd42745 altivec.md (altivec_vsum2sws): Adjust code generation for -maltivec=be.
gcc:

2014-02-05  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	* config/rs6000/altivec.md (altivec_vsum2sws): Adjust code
	generation for -maltivec=be.
	(altivec_vsumsws): Simplify redundant test.

gcc/testsuite:

2014-02-05  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	* gcc.dg/vmx/sum2s.c: New.
	* gcc.dg/vmx/sum2s-be-order.c: New.

From-SVN: r207521
2014-02-05 20:15:57 +00:00
Bill Schmidt 52a93551af altivec.md (UNSPEC_VPACK_UNS_UNS_MOD_DIRECT): New unspec.
gcc:

2014-02-05  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	* altivec.md (UNSPEC_VPACK_UNS_UNS_MOD_DIRECT): New unspec.
	(UNSPEC_VUNPACK_HI_SIGN_DIRECT): Likewise.
	(UNSPEC_VUNPACK_LO_SIGN_DIRECT): Likewise.
	(mulv8hi3): Use gen_altivec_vpkuwum_direct instead of
	gen_altivec_vpkuwum.
	(altivec_vpkpx): Test for VECTOR_ELT_ORDER_BIG instead of for
	BYTES_BIG_ENDIAN.
	(altivec_vpks<VI_char>ss): Likewise.
	(altivec_vpks<VI_char>us): Likewise.
	(altivec_vpku<VI_char>us): Likewise.
	(altivec_vpku<VI_char>um): Likewise.
	(altivec_vpku<VI_char>um_direct): New (copy of
	altivec_vpku<VI_char>um that still relies on BYTES_BIG_ENDIAN, for
	internal use).
	(altivec_vupkhs<VU_char>): Emit vupkls* instead of vupkhs* when
	target is little endian and -maltivec=be is not specified.
	(*altivec_vupkhs<VU_char>_direct): New (copy of
	altivec_vupkhs<VU_char> that always emits vupkhs*, for internal
	use).
	(altivec_vupkls<VU_char>): Emit vupkhs* instead of vupkls* when
	target is little endian and -maltivec=be is not specified.
	(*altivec_vupkls<VU_char>_direct): New (copy of
	altivec_vupkls<VU_char> that always emits vupkls*, for internal
	use).
	(altivec_vupkhpx): Emit vupklpx instead of vupkhpx when target is
	little endian and -maltivec=be is not specified.
	(altivec_vupklpx): Emit vupkhpx instead of vupklpx when target is
	little endian and -maltivec=be is not specified.

gcc/testsuite:

2014-02-05  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	* gcc.dg/vmx/pack.c: New.
	* gcc.dg/vmx/pack-be-order.c: New.
	* gcc.dg/vmx/unpack.c: New.
	* gcc.dg/vmx/unpack-be-order.c: New.

From-SVN: r207520
2014-02-05 20:07:51 +00:00
Richard Henderson 76df831f5d re PR debug/52727 (internal compiler error at dwarf2cfi.c2:685)
PR debug/52727

        * combine-stack-adj.c: Revert r206943.
        * sched-int.h (struct deps_desc): Add last_args_size.
        * sched-deps.c (init_deps): Initialize it.
        (sched_analyze_insn): Add OUTPUT dependencies between insns that
        contain REG_ARGS_SIZE notes.

From-SVN: r207518
2014-02-05 10:42:19 -08:00
Jan Hubicka f300e7b88c lto-cgraph.c (asm_nodes_output): Make global.
* lto-cgraph.c (asm_nodes_output): Make global.
	* lto-wrapper.c (run_gcc): Pass down paralelizm to WPA.
	* gcc.c (AS_NEEDS_DASH_FOR_PIPED_INPUT): Allow WPA
	parameter
	(driver_handle_option): Handle OPT_fwpa.

	* lto.c (lto_parallelism): New static var.
	(do_stream_out, wait_for_child, stream_out): New static functions.
	(lto_wpa_write_files): Add support for parallel streaming.
	(do_whole_program_analysis): Set parallelism.
	* lang.opt (fwpa): Add parameter.
	* lto-lang.c (lto_handle_option): Handle flag_wpa.
	(lto_init): Update use of flag_wpa.
	* lto-streamer.h (asm_nodes_output): Declare.

From-SVN: r207515
2014-02-05 17:21:07 +00:00
Jakub Jelinek add5c7634e re PR ipa/59947 (Segmentation fault with #pragma GCC optimize ("O2"), ICE in get_odr_type)
PR ipa/59947
	* ipa-devirt.c (possible_polymorphic_call_targets): Fix
	a comment typo and formatting issue.  If odr_hash hasn't been
	created, return vNULL and set *completep to false.

	* g++.dg/opt/pr59947.C: New test.

From-SVN: r207512
2014-02-05 16:34:25 +01:00
Jakub Jelinek 609524d29c re PR middle-end/57499 (ICE when noreturn destructor returns after throw with -O)
PR middle-end/57499
	* tree-eh.c (cleanup_empty_eh): Bail out on totally empty
	bb with no successors.

	* g++.dg/torture/pr57499.C: New test.

From-SVN: r207504
2014-02-05 15:34:30 +01:00
James Greenhalgh 05ab6e2119 [ARM Documentation] Clarify -mcpu, -mtune, -march
gcc/

	PR target/59718
	* doc/invoke.texi (-march=): Clarify documentation for ARM.
	(-mtune=): Likewise.
	(-mcpu=): Likewise.

From-SVN: r207501
2014-02-05 11:42:50 +00:00
Richard Biener d55d9ed0ae tree-vect-loop.c (vect_analyze_loop_2): Be more informative when not vectorizing because of too many alias checks.
2014-02-05  Richard Biener  <rguenther@suse.de>

	* tree-vect-loop.c (vect_analyze_loop_2): Be more informative
	when not vectorizing because of too many alias checks.
	* tree-vect-data-refs.c (vect_prune_runtime_alias_test_list):
	Add more verboseness, avoid duplicate MSG_MISSED_OPTIMIZATION.

From-SVN: r207499
2014-02-05 10:28:26 +00:00
Nick Clifton c70da878e5 mn10300.c (mn10300_hard_regno_mode_ok): Do not accept extended registers in any mode when compiling for the MN10300.
* config/mn10300/mn10300.c (mn10300_hard_regno_mode_ok): Do not
	accept extended registers in any mode when compiling for the
	MN10300.

From-SVN: r207498
2014-02-05 09:47:59 +00:00
Yury Gribov 25a07c7ee9 re PR sanitizer/59600 (no_sanitize_address mishandled when function is inlined)
PR sanitizer/59600

gcc/
	* cif-code.def (ATTRIBUTE_MISMATCH): New CIF code.
	* ipa-inline.c (report_inline_failed_reason): Handle mismatched
	sanitization attributes.
	(can_inline_edge_p): Likewise.
	(sanitize_attrs_match_for_inline_p): New function.

gcc/testsuite/
	* gcc.dg/asan/nosanitize-and-inline.c: : New test.

From-SVN: r207497
2014-02-05 05:22:29 +00:00
Jan Hubicka 4bf2a588d4 ipa-prop.c (detect_type_change): Shor circuit testing of type changes on THIS pointer.
* ipa-prop.c (detect_type_change): Shor circuit testing of
	type changes on THIS pointer.

	* g++.dg/ipa/devirrt-22.C: Fix template.

From-SVN: r207495
2014-02-05 00:52:53 +00:00
John David Anglin d92f4df01a re PR target/59777 (Incorrect expansion of TLS arguments in a call)
PR target/59777
	* config/pa/pa.c (legitimize_tls_address): Return original address
	if not passed a SYMBOL_REF rtx.
	(hppa_legitimize_address): Call legitimize_tls_address for all TLS
	addresses.
	(pa_emit_move_sequence): Simplify TLS source operands.
	(pa_legitimate_constant_p): Reject all TLS constants.
	* config/pa/pa.h (PA_SYMBOL_REF_TLS_P): Correct comment.
	(CONSTANT_ADDRESS_P): Reject TLS CONST addresses.

From-SVN: r207493
2014-02-05 00:43:56 +00:00
Jan Hubicka d665f8dde6 ipa.c (function_and_variable_visibility): Decompose DECL_ONE_ONLY groups when we know they are controlled by LTO.
* ipa.c (function_and_variable_visibility): Decompose DECL_ONE_ONLY
	groups when we know they are controlled by LTO.
	* varasm.c (default_binds_local_p_1): If object is in other partition,
	it will be resolved locally.

	* lto-partition.c (get_symbol_class): Only unforced DECL_ONE_ONLY 
	needs duplicating, not generic COMDAT.

From-SVN: r207489
2014-02-04 23:26:36 +00:00
Bernd Edlinger 6a071860bf host-linux.c (linux_gt_pch_use_address): Don't use SSIZE_MAX because it is not always defined.
2014-02-04  Bernd Edlinger  <bernd.edlinger@hotmail.de>

        * gcc/config/host-linux.c (linux_gt_pch_use_address): Don't
        use SSIZE_MAX because it is not always defined.

From-SVN: r207488
2014-02-04 21:08:29 +00:00
Vladimir Makarov 8e9d68a93b re PR bootstrap/59913 ([4.9 Regresion] bootstrap failure on arm-linux-gnueabihf)
2014-02-04  Vladimir Makarov  <vmakarov@redhat.com>

	PR bootstrap/59913
	* lra-constraints.c (need_for_split_p): Use more 3 reloads as
	threshold for pseudo splitting.
	(update_ebb_live_info): Process call argument hard registers and
	hard registers from insn definition too.
	(max_small_class_regs_num): New constant.
	(inherit_in_ebb): Update live hard regs through EBBs.  Update
	reloads_num only for small register classes.  Don't split for
	outputs of jumps.

From-SVN: r207485
2014-02-04 18:56:59 +00:00
Markus Trippelsdorf 8472fa801b re PR ipa/60058 (internal compiler error: Segmentation fault)
PR ipa/60058
	* ipa-cp.c (ipa_get_indirect_edge_target_1): Check that target
	is non-null.
	* g++.dg/torture/pr60058.C: New testcase.

From-SVN: r207478
2014-02-04 17:25:38 +00:00
Jan Hubicka df98e37fb7 * gimple-fold.c (can_refer_decl_in_current_unit_p): Default visibility is safe.
From-SVN: r207477
2014-02-04 17:16:09 +00:00
Marek Polacek 71e55f045c * gdbinit.in (pel): Define.
From-SVN: r207474
2014-02-04 15:34:24 +00:00
Bernd Edlinger 229e56f91e invoke.texi (fstrict-volatile-bitfields): Clarify current behavior.
2014-02-04  Bernd Edlinger  <bernd.edlinger@hotmail.de>

        * doc/invoke.texi (fstrict-volatile-bitfields): Clarify current
        behavior.

From-SVN: r207473
2014-02-04 15:18:34 +00:00
Richard Biener c39276b8d6 re PR lto/59723 (ICE: in lto_output_tree, at lto-streamer-out.c:1390 when compiling some Fortran tests with -flto)
2014-02-04  Richard Biener  <rguenther@suse.de>

	PR lto/59723
	* lto-streamer-out.c (tree_is_indexable): Force NAMELIST_DECLs
	in function context local.
	(lto_output_tree_ref): Do not write trees from lto_output_tree_ref.
	* lto-streamer-in.c (lto_input_tree_ref): Handle LTO_namelist_decl_ref
	similar to LTO_imported_decl_ref.

	lto/
	* lto.c (mentions_vars_p): Handle NAMELIST_DECL.
	(lto_fixup_prevailing_decls): Handle fixing up CONSTRUCTOR values.

From-SVN: r207471
2014-02-04 14:53:24 +00:00
Jakub Jelinek 029ce7a26d re PR tree-optimization/60002 (ICE: SIGSEGV in skip_artificial_parms_for() with -O2 -fcompare-debug -fdeclone-ctor-dtor -fipa-cp-clone)
PR tree-optimization/60002
	* cgraphclones.c (build_function_decl_skip_args): Clear
	DECL_LANG_SPECIFIC.

	* g++.dg/opt/pr60002.C: New test.

From-SVN: r207465
2014-02-04 14:38:13 +01:00
Jakub Jelinek 8e91d222ca re PR tree-optimization/60023 (ICE: verify_gimple failed: dead STMT in EH table with -O3 -fnon-call-exceptions -mavx2)
PR tree-optimization/60023
	* tree-if-conv.c (predicate_mem_writes): Pass true instead of
	false to gsi_replace.
	* tree-vect-stmts.c (vect_finish_stmt_generation): If stmt
	has been in some EH region and vec_stmt could throw, add
	vec_stmt into the same EH region.
	* tree-data-ref.c (get_references_in_stmt): If IFN_MASK_LOAD
	has no lhs, ignore it.
	* internal-fn.c (expand_MASK_LOAD): Likewise.

	* g++.dg/vect/pr60023.cc: New test.

From-SVN: r207464
2014-02-04 14:08:00 +01:00
Jakub Jelinek eb259c4a32 re PR ipa/60026 (ICE at -O3 on valid code (with the optimize pragma) on x86_64-linux-gnu)
PR ipa/60026
	* tree-inline.c (copy_forbidden): Fail for
	__attribute__((optimize (0))) functions.

	* c-c++-common/torture/pr60026.c: New test.

From-SVN: r207463
2014-02-04 14:04:37 +01:00
Jakub Jelinek 30540e7958 re PR other/58712 (issues found by --enable-checking=valgrind)
PR other/58712
	* omp-low.c (simd_clone_struct_copy): If from->inbranch
	is set, copy one less argument.
	(expand_simd_clones): Don't subtract clone_info->inbranch
	from simd_clone_struct_alloc argument.

From-SVN: r207462
2014-02-04 13:31:30 +01:00
Jakub Jelinek 92d05580aa re PR other/58712 (issues found by --enable-checking=valgrind)
PR other/58712
	* omp-low.c (simd_clone_struct_copy): If from->inbranch
	is set, copy one less argument.

From-SVN: r207461
2014-02-04 13:19:32 +01:00
Jakub Jelinek be3afd6746 re PR rtl-optimization/57915 (ICE in set_address_disp, at rtlanal.c:5537)
PR rtl-optimization/57915
	* recog.c (simplify_while_replacing): If all unary/binary/relational
	operation arguments are constant, attempt to simplify those.

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

From-SVN: r207460
2014-02-04 13:14:52 +01:00
Jakub Jelinek 66b3ed5f3d re PR middle-end/59261 (FAIL: gcc.dg/vect/bb-slp-26.c -flto -ffat-lto-objects (internal compiler error))
PR middle-end/59261
	* expmed.c (expand_mult): For MODE_VECTOR_INT multiplication
	if there is no vashl<mode>3 or ashl<mode>3 insn, skip_synth.

	* gcc.dg/pr59261.c: New test.

From-SVN: r207456
2014-02-04 10:36:18 +01:00
Richard Biener 5961d779d0 re PR tree-optimization/60012 (Vectorizer generates unnecessary loop versioning for alias)
2014-02-04  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/60012
	* tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Apply
	TBAA disambiguation to all DDRs.

	* gcc.dg/vect/pr60012.c: New testcase.

From-SVN: r207455
2014-02-04 09:34:58 +00:00
Rainer Orth 91da048112 Ensure libgcc_s unwinder is always used on 64-bit Solaris 10+/x86 (PR target/59788)
gcc:
	PR target/59788
	* config/sol2.h (LINK_LIBGCC_MAPFILE_SPEC): Define.
	(LINK_SPEC): Use it for -shared, -shared-libgcc.

	libgcc:
	PR target/59788
	* config/t-slibgcc-sld (libgcc-unwind.map): New target.
	(install-libgcc-unwind-map-forbuild): New target.
	(all): Depend on install-libgcc-unwind-map-forbuild.
	(install-libgcc-unwind-map): New target.
	(install): Depend on install-libgcc-unwind-map.

	gcc/testsuite:
	PR target/59788
	* g++.dg/eh/unwind-direct.C: New test.

	toplevel:
	PR target/59788
	* ltmain.sh (opt_duplicate_compiler_generated_deps): Enable on
	*solaris2*.

From-SVN: r207454
2014-02-04 09:31:38 +00:00
Jan Hubicka 39960d1cfa re PR ipa/59882 (internal compiler error: Segmentation fault)
PR ipa/59882
	* tree.c (get_binfo_at_offset): Do not get confused by empty classes;
	* g++.dg/torture/pr59882.C: New testcase

From-SVN: r207451
2014-02-04 06:28:22 +00:00
Jan Hubicka 6f746413d4 gimple-fold.c (gimple_extract_devirt_binfo_from_cst): Remove.
* gimple-fold.c (gimple_extract_devirt_binfo_from_cst): Remove.
	* gimple-fold.h (gimple_extract_devirt_binfo_from_cst): Remove.

From-SVN: r207450
2014-02-04 06:04:32 +00:00
Jan Hubicka 5bccb77a77 ipa-cp.c (ipa_get_indirect_edge_target_1): Do direct lookup via vtable pointer...
* ipa-cp.c (ipa_get_indirect_edge_target_1): Do direct
	lookup via vtable pointer; check for type consistency
	and turn inconsitent facts into UNREACHABLE.
	* ipa-prop.c (try_make_edge_direct_virtual_call): Likewise.
	* gimple-fold.c (gimple_get_virt_method_for_vtable): 
	Do not ICE on type inconsistent querries; return UNREACHABLE
	instead.

	* testsuite/g++.dg/ipa/devirt-25.C: New testcase.

From-SVN: r207448
2014-02-04 05:40:21 +00:00
Jan Hubicka 9de2f554ec ipa-cp.c (ipa_get_indirect_edge_target_1): Do direct lookup via vtable pointer...
* ipa-cp.c (ipa_get_indirect_edge_target_1): Do direct
	lookup via vtable pointer; check for type consistency
	and turn inconsitent facts into UNREACHABLE.
	* ipa-prop.c (try_make_edge_direct_virtual_call): Likewise.
	* gimple-fold.c (gimple_get_virt_method_for_vtable): 
	Do not ICE on type inconsistent querries; return UNREACHABLE
	instead.

	* g++.dg/ipa/devirt-25.C: New testcase.

From-SVN: r207447
2014-02-04 03:42:37 +00:00
Richard Henderson ade3ff242e re PR tree-optimization/59924 (uninit memory hog)
PR tree-opt/59924

        * tree-ssa-uninit.c (push_to_worklist): Don't re-push if we've
        already processed this node.
        (normalize_one_pred_1): Pass along mark_set.
        (normalize_one_pred): Create and destroy a pointer_set_t.
        (normalize_one_pred_chain): Likewise.

From-SVN: r207442
2014-02-03 15:13:08 -08:00
Laurent Alfonsi 55428cc329 re PR gcov-profile/58602 (.gcno files not truncated at gcov_close)
PR gcov-profile/58602
        * gcc/gcov-io.c (gcov_open): Open with truncation when mode<0

From-SVN: r207441
2014-02-03 14:55:36 -07:00
Jan Hubicka 85942f45e9 re PR ipa/59831 (ice in cgraph_speculative_call_info with -O3)
PR ipa/59831
	* g++.dg/ipa/devirt-24.C: New testcase.

	* ipa-cp.c (ipa_get_indirect_edge_target_1): Give up on -fno-devirtualize;
	Try to devirtualize by the knowledge of virtual table pointer given by
	aggregate propagation.
	* ipa-prop.c (try_make_edge_direct_virtual_call): Likewise.
	ipa_print_node_jump_functions): Dump also offset that
	is relevant for polymorphic calls.
	(determine_known_aggregate_parts): Add arg_type parameter; use it
	instead of determining the type from pointer type.
	(ipa_compute_jump_functions_for_edge): Update call of
	determine_known_aggregate_parts.
	* gimple-fold.c (gimple_get_virt_method_for_vtable): Break out from ...
	(gimple_get_virt_method_for_binfo): ... here; simplify using
	vtable_pointer_value_to_vtable.
	* gimple-fold.h (gimple_get_virt_method_for_vtable): Declare.
	* ipa-devirt.c (subbinfo_with_vtable_at_offset): Turn OFFSET parameter
	to unsigned HOST_WIDE_INT; Use vtable_pointer_value_to_vtable.
	(vtable_pointer_value_to_vtable): Break out from ...; handle also
	POINTER_PLUS_EXPR.
	(vtable_pointer_value_to_binfo): ... here.
	* ipa-utils.h (vtable_pointer_value_to_vtable): Declare.

From-SVN: r207439
2014-02-03 20:41:30 +00:00
Teresa Johnson bddc974e71 tree-vect-slp.c (vect_supported_load_permutation_p): Avoid redef of outer loop index variable.
2014-02-03  Teresa Johnson  <tejohnson@google.com>

	* tree-vect-slp.c (vect_supported_load_permutation_p): Avoid
	redef of outer loop index variable.

From-SVN: r207437
2014-02-03 19:12:58 +00:00
Marc Glisse 5d77fb196b re PR c++/53017 (Integer constant expression not constant enough for vector_size)
2014-02-03  Marc Glisse  <marc.glisse@inria.fr>

	PR c++/53017
	PR c++/59211
gcc/c-family/
	* c-common.c (handle_aligned_attribute, handle_alloc_size_attribute,
	handle_vector_size_attribute, handle_nonnull_attribute): Call
	default_conversion on the attribute argument.
	(handle_nonnull_attribute): Increment the argument number.
gcc/cp/
	* tree.c (handle_init_priority_attribute): Call default_conversion on
	the attribute argument.
gcc/
	* doc/extend.texi (Function Attributes): Typo.
gcc/testsuite/
	* c-c++-common/attributes-1.c: New testcase.
	* g++.dg/cpp0x/constexpr-attribute2.C: Likewise.

From-SVN: r207436
2014-02-03 19:07:55 +00:00
Cong Hou cf5b2be2a4 re PR tree-optimization/60000 (GCC trunk build failure caused by the vectorizer)
2014-02-03  Cong Hou  <congh@google.com>

	PR tree-optimization/60000
	* tree-vect-loop.c (vect_transform_loop): Set pattern_def_seq to NULL
	if the vectorized statement is a store.  A store statement can only
	appear at the end of pattern statements.

2014-02-03  Cong Hou  <congh@google.com>

	PR tree-optimization/60000
	* g++.dg/vect/pr60000.cc: New test.

From-SVN: r207433
2014-02-03 13:15:56 -05:00
H.J. Lu a2a1ddb57a Add -mlong-double-128 and make it default for 64-bit Bionic
gcc/

	* config/i386/i386.c (flag_opts): Add -mlong-double-128.
	(ix86_option_override_internal): Default long double to 64-bit for
	32-bit Bionic and to 128-bit for 64-bit Bionic.

	* config/i386/i386.h (LONG_DOUBLE_TYPE_SIZE): Use 128 if
	TARGET_LONG_DOUBLE_128 is true.
	(LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Likewise.

	* config/i386/i386.opt (mlong-double-80): Negate -mlong-double-64.
	(mlong-double-64): Negate -mlong-double-128.
	(mlong-double-128): New option.

	* config/i386/i386-c.c (ix86_target_macros): Define
	__LONG_DOUBLE_128__ for TARGET_LONG_DOUBLE_128.

	* doc/invoke.texi: Document -mlong-double-128.

gcc/testsuite/

	* gcc.target/i386/long-double-64-1.c: Verify __multf3 isn't used.
	* gcc.target/i386/long-double-64-4.c: Likewise.
	* gcc.target/i386/long-double-80-1.c: Likewise.
	* gcc.target/i386/long-double-80-2.c: Likewise.
	* gcc.target/i386/long-double-80-3.c: Likewise.
	* gcc.target/i386/long-double-80-4.c: Likewise.
	* gcc.target/i386/long-double-80-5.c: Likewise.
	* gcc.target/i386/long-double-64-2.c: Limit to ia32.  Verify
	__multf3 isn't used.
	* gcc.target/i386/long-double-64-3.c: Likewise.
	* gcc.target/i386/long-double-128-1.c: New test.
	* gcc.target/i386/long-double-128-2.c: Likewise.
	* gcc.target/i386/long-double-128-3.c: Likewise.
	* gcc.target/i386/long-double-128-4.c: Likewise.
	* gcc.target/i386/long-double-128-5.c: Likewise.
	* gcc.target/i386/long-double-128-6.c: Likewise.
	* gcc.target/i386/long-double-128-7.c: Likewise.
	* gcc.target/i386/long-double-128-8.c: Likewise.
	* gcc.target/i386/long-double-128-9.c: Likewise.
	* gcc.target/i386/long-double-64-5.c: Likewise.
	* gcc.target/i386/long-double-64-6.c: Likewise.
	* gcc.target/i386/long-double-64-7.c: Likewise.
	* gcc.target/i386/long-double-64-8.c: Likewise.
	* gcc.target/i386/long-double-64-9.c: Likewise.
	* gcc.target/i386/long-double-80-10.c: Likewise.
	* gcc.target/i386/long-double-80-8.c: Likewise.
	* gcc.target/i386/long-double-80-9.c: Likewise.

From-SVN: r207428
2014-02-03 07:18:44 -08:00
H.J. Lu f742cf901d Check if mode is OK first
PR rtl-optimization/60024
	* sel-sched.c (init_regs_for_mode): Check if mode is OK first.

From-SVN: r207427
2014-02-03 07:06:31 -08:00
Markus Trippelsdorf 8f36fd3017 invoke.texi: (fprofile-reorder-functions): Fix typo.
2014-02-03  Markus Trippelsdorf  <markus@trippelsdorf.de>

	* doc/invoke.texi: (fprofile-reorder-functions): Fix typo.

From-SVN: r207423
2014-02-03 13:01:56 +00:00
Andrey Belevantsev 861ec4f37e re PR rtl-optimization/57662 (ICE: SIGSEGV in code_motion_process_successors with -fschedule-insns2 -fselective-scheduling2)
gcc/
	PR rtl-optimization/57662
	* sel-sched.c (code_motion_path_driver): Do not mark already not
	existing blocks in the visiting bitmap.

testsuite/
	PR rtl-optimization/57662
	* g++.dg/pr57662.C: New test.

From-SVN: r207421
2014-02-03 16:00:23 +04:00
Andrey Belevantsev fe08255d59 sel-sched-ir.c (sel_gen_insn_from_expr_after): Reset INSN_DELETED_P on the insn being emitted.
* sel-sched-ir.c (sel_gen_insn_from_expr_after): Reset INSN_DELETED_P
        on the insn being emitted.

From-SVN: r207420
2014-02-03 15:56:56 +04:00
James Greenhalgh 96d3a240d3 [Documentation] Remove documentation of gimple_asm_clear_volatile
2014-02-03  James Greenhalgh  <james.greenhalgh@arm.com>
	    Will Deacon  <will.deacon@arm.com>

	* doc/gimple.texi (gimple_asm_clear_volatile): Remove.


Co-Authored-By: Will Deacon <will.deacon@arm.com>

From-SVN: r207419
2014-02-03 11:51:40 +00:00
Kyrylo Tkachov 9dd6c9f79f * config/arm/arm-tables.opt: Regenerate.
From-SVN: r207418
2014-02-03 11:30:36 +00:00
Bill Schmidt 60331d000d rs6000.c (altivec_expand_vec_perm_le): Generalize for vector types other than V16QImode.
gcc:

2014-02-02  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	* config/rs6000/rs6000.c (altivec_expand_vec_perm_le): Generalize
	for vector types other than V16QImode.
	* config/rs6000/altivec.md (altivec_vperm_<mode>): Change to a
	define_expand, and call altivec_expand_vec_perm_le when producing
	code with little endian element order.
	(*altivec_vperm_<mode>_internal): New insn having previous
	behavior of altivec_vperm_<mode>.
	(altivec_vperm_<mode>_uns): Change to a define_expand, and call
	altivec_expand_vec_perm_le when producing code with little endian
	element order.
	(*altivec_vperm_<mode>_uns_internal): New insn having previous
	behavior of altivec_vperm_<mode>_uns.

gcc/testsuite:

2014-02-02  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	* gcc.dg/vmx/3b-15.c: Remove special handling for little endian.
	* gcc.dg/vmx/perm.c: New.
	* gcc.dg/vmx/perm-be-order.c: New.

From-SVN: r207415
2014-02-03 01:26:34 +00:00
Bill Schmidt b80afde960 altivec.md (UNSPEC_VSUMSWS_DIRECT): New unspec.
gcc:

2014-02-02  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	* config/rs6000/altivec.md (UNSPEC_VSUMSWS_DIRECT): New unspec.
	(altivec_vsumsws): Add handling for -maltivec=be with a little
	endian target.
	(altivec_vsumsws_direct): New.
	(reduc_splus_<mode>): Call gen_altivec_vsumsws_direct instead of
	gen_altivec_vsumsws.

gcc/testsuite:

2014-02-02  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	* gcc.dg/vmx/vsums.c: New.
	* gcc.dg/vmx/vsums-be-order.c: New.

From-SVN: r207414
2014-02-03 01:24:31 +00:00
Jan Hubicka 390675c87d ipa-devirt.c (subbinfo_with_vtable_at_offset, [...]): New functions.
* ipa-devirt.c (subbinfo_with_vtable_at_offset,
	vtable_pointer_value_to_binfo): New functions.
	* ipa-utils.h (vtable_pointer_value_to_binfo): Declare.
	* ipa-prop.c (extr_type_from_vtbl_ptr_store): Use it.
	* g++.dg/ipa/devirt-23.C: New testcase.
	* g++.dg/ipa/devirt-20.C: Fix template.

From-SVN: r207413
2014-02-03 00:24:52 +00:00
Sandra Loosemore 02b677311e nios2.md (load_got_register): Initialize GOT pointer from _gp_got instead of _GLOBAL_OFFSET_TABLE_.
2014-02-02  Sandra Loosemore  <sandra@codesourcery.com>

	gcc/
	* config/nios2/nios2.md (load_got_register): Initialize GOT
	pointer from _gp_got instead of _GLOBAL_OFFSET_TABLE_.
	* config/nios2/nios2.c (nios2_function_profiler): Likewise.

	libgcc/
	* config/nios2/crti.S (_init): Initialize GOT pointer from
	_gp_got instead of _GLOBAL_OFFSET_TABLE_.

From-SVN: r207409
2014-02-02 17:12:17 -05:00
Jan Hubicka 2ace77c21a ipa-prop.c (update_jump_functions_after_inlining): When type is not preserverd by passthrough, do not propagate the type.
* ipa-prop.c (update_jump_functions_after_inlining): When type is not
	preserverd by passthrough, do not propagate the type.
	* g++.dg/ipa/devirt-23.C: New testcase.

From-SVN: r207405
2014-02-02 18:56:33 +00:00
Richard Sandiford 70b2d364cc mips.c (MIPS_GET_FCSR, [...]): New macros.
gcc/
	* config/mips/mips.c (MIPS_GET_FCSR, MIPS_SET_FCSR): New macros.
	(mips_atomic_assign_expand_fenv): New function.
	(TARGET_ATOMIC_ASSIGN_EXPAND_FENV): Define.

From-SVN: r207402
2014-02-02 16:10:12 +00:00
Richard Sandiford a90c02456f extend.texi (__builtin_mips_get_fcsr): Document.
gcc/
	* doc/extend.texi (__builtin_mips_get_fcsr): Document.
	(__builtin_mips_set_fcsr): Likewise.
	* config/mips/mips-ftypes.def: Add MIPS_VOID_FTYPE_USI and
	MIPS_USI_FTYPE_VOID.
	* config/mips/mips-protos.h (mips16_expand_get_fcsr): Declare
	(mips16_expand_set_fcsr): Likewise.
	* config/mips/mips.c (mips16_get_fcsr_stub): New variable.
	(mips16_set_fcsr_stub): Likewise.
	(mips16_get_fcsr_one_only_stub): New class.
	(mips16_set_fcsr_one_only_stub): Likewise.
	(mips16_expand_get_fcsr, mips16_expand_set_fcsr): New functions.
	(mips_code_end): Output the get_fcsr and set_fcsr stubs, if needed.
	(BUILTIN_AVAIL_MIPS16, AVAIL_ALL): New macros.
	(hard_float): New availability predicate.
	(mips_builtins): Add get_fcsr and set_fcsr.
	(mips_expand_builtin): Check BUILTIN_AVAIL_MIPS16.
	* config/mips/mips.md (UNSPEC_GET_FCSR, UNSPEC_SET_FCSR): New unspecs.
	(GET_FCSR_REGNUM, SET_FCSR_REGNUM): New constants.
	(mips_get_fcsr, *mips_get_fcsr, mips_get_fcsr_mips16_<mode>)
	(mips_set_fcsr, *mips_set_fcsr, mips_set_fcsr_mips16_<mode>): New
	patterns.

gcc/testsuite/
	* gcc.target/mips/get-fcsr-1.c, gcc.target/mips/get-fcsr-2.c,
	gcc.target/mips/set-fcsr-1.c, gcc.target/mips/set-fcsr-2.c: New tests.

From-SVN: r207401
2014-02-02 16:05:09 +00:00
Richard Sandiford 6d51cc9010 mips.c (mips_one_only_stub): New class.
gcc/
	* config/mips/mips.c (mips_one_only_stub): New class.
	(mips_need_mips16_rdhwr_p): Replace with...
	(mips16_rdhwr_stub): ...this new variable.
	(mips16_stub_call_address): New function.
	(mips16_rdhwr_one_only_stub): New class.
	(mips_expand_thread_pointer): Use mips16_stub_call_address.
	(mips_output_mips16_rdhwr): Delete.
	(mips_finish_stub): New function.
	(mips_code_end): Use it to handle rdhwr stubs.

From-SVN: r207400
2014-02-02 15:58:38 +00:00
Uros Bizjak 6c90f13715 re PR target/60017 (Struct not returned correctly)
PR target/60017
	* config/i386/i386.c (classify_argument): Fix handling of bit_offset
	when calculating size of integer atomic types.

testsuite/ChangeLog:

	PR target/60017
	* gcc.c-torture/execute/pr60017.c: New test.

From-SVN: r207399
2014-02-02 16:35:53 +01:00
H.J. Lu 5e64bbbbf3 Fix a typo in comments
* ipa-inline-analysis.c (true_predicate_p): Fix a typo in comments.

From-SVN: r207398
2014-02-02 06:09:36 -08:00
Uros Bizjak 33425d6c94 ChangeLog: Fix whitespace.
* ChangeLog: Fix whitespace.
	* testsuite/ChangeLog: Ditto.

From-SVN: r207397
2014-02-02 14:59:39 +01:00
Jakub Jelinek 021293cb5a re PR tree-optimization/60003 (wrong code with __builtin_setjmp/__builtin_longjmp and inlining)
PR tree-optimization/60003
	* gimple-low.c (lower_builtin_setjmp): Set cfun->has_nonlocal_label.
	* profile.c (branch_prob): Use gimple_call_builtin_p
	to check for BUILT_IN_SETJMP_RECEIVER.
	* tree-inline.c (copy_bb): Call notice_special_calls.

	* gcc.c-torture/execute/pr60003.c: New test.

From-SVN: r207382
2014-02-01 09:40:31 +01:00
Vladimir Makarov 6334f3e99b re PR bootstrap/59985 (stage2/3 compare error on lto-streamer-in.o)
2014-01-31  Vladimir Makarov  <vmakarov@redhat.com>

	PR bootstrap/59985
	* lra-constraints.c (process_alt_operands): Update reload_sum only
	on the first pass.

2014-01-31  Vladimir Makarov  <vmakarov@redhat.com>

	PR bootstrap/59985
	* gcc.target/arm/pr59985.C: New.

From-SVN: r207375
2014-01-31 23:56:46 +00:00
Richard Henderson efa7882fa6 re PR middle-end/60004 (Conditional return within transaction causes ICE)
PR middle-end/60004

        * tree-eh.c (lower_try_finally_switch): Delay lowering finally block
        until after else_eh is processed.

	* g++.dg/tm/pr60004.C: New.

From-SVN: r207367
2014-01-31 11:35:31 -08:00
Ilya Tocar de72ea020c gcc/
* config/i386/avx512fintrin.h (_MM_FROUND_TO_NEAREST_INT),
	(_MM_FROUND_TO_NEG_INF), (_MM_FROUND_TO_POS_INF),
	(_MM_FROUND_TO_ZERO), (_MM_FROUND_CUR_DIRECTION): Are already defined
	in smmintrin.h, remove them.
	(_MM_FROUND_NO_EXC): Same as above, bit also wrong value.
	* config/i386/i386.c (ix86_print_operand): Split sae and rounding.
	* config/i386/i386.md (ROUND_SAE): Fix value.
	* config/i386/predicates.md (const_4_or_8_to_11_operand): New.
	(const48_operand): New.
	* config/i386/subst.md (round), (round_expand): Use
	const_4_or_8_to_11_operand.
	(round_saeonly), (round_saeonly_expand): Use const48_operand.

gcc/testsuite/
	* gcc.target/i386/avx-1.c: Use correct rounding values.
        * gcc.target/i386/avx512f-vaddpd-1.c: Ditto.
        * gcc.target/i386/avx512f-vaddps-1.c: Ditto.
        * gcc.target/i386/avx512f-vaddsd-1.c: Ditto.
        * gcc.target/i386/avx512f-vaddss-1.c: Ditto.
        * gcc.target/i386/avx512f-vcvtdq2ps-1.c: Ditto.
        * gcc.target/i386/avx512f-vcvtpd2dq-1.c: Ditto.
        * gcc.target/i386/avx512f-vcvtpd2ps-1.c: Ditto.
        * gcc.target/i386/avx512f-vcvtpd2udq-1.c: Ditto.
        * gcc.target/i386/avx512f-vcvtps2dq-1.c: Ditto.
        * gcc.target/i386/avx512f-vcvtps2udq-1.c: Ditto.
        * gcc.target/i386/avx512f-vcvtsd2si-1.c: Ditto.
        * gcc.target/i386/avx512f-vcvtsd2si64-1.c: Ditto.
        * gcc.target/i386/avx512f-vcvtsd2ss-1.c: Ditto.
        * gcc.target/i386/avx512f-vcvtsd2usi-1.c: Ditto.
        * gcc.target/i386/avx512f-vcvtsd2usi64-1.c: Ditto.
        * gcc.target/i386/avx512f-vcvtsi2sd64-1.c: Ditto.
        * gcc.target/i386/avx512f-vcvtsi2ss-1.c: Ditto.
        * gcc.target/i386/avx512f-vcvtsi2ss64-1.c: Ditto.
        * gcc.target/i386/avx512f-vcvtss2si-1.c: Ditto.
        * gcc.target/i386/avx512f-vcvtss2si64-1.c: Ditto.
        * gcc.target/i386/avx512f-vcvtss2usi-1.c: Ditto.
        * gcc.target/i386/avx512f-vcvtss2usi64-1.c: Ditto.
        * gcc.target/i386/avx512f-vcvtudq2ps-1.c: Ditto.
        * gcc.target/i386/avx512f-vcvtusi2sd64-1.c: Ditto.
        * gcc.target/i386/avx512f-vcvtusi2ss-1.c: Ditto.
        * gcc.target/i386/avx512f-vcvtusi2ss64-1.c: Ditto.
        * gcc.target/i386/avx512f-vdivpd-1.c: Ditto.
        * gcc.target/i386/avx512f-vdivps-1.c: Ditto.
        * gcc.target/i386/avx512f-vdivsd-1.c: Ditto.
        * gcc.target/i386/avx512f-vdivss-1.c: Ditto.
        * gcc.target/i386/avx512f-vfmaddXXXpd-1.c: Ditto.
        * gcc.target/i386/avx512f-vfmaddXXXps-1.c: Ditto.
        * gcc.target/i386/avx512f-vfmaddXXXsd-1.c: Ditto.
        * gcc.target/i386/avx512f-vfmaddXXXss-1.c: Ditto.
        * gcc.target/i386/avx512f-vfmaddsubXXXpd-1.c: Ditto.
        * gcc.target/i386/avx512f-vfmaddsubXXXps-1.c: Ditto.
        * gcc.target/i386/avx512f-vfmsubXXXpd-1.c: Ditto.
        * gcc.target/i386/avx512f-vfmsubXXXps-1.c: Ditto.
        * gcc.target/i386/avx512f-vfmsubXXXsd-1.c: Ditto.
        * gcc.target/i386/avx512f-vfmsubXXXss-1.c: Ditto.
        * gcc.target/i386/avx512f-vfmsubaddXXXpd-1.c: Ditto.
        * gcc.target/i386/avx512f-vfmsubaddXXXps-1.c: Ditto.
        * gcc.target/i386/avx512f-vfnmaddXXXpd-1.c: Ditto.
        * gcc.target/i386/avx512f-vfnmaddXXXps-1.c: Ditto.
        * gcc.target/i386/avx512f-vfnmaddXXXsd-1.c: Ditto.
        * gcc.target/i386/avx512f-vfnmaddXXXss-1.c: Ditto.
        * gcc.target/i386/avx512f-vfnmsubXXXpd-1.c: Ditto.
        * gcc.target/i386/avx512f-vfnmsubXXXps-1.c: Ditto.
        * gcc.target/i386/avx512f-vfnmsubXXXsd-1.c: Ditto.
        * gcc.target/i386/avx512f-vfnmsubXXXss-1.c: Ditto.
        * gcc.target/i386/avx512f-vmulpd-1.c: Ditto.
        * gcc.target/i386/avx512f-vmulps-1.c: Ditto.
        * gcc.target/i386/avx512f-vmulsd-1.c: Ditto.
        * gcc.target/i386/avx512f-vmulss-1.c: Ditto.
        * gcc.target/i386/avx512f-vscalefpd-1.c: Ditto.
        * gcc.target/i386/avx512f-vscalefps-1.c: Ditto.
        * gcc.target/i386/avx512f-vscalefsd-1.c: Ditto.
        * gcc.target/i386/avx512f-vscalefss-1.c: Ditto.
        * gcc.target/i386/avx512f-vsqrtpd-1.c: Ditto.
        * gcc.target/i386/avx512f-vsqrtps-1.c: Ditto.
        * gcc.target/i386/avx512f-vsqrtsd-1.c: Ditto.
        * gcc.target/i386/avx512f-vsqrtss-1.c: Ditto.
        * gcc.target/i386/avx512f-vsubpd-1.c: Ditto.
        * gcc.target/i386/avx512f-vsubps-1.c: Ditto.
        * gcc.target/i386/avx512f-vsubsd-1.c: Ditto.
        * gcc.target/i386/avx512f-vsubss-1.c: Ditto.
        * gcc.target/i386/sse-13.c: Ditto.
        * gcc.target/i386/sse-14.c: Ditto.
        * gcc.target/i386/sse-22.c: Ditto.
        * gcc.target/i386/sse-23.c: Ditto.

From-SVN: r207342
2014-01-31 13:22:57 +00:00
Ilya Tocar be792bce4f constraints.md (Yk): Swap meaning with k.
gcc/
	* config/i386/constraints.md (Yk): Swap meaning with k.
	* config/i386/i386.md (movhi_internal): Change Yk to k.
	(movqi_internal): Ditto.
	(*k<logic><mode>): Ditto.
	(*andhi_1): Ditto.
	(*andqi_1): Ditto.
	(kandn<mode>): Ditto.
	(*<code>hi_1): Ditto.
	(*<code>qi_1): Ditto.
	(kxnor<mode>): Ditto.
	(kortestzhi): Ditto.
	(kortestchi): Ditto.
	(kunpckhi): Ditto.
	(*one_cmplhi2_1): Ditto.
	(*one_cmplqi2_1): Ditto.
	* config/i386/sse.md (): Change k to Yk.
	(avx512f_load<mode>_mask): Ditto.
	(avx512f_blendm<mode>): Ditto.
	(avx512f_store<mode>_mask): Ditto.
	(avx512f_storeu<ssemodesuffix>512_mask): Ditto.
	(avx512f_storedqu<mode>_mask): Ditto.
	(avx512f_cmp<mode>3<mask_scalar_merge_name><round_saeonly_name>): Ditto.
	(avx512f_ucmp<mode>3<mask_scalar_merge_name>): Ditto.
	(avx512f_vmcmp<mode>3<round_saeonly_name>): Ditto.
	(avx512f_vmcmp<mode>3_mask<round_saeonly_name>): Ditto.
	(avx512f_maskcmp<mode>3): Ditto.
	(avx512f_fmadd_<mode>_mask<round_name>): Ditto.
	(avx512f_fmadd_<mode>_mask3<round_name>): Ditto.
	(avx512f_fmsub_<mode>_mask<round_name>): Ditto.
	(avx512f_fmsub_<mode>_mask3<round_name>): Ditto.
	(avx512f_fnmadd_<mode>_mask<round_name>): Ditto.
	(avx512f_fnmadd_<mode>_mask3<round_name>): Ditto.
	(avx512f_fnmsub_<mode>_mask<round_name>): Ditto.
	(avx512f_fnmsub_<mode>_mask3<round_name>): Ditto.
	(avx512f_fmaddsub_<mode>_mask<round_name>): Ditto.
	(avx512f_fmaddsub_<mode>_mask3<round_name>): Ditto.
	(avx512f_fmsubadd_<mode>_mask<round_name>): Ditto.
	(avx512f_fmsubadd_<mode>_mask3<round_name>): Ditto.
	(avx512f_vextract<shuffletype>32x4_1_maskm): Ditto.
	(vec_extract_lo_<mode>_maskm): Ditto.
	(vec_extract_hi_<mode>_maskm): Ditto.
	(avx512f_vternlog<mode>_mask): Ditto.
	(avx512f_fixupimm<mode>_mask<round_saeonly_name>): Ditto.
	(avx512f_sfixupimm<mode>_mask<round_saeonly_name>): Ditto.
	(avx512f_<code><pmov_src_lower><mode>2_mask): Ditto.
	(avx512f_<code>v8div16qi2_mask): Ditto.
	(avx512f_<code>v8div16qi2_mask_store): Ditto.
	(avx512f_eq<mode>3<mask_scalar_merge_name>_1): Ditto.
	(avx512f_gt<mode>3<mask_scalar_merge_name>): Ditto.
	(avx512f_testm<mode>3<mask_scalar_merge_name>): Ditto.
	(avx512f_testnm<mode>3<mask_scalar_merge_name>): Ditto.
	(*avx512pf_gatherpf<mode>sf_mask): Ditto.
	(*avx512pf_gatherpf<mode>df_mask): Ditto.
	(*avx512pf_scatterpf<mode>sf_mask): Ditto.
	(*avx512pf_scatterpf<mode>df_mask): Ditto.
	(avx512cd_maskb_vec_dupv8di): Ditto.
	(avx512cd_maskw_vec_dupv16si): Ditto.
	(avx512f_vpermi2var<mode>3_maskz): Ditto.
	(avx512f_vpermi2var<mode>3_mask): Ditto.
	(avx512f_vpermi2var<mode>3_mask): Ditto.
	(avx512f_vpermt2var<mode>3_maskz): Ditto.
	(*avx512f_gathersi<mode>): Ditto.
	(*avx512f_gathersi<mode>_2): Ditto.
	(*avx512f_gatherdi<mode>): Ditto.
	(*avx512f_gatherdi<mode>_2): Ditto.
	(*avx512f_scattersi<mode>): Ditto.
	(*avx512f_scatterdi<mode>): Ditto.
	(avx512f_compress<mode>_mask): Ditto.
	(avx512f_compressstore<mode>_mask): Ditto.
	(avx512f_expand<mode>_mask): Ditto.
	* config/i386/subst.md (mask): Change k to Yk.
	(mask_scalar_merge): Ditto.
	(sd): Ditto.

gcc/testsuite/
	* gcc.target/i386/avx512f-inline-asm.c: Swap Yk and k.
	* gcc.target/i386/avx512f-kmovw-1.c: Also allow k0.

From-SVN: r207341
2014-01-31 13:19:10 +00:00
Marc Glisse 0878d68a0b extend.texi (Vector Extensions): Document ?: in C++.
2014-01-31  Marc Glisse  <marc.glisse@inria.fr>

gcc/
	* doc/extend.texi (Vector Extensions): Document ?: in C++.

From-SVN: r207340
2014-01-31 12:59:44 +00:00
Richard Biener fdfd537bcb re PR middle-end/59990 (incorrect memcpy optimization)
2014-01-31  Richard Biener  <rguenther@suse.de>

	PR middle-end/59990
	* builtins.c (fold_builtin_memory_op): Make sure to not
	use a floating-point mode or a boolean or enumeral type for
	the copy operation.

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

From-SVN: r207338
2014-01-31 11:54:26 +00:00
DJ Delorie 4f50b9ff56 msp430.h (LIB_SPEC): Add -lcrt
* config/msp430/msp430.h (LIB_SPEC): Add -lcrt
* config/msp430/msp430.md (msp430_refsym_need_exit): New.
* config/msp430/msp430.c (msp430_expand_epilogue): Call it
whenever main() has an epilogue.

From-SVN: r207334
2014-01-30 23:17:38 -05:00
Bill Schmidt c3e9607310 rs6000.c (rs6000_expand_vector_init): Remove unused variable "field".
2014-01-30  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	* config/rs6000/rs6000.c (rs6000_expand_vector_init): Remove
	unused variable "field".
	* config/rs6000/vsx.md (vsx_mergel_<mode>): Add missing DONE.
	(vsx_mergeh_<mode>): Likewise.
	* config/rs6000/altivec.md (altivec_vmrghb): Likewise.
	(altivec_vmrghh): Likewise.
	(altivec_vmrghw): Likewise.
	(altivec_vmrglb): Likewise.
	(altivec_vmrglh): Likewise.
	(altivec_vmrglw): Likewise.
	(altivec_vspltb): Add missing uses.
	(altivec_vsplth): Likewise.
	(altivec_vspltw): Likewise.
	(altivec_vspltsf): Likewise.

From-SVN: r207326
2014-01-30 22:36:13 +00:00
Jakub Jelinek 4bb9c32da1 re PR regression/59923 (ICE in maybe_record_trace_start, at dwarf2cfi.c:2239 with -mcpu=cortex-a15 -mthumb -O2 -fvisibility=hidden -g)
PR target/59923
	* ifcvt.c (cond_exec_process_insns): Don't conditionalize
	frame related instructions.

	* gcc.target/arm/pr59923.c: New test.

From-SVN: r207324
2014-01-30 22:48:08 +01:00
Vladimir Makarov 7613fa5075 re PR rtl-optimization/59959 (LRA ICEs on a fortran case(Suspected to be similar to pr59915))
2014-01-30  Vladimir Makarov  <vmakarov@redhat.com>

	PR rtl-optimization/59959
	* lra-constrains.c (simplify_operand_subreg): Assign NO_REGS to
	any reload of register whose subreg is invalid.

From-SVN: r207323
2014-01-30 21:15:51 +00:00
Jakub Jelinek 6fb82517e8 f16cintrin.h (_cvtsh_ss): Avoid -Wnarrowing warning.
* config/i386/f16cintrin.h (_cvtsh_ss): Avoid -Wnarrowing
	warning.
	* config/i386/avx512fintrin.h (_mm512_mask_cvtusepi64_storeu_epi32):
	Add missing return type - void.

From-SVN: r207321
2014-01-30 21:05:32 +01:00
Bill Schmidt bf53d4b89e rs6000.c (rs6000_expand_vector_init): Use gen_vsx_xxspltw_v4sf_direct instead of gen_vsx_xxspltw_v4sf...
gcc:

2014-01-30  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	* gcc/config/rs6000/rs6000.c (rs6000_expand_vector_init): Use
	gen_vsx_xxspltw_v4sf_direct instead of gen_vsx_xxspltw_v4sf;
	remove element index adjustment for endian (now handled in vsx.md
	and altivec.md).
	(altivec_expand_vec_perm_const): Use
	gen_altivec_vsplt[bhw]_direct instead of gen_altivec_vsplt[bhw].
	* gcc/config/rs6000/vsx.md (UNSPEC_VSX_XXSPLTW): New unspec.
	(vsx_xxspltw_<mode>): Adjust element index for little endian.
	* gcc/config/rs6000/altivec.md (altivec_vspltb): Divide into a
	define_expand and a new define_insn *altivec_vspltb_internal;
	adjust for -maltivec=be on a little endian target.
	(altivec_vspltb_direct): New.
	(altivec_vsplth): Divide into a define_expand and a new
	define_insn *altivec_vsplth_internal; adjust for -maltivec=be on a
	little endian target.
	(altivec_vsplth_direct): New.
	(altivec_vspltw): Divide into a define_expand and a new
	define_insn *altivec_vspltw_internal; adjust for -maltivec=be on a
	little endian target.
	(altivec_vspltw_direct): New.
	(altivec_vspltsf): Divide into a define_expand and a new
	define_insn *altivec_vspltsf_internal; adjust for -maltivec=be on
	a little endian target.

gcc/testsuite:

2014-01-30  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	* gcc.dg/vmx/splat.c: New.
	* gcc.dg/vmx/splat-vsx.c: New.
	* gcc.dg/vmx/splat-be-order.c: New.
	* gcc.dg/vmx/splat-vsx-be-order.c: New.
	* gcc.dg/vmx/eg-5.c: Remove special casing for little endian.
	* gcc.dg/vmx/sn7153.c: Add special casing for little endian.

From-SVN: r207318
2014-01-30 18:59:55 +00:00
Richard Biener c965e18748 re PR middle-end/59993 (ICE: SSA corruption)
2014-01-30  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/59993
	* tree-ssa-forwprop.c (associate_pointerplus): Check we
	can propagate form the earlier stmt and avoid the transform
	when the intermediate result is needed.

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

From-SVN: r207316
2014-01-30 18:28:19 +00:00
Alangi Derick ba1176452d README.Portability: Fix typo.
2014-01-30  Alangi Derick  <alangiderick@gmail.com>

	* README.Portability: Fix typo.

From-SVN: r207314
2014-01-30 17:29:25 +00:00
David Holsgrove 29bd572811 Add SImode to comparison operator, prevents ICE during combine
rtl pass with error message;

internal compiler error: in simplify_subreg, at simplify-rtx.c:5725

Use ordered_comparison_operator predicate to limit operators to
those fcmp can handle, and letting compiler reorder insns to
accomodate unordered as necessary

gcc/ChangeLog

2013-11-26  David Holsgrove <david.holsgrove@xilinx.com>

 * config/microblaze/microblaze.md(cstoresf4, cbranchsf4): Replace
   comparison_operator with ordered_comparison_operator.

testsuite/ChangeLog

2014-01-22  David holsgrove <david.holsgrove@xilinx.com>

 * testsuite/gcc.target/microblaze/isa/fcmp4.c: New file.

From-SVN: r207311
2014-01-30 17:18:17 +00:00
Nick Clifton c345a0b156 mn10300-protos.h (mn10300_store_multiple_operation_p): Rename to mn10300_store_multiple_regs.
* config/mn10300/mn10300-protos.h (mn10300_store_multiple_operation_p):
	Rename to mn10300_store_multiple_regs.
	* config/mn10300/mn10300.c: Likewise.
	* config/mn10300/mn10300.md (store_movm): Fix typo: call
	store_multiple_regs.
	* config/mn10300/predicates.md (mn10300_store_multiple_operation):
	Call mn10300_store_multiple_regs.

From-SVN: r207310
2014-01-30 16:22:58 +00:00
Nick Clifton 2d70f6d435 rl78.c (register_sizes): Make the "upper half" of %fp 2 to keep registers after it properly word-aligned.
* config/rl78/rl78.c (register_sizes): Make the "upper half" of
	%fp 2 to keep registers after it properly word-aligned.
	(rl78_alloc_physical_registers_umul): Handle the case where both
	input operands are the same.

Co-Authored-By: DJ Delorie <dj@redhat.com>

From-SVN: r207308
2014-01-30 16:01:43 +00:00
Richard Biener c972624e48 re PR tree-optimization/59903 (ICE on valid code at -O3 on x86_64-linux-gnu (affecting trunk and 4.8.x))
2014-01-30  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/59903
	* tree-vect-loop.c (vect_transform_loop): Guard multiple-types
	check properly.

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

From-SVN: r207307
2014-01-30 15:30:30 +00:00
Jason Merrill 404c2aeaae re PR c++/59633 (ICE with __attribute((vector_size(...))) for enum)
PR c++/59633
gcc/
	* tree.c (walk_type_fields): Handle VECTOR_TYPE.
gcc/cp/
	* decl2.c (attributes_naming_typedef_ok): New.
	* cp-tree.h: Declare it.
	* decl.c (grokdeclarator): Check it.
	* tree.c (no_linkage_check): Handle VECTOR_TYPE.

From-SVN: r207302
2014-01-30 09:21:31 -05:00
Jason Merrill fc044323f4 re PR c++/59645 (ICE with covariant return and volatile)
PR c++/59645
	* cgraphunit.c (expand_thunk): Copy volatile arg to a temporary.

From-SVN: r207301
2014-01-30 09:18:15 -05:00
Richard Biener f30a0ba57a re PR tree-optimization/59951 (bootstrap comparison failure with -O3 for a week)
2014-01-30  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/59951
	* tree-vect-slp.c (vect_bb_slp_scalar_cost): Skip uses in debug
	insns.

From-SVN: r207299
2014-01-30 11:58:16 +00:00
Savin Zlobec aad8816f5a re PR target/59784 (Nios2: Wrong code generation for fextsd custom instruction)
2014-01-30  Savin Zlobec  <savin.zlobec@gmail.com>

	PR target/59784
	* config/nios2/nios2.c (nios2_fpu_insn_asm): Fix asm output of
	SFmode to DFmode case.

From-SVN: r207297
2014-01-30 05:51:30 +00:00
DJ Delorie 3b16363e1a msp430.opt (-minrt): New.
* config/msp430/msp430.opt (-minrt): New.
* config/msp430/msp430.h (STARTFILE_SPEC): Link alternate runtime
if -minrt given.
(ENDFILE_SPEC): Likewise.

From-SVN: r207294
2014-01-29 21:57:41 -05:00
Jan Hubicka 3100142a95 ipa-inline-analysis.c (clobber_only_eh_bb_p): New function.
* ipa-inline-analysis.c (clobber_only_eh_bb_p): New function.
	(estimate_function_body_sizes): Use it.

From-SVN: r207287
2014-01-29 22:50:22 +00:00
Paolo Carlini 1200933ccc re PR c++/58561 ([c++11] ICE using declaration of function with auto in return type)
2014-01-29  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/58561
	* dwarf2out.c (is_cxx_auto): New.
	(is_base_type): Use it.
	(gen_type_die_with_usage): Likewise.

/testsuite
2014-01-29  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/58561
	* g++.dg/cpp1y/auto-fn23.C: New.

From-SVN: r207282
2014-01-29 20:54:09 +00:00
Bill Schmidt 68d3bacf0d rs6000.c (altivec_expand_vec_perm_const): Use CODE_FOR_altivec_vmrg*_direct rather than CODE_FOR_altivec_vmrg*.
gcc:

2014-01-29  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	* config/rs6000/rs6000.c (altivec_expand_vec_perm_const):  Use
	CODE_FOR_altivec_vmrg*_direct rather than CODE_FOR_altivec_vmrg*.
	* config/rs6000/vsx.md (vsx_mergel_<mode>): Adjust for
	-maltivec=be with LE targets.
	(vsx_mergeh_<mode>): Likewise.
	* config/rs6000/altivec.md (UNSPEC_VMRG[HL]_DIRECT): New
	unspecs.
	(mulv8hi3): Use gen_altivec_vmrg[hl]w_direct.
	(altivec_vmrghb): Replace with define_expand and new
	*altivec_vmrghb_internal insn; adjust for -maltivec=be with LE
	targets.
	(altivec_vmrghb_direct): New define_insn.
	(altivec_vmrghh): Replace with define_expand and new
	*altivec_vmrghh_internal insn; adjust for -maltivec=be with LE
	targets.
	(altivec_vmrghh_direct): New define_insn.
	(altivec_vmrghw): Replace with define_expand and new
	*altivec_vmrghw_internal insn; adjust for -maltivec=be with LE
	targets.
	(altivec_vmrghw_direct): New define_insn.
	(*altivec_vmrghsf): Adjust for endianness.
	(altivec_vmrglb): Replace with define_expand and new
	*altivec_vmrglb_internal insn; adjust for -maltivec=be with LE
	targets.
	(altivec_vmrglb_direct): New define_insn.
	(altivec_vmrglh): Replace with define_expand and new
	*altivec_vmrglh_internal insn; adjust for -maltivec=be with LE
	targets.
	(altivec_vmrglh_direct): New define_insn.
	(altivec_vmrglw): Replace with define_expand and new
	*altivec_vmrglw_internal insn; adjust for -maltivec=be with LE
	targets.
	(altivec_vmrglw_direct): New define_insn.
	(*altivec_vmrglsf): Adjust for endianness.
	(vec_widen_umult_hi_v16qi): Use gen_altivec_vmrghh_direct.
	(vec_widen_umult_lo_v16qi): Use gen_altivec_vmrglh_direct.
	(vec_widen_smult_hi_v16qi): Use gen_altivec_vmrghh_direct.
	(vec_widen_smult_lo_v16qi): Use gen_altivec_vmrglh_direct.
	(vec_widen_umult_hi_v8hi): Use gen_altivec_vmrghw_direct.
	(vec_widen_umult_lo_v8hi): Use gen_altivec_vmrglw_direct.
	(vec_widen_smult_hi_v8hi): Use gen_altivec_vmrghw_direct.
	(vec_widen_smult_lo_v8hi): Use gen_altivec_vmrglw_direct.

gcc/testsuite:

2014-01-29  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	* gcc.dg/vmx/merge-be-order.c: New.
	* gcc.dg/vmx/merge.c: New.
	* gcc.dg/vmx/merge-vsx-be-order.c: New.
	* gcc.dg/vmx/merge-vsx.c: New.

From-SVN: r207262
2014-01-29 16:12:28 +00:00
Marcus Shawcroft aef66c94a0 [AArch64] Fix various white space issues.
2014-01-29  Marcus Shawcroft  <marcus.shawcroft@arm.com>

	* config/aarch64/aarch64.c (aarch64_expand_mov_immediate)
	(aarch64_legitimate_address_p, aarch64_class_max_nregs): Adjust
	whitespace.

From-SVN: r207258
2014-01-29 15:42:37 +00:00
Richard Biener 77574c3534 re PR middle-end/58742 (pointer arithmetic simplification)
2014-01-29  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/58742
	* tree-ssa-forwprop.c (associate_pointerplus): Rename to
	associate_pointerplus_align.
	(associate_pointerplus_diff): New function.
	(associate_pointerplus): Likewise.  Call associate_pointerplus_align
	and associate_pointerplus_diff.

	* gcc.dg/pr58742-1.c: New testcase.
	* gcc.dg/pr58742-2.c: Likewise.
	* gcc.dg/pr58742-3.c: Likewise.

From-SVN: r207239
2014-01-29 14:45:44 +00:00
Richard Biener 15b25b242b lto-streamer.h (LTO_major_version): Bump to 3.
2014-01-29  Richard Biener  <rguenther@suse.de>

	* lto-streamer.h (LTO_major_version): Bump to 3.
	(LTO_minor_version): Reset to 0.

From-SVN: r207238
2014-01-29 14:19:23 +00:00
Renlin Li eb6006ad65 [ARM] Add -march=armv7ve
gcc/
2014-01-29  Renlin Li  <Renlin.Li@arm.com>

	* config/arm/arm-arches.def (ARM_ARCH): Add armv7ve arch.
	* config/arm/arm.c (FL_FOR_ARCH7VE): New.
	(arm_file_start): Generate correct asm header for armv7ve.
	* config/arm/bpabi.h: Add multilib support for armv7ve.
	* config/arm/driver-arm.c: Change the architectures of cortex-a7
	and cortex-a15 to armv7ve.
	* config/arm/t-aprofile: Add multilib support for armv7ve.
	* doc/invoke.texi: Document -march=armv7ve.

gcc/testsuite/
2014-01-29  Renlin Li  <Renlin.Li@arm.com>

	* gcc.target/arm/ftest-armv7ve-arm.c: New.
	* gcc.target/arm/ftest-armv7ve-thumb.c: New.
	* lib/target-supports.exp: New armfunc, armflag and armdef for armv7ve.

From-SVN: r207237
2014-01-29 13:46:39 +00:00
Richard Biener 4bfb2fa258 re PR middle-end/58742 (pointer arithmetic simplification)
2014-01-29  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/58742
	* tree-ssa-forwprop.c (associate_plusminus): Return true
	if we changed sth, defer EH cleanup to ...
	(ssa_forward_propagate_and_combine): ... here.  Call simplify_mult.
	(simplify_mult): New function.

From-SVN: r207232
2014-01-29 11:08:59 +00:00
Jakub Jelinek 09b22f48d4 re PR middle-end/59917 (ICE in calc_dfs_tree, at dominance.c:401)
PR middle-end/59917
	PR tree-optimization/59920
	* tree.c (build_common_builtin_nodes): Remove
	__builtin_setjmp_dispatcher initialization.
	* omp-low.h (make_gimple_omp_edges): Add a new int * argument.
	* profile.c (branch_prob): Use gsi_start_nondebug_after_labels_bb
	instead of gsi_after_labels + manually skipping debug stmts.
	Don't ignore bbs with BUILT_IN_SETJMP_DISPATCHER, instead
	ignore bbs with IFN_ABNORMAL_DISPATCHER.
	* tree-inline.c (copy_edges_for_bb): Remove
	can_make_abnormal_goto argument, instead add abnormal_goto_dest
	argument.  Ignore computed_goto_p stmts.  Don't call
	make_abnormal_goto_edges.  If a call might need abnormal edges
	for non-local gotos, see if it already has an edge to
	IFN_ABNORMAL_DISPATCHER or if it is IFN_ABNORMAL_DISPATCHER
	with true argument, don't do anything then, otherwise add
	EDGE_ABNORMAL from the call's bb to abnormal_goto_dest.
	(copy_cfg_body): Compute abnormal_goto_dest, adjust copy_edges_for_bb
	caller.
	* gimple-low.c (struct lower_data): Remove calls_builtin_setjmp.
	(lower_function_body): Don't emit __builtin_setjmp_dispatcher.
	(lower_stmt): Don't set data->calls_builtin_setjmp.
	(lower_builtin_setjmp): Adjust comment.
	* builtins.def (BUILT_IN_SETJMP_DISPATCHER): Remove.
	* tree-cfg.c (found_computed_goto): Remove.
	(factor_computed_gotos): Remove.
	(make_goto_expr_edges): Return bool, true for computed gotos.
	Don't call make_abnormal_goto_edges.
	(build_gimple_cfg): Don't set found_computed_goto, don't call
	factor_computed_gotos.
	(computed_goto_p): No longer static.
	(make_blocks): Don't set found_computed_goto.
	(get_abnormal_succ_dispatcher, handle_abnormal_edges): New functions.
	(make_edges): If make_goto_expr_edges returns true, push bb
	into ab_edge_goto vector, for stmt_can_make_abnormal_goto calls
	instead of calling make_abnormal_goto_edges push bb into ab_edge_call
	vector.  Record mapping between bbs and OpenMP regions if there
	are any, adjust make_gimple_omp_edges caller.  Call
	handle_abnormal_edges.
	(make_abnormal_goto_edges): Remove.
	* tree-cfg.h (make_abnormal_goto_edges): Remove.
	(computed_goto_p, get_abnormal_succ_dispatcher): New prototypes.
	* internal-fn.c (expand_ABNORMAL_DISPATCHER): New function.
	* builtins.c (expand_builtin): Don't handle
	BUILT_IN_SETJMP_DISPATCHER.
	* internal-fn.def (ABNORMAL_DISPATCHER): New.
	* omp-low.c (make_gimple_omp_edges): Add region_idx argument, when
	filling *region also set *region_idx to (*region)->entry->index.

	* gcc.dg/pr59920-1.c: New test.
	* gcc.dg/pr59920-2.c: New test.
	* gcc.dg/pr59920-3.c: New test.
	* c-c++-common/gomp/pr59917-1.c: New test.
	* c-c++-common/gomp/pr59917-2.c: New test.

From-SVN: r207231
2014-01-29 12:02:46 +01:00
Jakub Jelinek 42eb8bd179 re PR other/58712 (issues found by --enable-checking=valgrind)
PR other/58712
	* read-rtl.c (read_rtx_code): Clear all of RTX_CODE_SIZE (code).
	For REGs set ORIGINAL_REGNO.

From-SVN: r207230
2014-01-29 11:35:15 +01:00
Bingfeng Mei 4a271b7ef0 md.texi: Mention that a target shouldn't implement vec_widen_(s|u)mul_even/odd pair if...
2014-01-29  Bingfeng Mei  <bmei@broadcom.com>

	* doc/md.texi: Mention that a target shouldn't implement 
	vec_widen_(s|u)mul_even/odd pair if it is less efficient
	than hi/lo pair.

From-SVN: r207228
2014-01-29 10:10:20 +00:00
Jakub Jelinek 3d54b29d70 re PR tree-optimization/59594 (wrong code (by tree vectorizer) at -O3 on x86_64-linux-gnu)
PR tree-optimization/59594
	* tree-vect-data-refs.c (vect_analyze_data_ref_accesses): Sort
	a copy of the datarefs vector rather than the vector itself.

	* gcc.dg/vect/no-vfa-vect-depend-2.c: New test.
	* gcc.dg/vect/no-vfa-vect-depend-3.c: New test.
	* gcc.dg/vect/pr59594.c: New test.

From-SVN: r207225
2014-01-29 10:27:43 +01:00
Jason Merrill 2e5e7103a3 re PR c++/53756 ([C++1y] ICE: in gen_type_die_with_usage, at dwarf2out.c:18774 with -g and operator auto ())
PR c++/53756
gcc/
	* dwarf2out.c (auto_die): New static.
	(gen_type_die_with_usage): Handle C++1y 'auto'.
	(gen_subprogram_die): If in-class DIE had 'auto', emit type again
	on definition.
gcc/cp/
	* mangle.c (write_unqualified_name): Handle operator auto.

From-SVN: r207197
2014-01-28 12:06:40 -05:00
H.J. Lu d5d618b5da Add -m16 support for x86
The .code16gcc directive was added to binutils back in 1999:

---
   '.code16gcc' provides experimental support for generating 16-bit code
from gcc, and differs from '.code16' in that 'call', 'ret', 'enter',
'leave', 'push', 'pop', 'pusha', 'popa', 'pushf', and 'popf'
instructions default to 32-bit size.  This is so that the stack pointer
is manipulated in the same way over function calls, allowing access to
function parameters at the same stack offsets as in 32-bit mode.
'.code16gcc' also automatically adds address size prefixes where
necessary to use the 32-bit addressing modes that gcc generates.
---

It encodes 32-bit assembly instructions generated by GCC in 16-bit format
so that GCC can be used to generate 16-bit instructions.  To do that, the
.code16gcc directive must be placed at the very beginning of the assembly
code.  This patch adds -m16 to x86 backend by:

1. Add -m16 and make it mutually exclusive with -m32, -m64 and -mx32.
2. Treat -m16 like -m32 so that --32 is passed to assembler.
3. Output .code16gcc at the very beginning of the assembly code.
4. Turn off 64-bit ISA when -m16 is used.

	PR target/59672
	* config/i386/gnu-user64.h (SPEC_32): Add "m16|" to "m32".
	(SPEC_X32): Likewise.
	(SPEC_64): Likewise.
	* config/i386/i386.c (ix86_option_override_internal): Turn off
	OPTION_MASK_ISA_64BIT, OPTION_MASK_ABI_X32 and OPTION_MASK_ABI_64
	for TARGET_16BIT.
	(x86_file_start): Output .code16gcc for TARGET_16BIT.
	* config/i386/i386.h (TARGET_16BIT): New macro.
	(TARGET_16BIT_P): Likewise.
	* config/i386/i386.opt: Add m16.
	* doc/invoke.texi: Document -m16.

From-SVN: r207196
2014-01-28 08:22:45 -08:00
Dodji Seketeli 367c82866e PR preprocessor/59935 - caret diagnostics crashes on non-file locations
gcc/ChangeLog

	* input.c (location_get_source_line): Bail out on when line number
	is zero, and test the return value of
	lookup_or_add_file_to_cache_tab.

gcc/testsuite/ChangeLog

	* c-c++-common/cpp/warning-zero-location.c: New test.
	* c-c++-common/cpp/warning-zero-location-2.c: Likewise.

Signed-off-by: Dodji Seketeli <dodji@seketeli.org>

From-SVN: r207195
2014-01-28 16:03:19 +01:00
Richard Biener 07ec81f958 re PR middle-end/58742 (pointer arithmetic simplification)
2014-01-28  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/58742
	* tree-ssa-forwprop.c (associate_plusminus): Handle
	pointer subtraction of the form (T)(P + A) - (T)P.

From-SVN: r207194
2014-01-28 14:53:52 +00:00
Kyrylo Tkachov 5facb998d9 arm.c (arm_new_rtx_costs): Remove useless statement at const_int_cost.
* config/arm/arm.c (arm_new_rtx_costs): Remove useless statement
	at const_int_cost.

From-SVN: r207193
2014-01-28 14:17:09 +00:00
Richard Biener e04faf242e revert: re PR middle-end/45364 (Compiling wine's directx.c with -O1 -g takes a very long time)
2014-01-28  Richard Biener  <rguenther@suse.de>

	Revert
	2014-01-28  Richard Biener  <rguenther@suse.de>

	PR rtl-optimization/45364
	PR rtl-optimization/59890
	* var-tracking.c (local_get_addr_clear_given_value): Handle
	already cleared slot.
	(val_reset): Handle not allocated local_get_addr_cache.
	(vt_find_locations): Use post-order on the inverted CFG.

From-SVN: r207182
2014-01-28 13:13:54 +00:00
Richard Biener 6593260b3a tree-data-ref.h (ddr_is_anti_dependent, [...]): Remove.
2014-01-28  Richard Biener  <rguenther@suse.de>

	* tree-data-ref.h (ddr_is_anti_dependent, ddrs_have_anti_deps):
	Remove.

From-SVN: r207181
2014-01-28 12:49:08 +00:00
Richard Biener 9ec2d2c168 re PR middle-end/45364 (Compiling wine's directx.c with -O1 -g takes a very long time)
2014-01-28  Richard Biener  <rguenther@suse.de>

	PR rtl-optimization/45364
	PR rtl-optimization/59890
	* var-tracking.c (local_get_addr_clear_given_value): Handle
	already cleared slot.
	(val_reset): Handle not allocated local_get_addr_cache.
	(vt_find_locations): Use post-order on the inverted CFG.

From-SVN: r207172
2014-01-28 09:02:59 +00:00
Alan Modra 2ceb362d0a Makefile.in (BUILD_CPPFLAGS): Do not use ALL_CPPFLAGS.
* Makefile.in (BUILD_CPPFLAGS): Do not use ALL_CPPFLAGS.
	* configure.ac <recursive call for build != host>: Define
	GENERATOR_FILE.  Comment.  Use CXX_FOR_BUILD, CXXFLAGS_FOR_BUILD
	and LD_FOR_BUILD too.
	* configure: Regenerate.

From-SVN: r207171
2014-01-28 17:38:22 +10:30
Allan Sandfeld Jensen 0ebe2584bb i386.c (get_builtin_code_for_version): Separate Westmere from Nehalem...
* config/i386/i386.c (get_builtin_code_for_version): Separate
	Westmere from Nehalem, Ivy Bridge from Sandy Bridge and
	Broadwell from Haswell.

testsuite/ChangeLog:

	* g++.dg/ext/mv16.C: New tests.

From-SVN: r207155
2014-01-27 23:45:02 +01:00
Steve Ellcey a33fc7fe6c mips-common.c (TARGET_DEFAULT_TARGET_FLAGS): Remove TARGET_FP_EXCEPTIONS_DEFAULT and MASK_FUSED_MADD.
2014-01-27  Steve Ellcey  <sellcey@mips.com>

	* common/config/mips/mips-common.c (TARGET_DEFAULT_TARGET_FLAGS):
	Remove TARGET_FP_EXCEPTIONS_DEFAULT and MASK_FUSED_MADD.
	* config/mips/mips.c (mips_option_override): Change setting
	of TARGET_DSP.
	* config/mips/mips.h (TARGET_FP_EXCEPTIONS_DEFAULT): Remove.
	* config/mips/mips.opt (DSP, DSPR2, FP_EXCEPTIONS, FUSED_MADD,
	MIPS3D) Change from Mask to Var.

From-SVN: r207154
2014-01-27 22:38:42 +00:00
Jeff Law a99be3c928 * ipa-inline.c (inline_small_functions): Fix typo.
From-SVN: r207151
2014-01-27 14:00:04 -07:00