Commit Graph

132620 Commits

Author SHA1 Message Date
GCC Administrator
a903482346 Daily bump.
From-SVN: r214980
2014-09-06 00:16:51 +00:00
Easwaran Raman
14e4c2af43 re PR rtl-optimization/62146 (CSE replaces constant with an expression incorrectly)
2014-09-05  Easwaran Raman  <eraman@google.com>

        PR rtl-optimization/62146
        * ifcvt.c (dead_or_predicable): Make removal of REG_EQUAL note of
          hoisted instruction unconditional.

        testsuite:
        * testsuite/g++.dg/opt/pr62146.C: New.

From-SVN: r214977
2014-09-05 22:23:26 +00:00
Segher Boessenkool
8a03df77b1 re PR target/63187 (Unrecognizable insn ICE due to revision 214080)
2014-09-05  Segher Boessenkool  <segher@kernel.crashing.org>

	PR target/63187
	* config/rs6000/rs6000.md (*and<mode>3_imm_dot, *and<mode>3_imm_dot2):
	Do not allow any_mask_operand for operands[2].
	(*and<mode>3_imm_mask_dot, *and<mode>3_imm_mask_dot2): New.

From-SVN: r214976
2014-09-05 21:17:08 +02:00
Jason Merrill
ed23bf8bd6 re PR c++/62659 (Regression in template argument substitution in 4.9+)
PR c++/62659
	* semantics.c (potential_constant_expression_1): Handle un-folded
	pointer to member constants.

From-SVN: r214974
2014-09-05 13:59:40 -04:00
Ian Lance Taylor
01c2fa9d53 runtime: Use the clone system call on GNU/Linux.
Without this we weren't supporting the standard Cloneflags
field of SysProcAttr.

From-SVN: r214972
2014-09-05 15:24:36 +00:00
David Malcolm
68a1a6c080 Use rtx_insn for various jump-handling functions and predicates
gcc/ChangeLog:
2014-09-05  David Malcolm  <dmalcolm@redhat.com>

	* config/arc/arc.c (arc_print_operand): Use insn method of
	final_sequence for type-safety.
	* config/bfin/bfin.c (bfin_hardware_loop): Strengthen param
	"insn" from rtx to rtx_insn *.
	* config/frv/frv.c (frv_print_operand_jump_hint): Likewise.
	* config/mn10300/mn10300.c (mn10300_scan_for_setlb_lcc):
	Likewise for locals "branch", "label".
	* config/h8300/h8300.c (same_cmp_preceding_p): Likewise for
	locals "i1", "i2".  Use NULL rather than NULL_RTX in comparisons.
	(same_cmp_following_p): Likewise for locals "i2", "i3".
	* config/sh/sh_optimize_sett_clrt.cc
	(sh_optimize_sett_clrt::sh_cbranch_ccreg_value): Likewise for
	param "cbranch_insn".
	* function.c (convert_jumps_to_returns): Likewis for local "jump".
	* ifcvt.c (cond_exec_get_condition): Likewise for param "jump".
	* jump.c (simplejump_p): Strengthen param "insn" from const_rtx to
	const rtx_insn *.
	(condjump_p): Likewise.
	(condjump_in_parallel_p): Likewise.
	(pc_set): Likewise.
	(any_uncondjump_p): Likewise.
	(any_condjump_p): Likewise.
	(condjump_label): Likewise.
	(returnjump_p): Strengthen param "insn" from rtx to
	const rtx_insn *.
	(onlyjump_p): Strengthen param "insn" from const_rtx to
	const rtx_insn *.
	(jump_to_label_p): Likewise.
	(invert_jump_1): Strengthen param "jump" from rtx to rtx_insn *.
	(invert_jump): Likewise.
	* reorg.c (simplejump_or_return_p): Add checked cast when calling
	simplejump_p.
	(get_jump_flags): Strengthen param "insn" from rtx to
	const rtx_insn *.
	(get_branch_condition): Likewise.
	(condition_dominates_p): Likewise.
	(make_return_insns): Move declaration of local "pat" earlier, to
	after we've handled NONJUMP_INSN_P and non-sequences, using its
	methods to simplify the code and for type-safety.
	* rtl.h (find_constant_src): Strengthen param from const_rtx to
	const rtx_insn *.
	(jump_to_label_p): Strengthen param from rtx to const rtx_insn *.
	(condjump_p): Strengthen param from const_rtx to
	const rtx_insn *.
	(any_condjump_p): Likewise.
	(any_uncondjump_p): Likewise.
	(pc_set): Likewise.
	(condjump_label): Likewise.
	(simplejump_p): Likewise.
	(returnjump_p): Likewise.
	(onlyjump_p): Likewise.
	(invert_jump_1): Strengthen param 1 from rtx to rtx_insn *.
	(invert_jump): Likewise.
	(condjump_in_parallel_p): Strengthen param from const_rtx to
	const rtx_insn *.
	* rtlanal.c (find_constant_src): Strengthen param from const_rtx
	to const rtx_insn *.
	* sel-sched-ir.c (fallthru_bb_of_jump): Strengthen param from rtx
	to const rtx_insn *.
	* sel-sched-ir.h (fallthru_bb_of_jump): Likewise.

From-SVN: r214970
2014-09-05 15:15:43 +00:00
David Malcolm
45700b6a42 Simplification within reorg.c
gcc/ChangeLog:
2014-09-05  David Malcolm  <dmalcolm@redhat.com>

	* reorg.c (relax_delay_slots): Move declaration of "trial_seq"
	above the conditional, and convert the check on GET_CODE to a
	dyn_cast, so that "trial_seq" is available as an rtx_sequence * in
	the conditional.  Simplify the conditional by using methods of
	"trial_seq".

From-SVN: r214969
2014-09-05 15:03:12 +00:00
David Malcolm
96b7041496 Use rtx_insn_list within haifa-sched.c
gcc/ChangeLog:
2014-09-05  David Malcolm  <dmalcolm@redhat.com>

	* haifa-sched.c (check_clobbered_conditions): Strengthen local
	"link" from rtx to rtx_insn_list *, and use its methods for
	clarity and type-safety.
	(toggle_cancelled_flags): Likewise.
	(restore_last_backtrack_point): Likewise.
	(queue_to_ready): Use insn method of "link" in one place.
	(schedule_block): Strengthen local "link" from rtx to
	rtx_insn_list *, and use its methods for clarity and type-safety.

From-SVN: r214968
2014-09-05 14:55:53 +00:00
David Malcolm
c838c4025c Use rtx_insn for more scheduler things, plus CONST_CAST_RTX_INSN
gcc/ChangeLog:
2014-09-05  David Malcolm  <dmalcolm@redhat.com>

	* sched-deps.c (sched_get_condition_with_rev_uncached): Strengthen
	param "insn" from const_rtx to const rtx_insn *.
	(sched_get_reverse_condition_uncached): Likewise.
	(sched_get_condition_with_rev): Likewise.
	(sched_has_condition_p): Likewise.
	(sched_insns_conditions_mutex_p): Likewise for both params.
	(sched_insn_is_legitimate_for_speculation_p): Likewise for param
	"insn"; convert use of CONST_CAST_RTX to CONST_CAST_RTX_INSN.
	(setup_insn_reg_uses): Move local "list" to be more tightly
	scoped, strengthening it from an rtx to an rtx_insn_list *.  Use
	its methods for clarity and type-safety.
	(sched_analyze_1): Strengthen local "pending" from rtx to
	rtx_insn_list *, and local "pending_mem" from rtx to
	rtx_expr_list *.  Use methods of each for clarity and type-safety.
	(sched_analyze_2): Likewise.
	(sched_analyze_insn): Likewise.

	* sched-int.h (sched_get_reverse_condition_uncached): Strengthen
	param from const_rtx to const rtx_insn *.
	(sched_insns_conditions_mutex_p): Likewise for both params.
	(sched_insn_is_legitimate_for_speculation_p): Likewise for first
	param.

	* system.h (CONST_CAST_RTX_INSN): New macro.

From-SVN: r214967
2014-09-05 14:51:09 +00:00
David Malcolm
1c9b6043f9 Use rtx_insn more within peep2
gcc/ChangeLog:
2014-09-05  David Malcolm  <dmalcolm@redhat.com>

	* recog.c (peep2_attempt): Strengthen return type from rtx to
	rtx_insn *.
	(peep2_update_life): Likewise for params "last", "prev", removing
	a checked cast made redundant by this.
	(peephole2_optimize): Likewise for local "last".

From-SVN: r214966
2014-09-05 14:47:02 +00:00
Ian Lance Taylor
a7188cc650 runtime: Use correct size for unsafe.Pointer GC instructions.
From-SVN: r214965
2014-09-05 14:43:24 +00:00
David Malcolm
345b82befb Convert set_block_for_insn from a macro to an inline function
gcc/ChangeLog:
2014-09-05  David Malcolm  <dmalcolm@redhat.com>

	* basic-block.h (set_block_for_insn): Eliminate this macro in
	favor of...
	* rtl.h (set_block_for_insn): New inline function, imposing the
	requirement that the "insn" param is an rtx_insn *.

From-SVN: r214963
2014-09-05 14:19:35 +00:00
David Malcolm
86bf2d46b6 Eliminate the checked cast from get_call_reg_set_usage
gcc/ChangeLog
2014-09-05  David Malcolm  <dmalcolm@redhat.com>

	* caller-save.c (setup_save_areas): Strengthen local "insn" from
	rtx to rtx_insn *.
	* final.c (get_call_reg_set_usage): Likewise for first param,
	eliminating a checked cast.
	* regs.h (get_call_reg_set_usage): Likewise for first param.
	* resource.c (mark_set_resources): Introduce local rtx_call_insn *
	"call_insn" for the case of a MARK_SRC_DEST_CALL via a checked
	cast, replacing references to "x" with "call_insn" where
	appropriate.
	(mark_target_live_regs): Strengthen local "real_insn" from rtx to
	rtx_insn *, adding a checked cast.

From-SVN: r214962
2014-09-05 14:13:28 +00:00
David Malcolm
7fa55ff675 Drop uncast_insn from param 1 of final_scan_insn
gcc/ChangeLog
2014-09-05  David Malcolm  <dmalcolm@redhat.com>

	* output.h (final_scan_insn): Strengthen first param from rtx to
	rtx_insn *.

	* final.c (final_scan_insn): Likewise, renaming it back from
	"uncast_insn" to "insn", eliminating the checked cast.

	* config/h8300/h8300.md (define_insn "jump"): Replace local rtx
	"vec" with an rtx_sequence * "seq", taking a copy of
	"final_sequence", and using methods of "seq" for clarity, and for
	type-safety in the calls to final_scan_insn.
	* config/mips/mips.c (mips_output_conditional_branch): Use methods
	of "final_sequence" for clarity, and for type-safety in the call to
	final_scan_insn.
	* config/sh/sh.c (print_slot): Strengthen param from rtx to
	rtx_sequence * and rename from "insn" to "seq".

From-SVN: r214961
2014-09-05 14:04:46 +00:00
David Malcolm
75677a6759 Use rtx_jump_table_data in jump.c:delete_related_insns
gcc/ChangeLog
2014-09-05  David Malcolm  <dmalcolm@redhat.com>

	* jump.c (delete_related_insns): Introduce a new local "table" by
	replacing JUMP_TABLE_DATA_P with a dyn_cast, then use the
	get_labels method of "table" to simplify access to the labels in
	the jump table.

From-SVN: r214960
2014-09-05 13:58:29 +00:00
Kyrylo Tkachov
35b5c75197 [ARM/AArch64] Add scheduling info for ARMv8-A FPU new instructions in Cortex-A53.
* config/arm/cortex-a53.md (cortex_a53_fpalu): Add f_rints, f_rintd,
	f_minmaxs, f_minmaxd types.

From-SVN: r214959
2014-09-05 13:44:17 +00:00
Joost VandeVondele
fae867f5b1 re PR fortran/62245 (gfortran miscompiles int() on mips)
PR fortran/62245
        * intrinsic.texi (INT): clarify result.

From-SVN: r214958
2014-09-05 13:40:05 +00:00
Richard Biener
e4ca2139f2 cfgloop.c (mark_loop_for_removal): Record former header when ENABLE_CHECKING.
2014-09-05  Richard Biener  <rguenther@suse.de>

	* cfgloop.c (mark_loop_for_removal): Record former header
	when ENABLE_CHECKING.
	* cfgloop.h (strut loop): Add former_header member when
	ENABLE_CHECKING.
	* loop-init.c (fix_loop_structure): Sanity check loops
	marked for removal if they re-appeared.

From-SVN: r214957
2014-09-05 13:04:40 +00:00
Marat Zakirov
c3212d53df vect-109.c: Skip predicate added.
2014-09-05  Marat Zakirov  <m.zakirov@samsung.com>

	testsuite
	* gcc.dg/vect/vect-109.c: Skip predicate added.
	* gcc.dg/vect/vect-93.c: Test check fixed.
	* gcc.dg/vect/bb-slp-10.c: Likewise.
	* lib/target-supports.exp (check_effective_target_arm_vect_no_misalign):
	Check unaligned feature.

From-SVN: r214956
2014-09-05 13:04:21 +00:00
Joseph Myers
53d68b9f05 Use -fbuilding-libgcc for more target macros used in libgcc.
gcc/c-family:
	* c-cppbuiltin.c (c_cpp_builtins): Also define
	__LIBGCC_EH_TABLES_CAN_BE_READ_ONLY__,
	__LIBGCC_EH_FRAME_SECTION_NAME__, __LIBGCC_JCR_SECTION_NAME__,
	__LIBGCC_CTORS_SECTION_ASM_OP__, __LIBGCC_DTORS_SECTION_ASM_OP__,
	__LIBGCC_TEXT_SECTION_ASM_OP__, __LIBGCC_INIT_SECTION_ASM_OP__,
	__LIBGCC_INIT_ARRAY_SECTION_ASM_OP__,
	__LIBGCC_STACK_GROWS_DOWNWARD__,
	__LIBGCC_DONT_USE_BUILTIN_SETJMP__,
	__LIBGCC_DWARF_ALT_FRAME_RETURN_COLUMN__,
	__LIBGCC_DWARF_FRAME_REGISTERS__,
	__LIBGCC_EH_RETURN_STACKADJ_RTX__, __LIBGCC_JMP_BUF_SIZE__,
	__LIBGCC_STACK_POINTER_REGNUM__ and
	__LIBGCC_VTABLE_USES_DESCRIPTORS__ for -fbuilding-libgcc.
	(builtin_define_with_value): Handle backslash-escaping in string
	macro values.

libgcc:
	* Makefile.in (CRTSTUFF_CFLAGS): Add -fbuilding-libgcc.
	* config/aarch64/linux-unwind.h (STACK_POINTER_REGNUM): Change all
	uses to __LIBGCC_STACK_POINTER_REGNUM__.
	(DWARF_ALT_FRAME_RETURN_COLUMN): Change all uses to
	__LIBGCC_DWARF_ALT_FRAME_RETURN_COLUMN__.
	* config/alpha/vms-unwind.h (DWARF_ALT_FRAME_RETURN_COLUMN):
	Change use to __LIBGCC_DWARF_ALT_FRAME_RETURN_COLUMN__.
	* config/cr16/unwind-cr16.c (STACK_GROWS_DOWNWARD): Change all
	uses to __LIBGCC_STACK_GROWS_DOWNWARD__.
	(DWARF_FRAME_REGISTERS): Change all uses to
	__LIBGCC_DWARF_FRAME_REGISTERS__.
	(EH_RETURN_STACKADJ_RTX): Change all uses to
	__LIBGCC_EH_RETURN_STACKADJ_RTX__.
	* config/cr16/unwind-dw2.h (DWARF_FRAME_REGISTERS): Change use to
	__LIBGCC_DWARF_FRAME_REGISTERS__.  Remove conditional definition.
	* config/i386/cygming-crtbegin.c (EH_FRAME_SECTION_NAME): Change
	use to __LIBGCC_EH_FRAME_SECTION_NAME__.
	(JCR_SECTION_NAME): Change use to __LIBGCC_JCR_SECTION_NAME__.
	* config/i386/cygming-crtend.c (EH_FRAME_SECTION_NAME): Change use
	to __LIBGCC_EH_FRAME_SECTION_NAME__.
	(JCR_SECTION_NAME): Change use to __LIBGCC_JCR_SECTION_NAME__
	* config/mips/linux-unwind.h (STACK_POINTER_REGNUM): Change use to
	__LIBGCC_STACK_POINTER_REGNUM__.
	(DWARF_ALT_FRAME_RETURN_COLUMN): Change all uses to
	__LIBGCC_DWARF_ALT_FRAME_RETURN_COLUMN__.
	* config/nios2/linux-unwind.h (STACK_POINTER_REGNUM): Change use
	to __LIBGCC_STACK_POINTER_REGNUM__.
	* config/pa/hpux-unwind.h (DWARF_ALT_FRAME_RETURN_COLUMN): Change
	all uses to __LIBGCC_DWARF_ALT_FRAME_RETURN_COLUMN__.
	* config/pa/linux-unwind.h (DWARF_ALT_FRAME_RETURN_COLUMN): Change
	all uses to __LIBGCC_DWARF_ALT_FRAME_RETURN_COLUMN__.
	* config/rs6000/aix-unwind.h (DWARF_ALT_FRAME_RETURN_COLUMN):
	Change all uses to __LIBGCC_DWARF_ALT_FRAME_RETURN_COLUMN__.
	(STACK_POINTER_REGNUM): Change all uses to
	__LIBGCC_STACK_POINTER_REGNUM__.
	* config/rs6000/darwin-fallback.c (STACK_POINTER_REGNUM): Change
	use to __LIBGCC_STACK_POINTER_REGNUM__.
	* config/rs6000/linux-unwind.h (STACK_POINTER_REGNUM): Change all
	uses to __LIBGCC_STACK_POINTER_REGNUM__.
	* config/sparc/linux-unwind.h (DWARF_FRAME_REGISTERS): Change use
	to __LIBGCC_DWARF_FRAME_REGISTERS__.
	* config/sparc/sol2-unwind.h (DWARF_FRAME_REGISTERS): Change use
	to __LIBGCC_DWARF_FRAME_REGISTERS__.
	* config/tilepro/linux-unwind.h (STACK_POINTER_REGNUM): Change use
	to __LIBGCC_STACK_POINTER_REGNUM__.
	* config/xtensa/unwind-dw2-xtensa.h (DWARF_FRAME_REGISTERS):
	Remove conditional definition.
	* crtstuff.c (TEXT_SECTION_ASM_OP): Change all uses to
	__LIBGCC_TEXT_SECTION_ASM_OP__.
	(EH_FRAME_SECTION_NAME): Change all uses to
	__LIBGCC_EH_FRAME_SECTION_NAME__.
	(EH_TABLES_CAN_BE_READ_ONLY): Change all uses to
	__LIBGCC_EH_TABLES_CAN_BE_READ_ONLY__.
	(CTORS_SECTION_ASM_OP): Change all uses to
	__LIBGCC_CTORS_SECTION_ASM_OP__.
	(DTORS_SECTION_ASM_OP): Change all uses to
	__LIBGCC_DTORS_SECTION_ASM_OP__.
	(JCR_SECTION_NAME): Change all uses to
	__LIBGCC_JCR_SECTION_NAME__.
	(INIT_SECTION_ASM_OP): Change all uses to
	__LIBGCC_INIT_SECTION_ASM_OP__.
	(INIT_ARRAY_SECTION_ASM_OP): Change all uses to
	__LIBGCC_INIT_ARRAY_SECTION_ASM_OP__.
	* generic-morestack.c (STACK_GROWS_DOWNWARD): Change all uses to
	__LIBGCC_STACK_GROWS_DOWNWARD__.
	* libgcc2.c (INIT_SECTION_ASM_OP): Change all uses to
	__LIBGCC_INIT_SECTION_ASM_OP__.
	(INIT_ARRAY_SECTION_ASM_OP): Change all uses to
	__LIBGCC_INIT_ARRAY_SECTION_ASM_OP__.
	(EH_FRAME_SECTION_NAME): Change all uses to
	__LIBGCC_EH_FRAME_SECTION_NAME__.
	* libgcov-profiler.c (VTABLE_USES_DESCRIPTORS): Remove conditional
	definitions.  Change all uses to
	__LIBGCC_VTABLE_USES_DESCRIPTORS__.
	* unwind-dw2.c (STACK_GROWS_DOWNWARD): Change all uses to
	__LIBGCC_STACK_GROWS_DOWNWARD__.
	(DWARF_FRAME_REGISTERS): Change all uses to
	__LIBGCC_DWARF_FRAME_REGISTERS__.
	(EH_RETURN_STACKADJ_RTX): Change all uses to
	__LIBGCC_EH_RETURN_STACKADJ_RTX__.
	* unwind-dw2.h (DWARF_FRAME_REGISTERS): Remove conditional
	definition.  Change use to __LIBGCC_DWARF_FRAME_REGISTERS__.
	* unwind-sjlj.c (DONT_USE_BUILTIN_SETJMP): Change all uses to
	__LIBGCC_DONT_USE_BUILTIN_SETJMP__.
	(JMP_BUF_SIZE): Change use to __LIBGCC_JMP_BUF_SIZE__.

From-SVN: r214954
2014-09-05 13:03:46 +01:00
Alan Lawrence
02a0ec4a8d [PATCH AArch64] Rename [u]int32x1_t to [u]int32_t (resp 16x1, 8x1) in arm_neon.h
gcc/:
 
	* config/aarch64/arm_neon.h (int32x1_t, int16x1_t, int8x1_t,
	uint32x1_t, uint16x1_t, uint8x1_t): Remove typedefs.

	(vqabsb_s8, vqabsh_s16, vqabss_s32, vqaddb_s8, vqaddh_s16, vqadds_s32,
	vqaddb_u8, vqaddh_u16, vqadds_u32, vqdmlalh_s16, vqdmlalh_lane_s16,
	vqdmlals_s32, vqdmlslh_s16, vqdmlslh_lane_s16, vqdmlsls_s32,
	vqdmulhh_s16, vqdmulhh_lane_s16, vqdmulhs_s32, vqdmulhs_lane_s32,
	vqdmullh_s16, vqdmullh_lane_s16, vqdmulls_s32, vqdmulls_lane_s32,
	vqmovnh_s16, vqmovns_s32, vqmovnd_s64, vqmovnh_u16, vqmovns_u32,
	vqmovnd_u64, vqmovunh_s16, vqmovuns_s32, vqmovund_s64, vqnegb_s8,
	vqnegh_s16, vqnegs_s32, vqrdmulhh_s16, vqrdmulhh_lane_s16,
	vqrdmulhs_s32, vqrdmulhs_lane_s32, vqrshlb_s8, vqrshlh_s16,
	vqrshls_s32, vqrshlb_u8, vqrshlh_u16, vqrshls_u32, vqrshrnh_n_s16,
	vqrshrns_n_s32, vqrshrnd_n_s64, vqrshrnh_n_u16, vqrshrns_n_u32,
	vqrshrnd_n_u64, vqrshrunh_n_s16, vqrshruns_n_s32, vqrshrund_n_s64,
	vqshlb_s8, vqshlh_s16, vqshls_s32, vqshlb_u8, vqshlh_u16, vqshls_u32,
	vqshlb_n_s8, vqshlh_n_s16, vqshls_n_s32, vqshlb_n_u8, vqshlh_n_u16,
	vqshls_n_u32, vqshlub_n_s8, vqshluh_n_s16, vqshlus_n_s32,
	vqshrnh_n_s16, vqshrns_n_s32, vqshrnd_n_s64, vqshrnh_n_u16,
	vqshrns_n_u32, vqshrnd_n_u64, vqshrunh_n_s16, vqshruns_n_s32,
	vqshrund_n_s64, vqsubb_s8, vqsubh_s16, vqsubs_s32, vqsubb_u8,
	vqsubh_u16, vqsubs_u32, vsqaddb_u8, vsqaddh_u16, vsqadds_u32,
	vuqaddb_s8, vuqaddh_s16, vuqadds_s32): Replace all int{32,16,8}x1_t
	with int{32,16,8}_t.

gcc/testsuite/:
 
	* gcc.target/aarch64/scalar_intrinsics.c (*): Replace all
	int{32,16,8}x1_t with int{32,16,8}_t.
	* gcc.target/aarch64/simd/vqdmlalh_lane_s16.c: Likewise.
	* gcc.target/aarch64/simd/vqdmlslh_lane_s16.c: Likewise.
	* gcc.target/aarch64/simd/vqdmullh_lane_s16.c: Likewise.
	* gcc.target/aarch64/simd/vqdmulls_lane_s32.c: Likewise.

From-SVN: r214953
2014-09-05 11:48:04 +00:00
Alan Lawrence
8684fa50fa [PATCH AArch64 2/2] Replace temporary inline assembler for vget_high
* config/aarch64/arm_neon.h (__GET_HIGH): New macro.
	(vget_high_f32, vget_high_f64, vget_high_p8, vget_high_p16,
	vget_high_s8, vget_high_s16, vget_high_s32, vget_high_s64,
	vget_high_u8, vget_high_u16, vget_high_u32, vget_high_u64):
	Remove temporary __asm__ and reimplement.

From-SVN: r214952
2014-09-05 11:24:56 +00:00
Alan Lawrence
6fff10f9aa [PATCH AArch64 1/2] Add execution tests of vget_low and vget_high
* gcc.target/aarch64/vget_high_1.c: New test.
	* gcc.target/aarch64/vget_low_1.c: Likewise.

From-SVN: r214950
2014-09-05 11:13:47 +00:00
Alan Lawrence
5726d3760b [PATCH AArch64 2/2] Remove vector compare/tst __builtins
* config/aarch64/aarch64-builtins.c (aarch64_fold_builtin): Remove code
	handling cmge, cmgt, cmeq, cmtst.

	* config/aarch64/aarch64-simd-builtins.def (cmeq, cmge, cmgt, cmle,
	cmlt, cmgeu, cmgtu, cmtst): Remove.

	* config/aarch64/arm_neon.h (vceq_*, vceqq_*, vceqz_*, vceqzq_*,
	vcge_*, vcgeq_*, vcgez_*, vcgezq_*, vcgt_*, vcgtq_*, vcgtz_*,
	vcgtzq_*, vcle_*, vcleq_*, vclez_*, vclezq_*, vclt_*, vcltq_*,
	vcltz_*, vcltzq_*, vtst_*, vtstq_*): Use gcc vector extensions.

From-SVN: r214949
2014-09-05 11:09:28 +00:00
Alan Lawrence
ddeabd3e66 [PATCH AArch64 1/2] Improve codegen of vector compares inc. tst instruction
gcc/:

	* config/aarch64/aarch64-builtins.c (aarch64_types_cmtst_qualifiers,
	TYPES_TST): Define.
	(aarch64_fold_builtin): Update pattern for cmtst.

	* config/aarch64/aarch64-protos.h (aarch64_const_vec_all_same_int_p):
	Declare.

	* config/aarch64/aarch64-simd-builtins.def (cmtst): Update qualifiers.

	* config/aarch64/aarch64-simd.md (aarch64_vcond_internal<mode><mode>):
	Switch operands, separate out more cases, refactor.

	(aarch64_cmtst<mode>): Rewrite pattern to match (plus ... -1).

	* config/aarch64.c (aarch64_const_vec_all_same_int_p): Take single
	argument; rename old version to...
	(aarch64_const_vec_all_same_in_range_p): ...this.
	(aarch64_print_operand, aarch64_simd_shift_imm_p): Follow renaming.

	* config/aarch64/predicates.md (aarch64_simd_imm_minus_one): Define.

gcc/testsuite/:

	* gcc.target/aarch64/simd/int_comparisons.x: New file.
	* gcc.target/aarch64/simd/int_comparisons_1.c: New test.
	* gcc.target/aarch64/simd/int_comparisons_2.c: Ditto.

From-SVN: r214948
2014-09-05 10:50:04 +00:00
Alan Lawrence
e625e71548 [PATCH][AArch64] Tidy: remove unused qualifier_const_pointer
* config/aarch64/aarch64-builtins.c (enum aarch64_type_qualifiers):
	Remove qualifier_const_pointer, update comment.

From-SVN: r214947
2014-09-05 10:37:00 +00:00
Alan Lawrence
f36d4bd9fb [PATCH][AArch64] One-liner: fix type of an add in SIMD registers
* config/aarch64/aarch64.md (adddi3_aarch64): set type to neon_add.

From-SVN: r214946
2014-09-05 10:32:09 +00:00
Alan Lawrence
8d3d350af8 [PATCH AArch64] Remove varargs from aarch64_simd_expand_args
* config/aarch64/aarch64-builtins.c (aarch64_simd_expand_args): Replace
        varargs with pointer parameter.
        (aarch64_simd_expand_builtin): pass pointer into previous.

From-SVN: r214945
2014-09-05 10:21:46 +00:00
Kyrylo Tkachov
2f8a172030 [ARM/AArch64] Schedule alu_ext for Cortex-A53.
* config/arm/cortex-a53.md (cortex_a53_alu_shift): Add alu_ext,
      alus_ext.

From-SVN: r214944
2014-09-05 10:14:01 +00:00
Alan Lawrence
cf465d71a2 [PATCH AArch64] Add a builtin for rbit(q?)_p8; add intrinsics and tests.
gcc/:

	* config/aarch64/aarch64-simd.md (aarch64_rbit<mode>): New pattern.
	* config/aarch64/aarch64-simd-builtins.def (rbit): New builtin.
	* config/aarch64/arm_neon.h (vrbit_s8, vrbit_u8, vrbitq_s8, vrbitq_u8):
	Replace temporary asm with call to builtin.
	(vrbit_p8, vrbitq_p8): New functions.

gcc/testsuite/:

	* gcc.target/aarch64/simd/vrbit_1.c: New test.

From-SVN: r214943
2014-09-05 09:58:21 +00:00
Richard Biener
08c13199cf cfgloop.c (mark_loop_for_removal): New function.
2014-09-05  Richard Biener  <rguenther@suse.de>

	* cfgloop.c (mark_loop_for_removal): New function.
	* cfgloop.h (mark_loop_for_removal): Declare.
	* cfghooks.c (delete_basic_block): Use mark_loop_for_removal.
	(merge_blocks): Likewise.
	(duplicate_block): Likewise.
	* except.c (sjlj_emit_dispatch_table): Likewise.
	* tree-eh.c (cleanup_empty_eh_merge_phis): Likewise.
	* tree-ssa-threadupdate.c (ssa_redirect_edges): Likewise.
	(thread_through_loop_header): Likewise.

From-SVN: r214942
2014-09-05 09:17:49 +00:00
Richard Biener
f65586dcd1 re PR tree-optimization/63148 (r187042 causes auto-vectorization failure for X86 for -m32.)
2014-09-05  Richard Biener  <rguenther@suse.de>

	PR middle-end/63148
	* fold-const.c (try_move_mult_to_index): Remove.
	(fold_binary_loc): Do not call it.
	* tree-data-ref.c (dr_analyze_indices): Strip conversions
	from the base object again.

	c-family/
	* c-format.c (check_format_arg): Properly handle
	effectively signed POINTER_PLUS_EXPR offset.

	* gcc.dg/vect/pr63148.c: New testcase.
	* c-c++-common/pr19807-1.c: Likewise.
	* g++.dg/tree-ssa/pr19807.C: Adjust.
	* g++.dg/tree-ssa/tmmti-2.C: Remove.

From-SVN: r214941
2014-09-05 08:23:32 +00:00
James Greenhalgh
aaea00aa78 [AArch64 Obvious] Add a mode to operand 1 of sibcall_value_insn
gcc/

	* config/aarch64/aarch64.md (sibcall_value_insn): Give operand 1
	a mode.

From-SVN: r214940
2014-09-05 08:19:12 +00:00
Joey Ye
b3ba5f84af re PR plugins/59335 (Plugin doesn't build on trunk)
2014-09-05  Joey Ye  <joey.ye@arm.com>

    PR plugin/59335
    * Makefile.in (PLUGIN_HEADERS): Add wide-int.h, signop.h, hash-map.h,

From-SVN: r214938
2014-09-05 06:52:17 +00:00
Bin Cheng
ad42115965 re PR target/55701 (Inline some instances of memset for ARM)
PR target/55701
	* config/arm/arm.md (setmem): New pattern.
	* config/arm/arm-protos.h (struct tune_params): New fields.
	(arm_gen_setmem): New prototype.
	* config/arm/arm.c (arm_slowmul_tune): Initialize new fields.
	(arm_fastmul_tune, arm_strongarm_tune, arm_xscale_tune): Ditto.
	(arm_9e_tune, arm_v6t2_tune, arm_cortex_tune): Ditto.
	(arm_cortex_a8_tune, arm_cortex_a7_tune): Ditto.
	(arm_cortex_a15_tune, arm_cortex_a53_tune): Ditto.
	(arm_cortex_a57_tune, arm_cortex_a5_tune): Ditto.
	(arm_cortex_a9_tune, arm_cortex_a12_tune): Ditto.
	(arm_v7m_tune, arm_v6m_tune, arm_fa726te_tune): Ditto.
	(arm_const_inline_cost): New function.
	(arm_block_set_max_insns): New function.
	(arm_block_set_non_vect_profit_p): New function.
	(arm_block_set_vect_profit_p): New function.
	(arm_block_set_unaligned_vect): New function.
	(arm_block_set_aligned_vect): New function.
	(arm_block_set_unaligned_non_vect): New function.
	(arm_block_set_aligned_non_vect): New function.
	(arm_block_set_vect, arm_gen_setmem): New functions.

	testsuite
	* gcc.target/arm/memset-inline-1.c: New test.
	* gcc.target/arm/memset-inline-2.c: New test.
	* gcc.target/arm/memset-inline-3.c: New test.
	* gcc.target/arm/memset-inline-4.c: New test.
	* gcc.target/arm/memset-inline-5.c: New test.
	* gcc.target/arm/memset-inline-6.c: New test.
	* gcc.target/arm/memset-inline-7.c: New test.
	* gcc.target/arm/memset-inline-8.c: New test.
	* gcc.target/arm/memset-inline-9.c: New test.
	* gcc.target/arm/memset-inline-10.c: New test.

From-SVN: r214937
2014-09-05 03:45:57 +00:00
Bin Cheng
6f22122491 arm.md (arm_movqi_insn): Use Uh instead of m constraint.
* config/arm/arm.md (arm_movqi_insn): Use Uh instead of m constraint.

From-SVN: r214936
2014-09-05 03:33:38 +00:00
Bin Cheng
ed5f78b8e9 arm.c (output_move_neon): Handle REG explicitly.
* config/arm/arm.c (output_move_neon): Handle REG explicitly.

From-SVN: r214935
2014-09-05 03:31:29 +00:00
Trevor Saunders
f38a26e543 make dead_debug_insert_temp take an rtx_insn *
gcc/ChangeLog:

2014-09-04  Trevor Saunders  <tsaunders@mozilla.com>

	* valtrack.c (dead_debug_insert_temp): Take an rtx_insn * instead of
	an rtx.
	* valtrack.h: Adjust.

From-SVN: r214934
2014-09-05 02:32:00 +00:00
Trevor Saunders
596f2b172a make several emit functions take an rtx_insn *
gcc/ChangeLog:

2014-09-04  Trevor Saunders  <tsaunders@mozilla.com>

	* emit-rtl.c (emit_insn_before_noloc): Take an rtx_insn * instead of
	an rtx.
	(emit_jump_insn_before_noloc): Likewise.
	(emit_call_insn_before_noloc): Likewise.
	(emit_label_before): Likewise.
	(emit_label_after): Likewise.
	(emit_insn_before_setloc): Likewise.
	(emit_jump_insn_before_setloc): Likewise.
	(emit_call_insn_before_setloc): Likewise.
	(emit_call_insn_before): Likewise.
	* rtl.h: Adjust.

From-SVN: r214933
2014-09-05 02:31:40 +00:00
David Malcolm
49506606f0 Remove a cast in cse.c
gcc/
2014-09-05  David Malcolm  <dmalcolm@redhat.com>

	* cse.c (cse_insn): Strengthen local "new_rtx" from rtx to
	rtx_insn *, eliminating a checked cast.

From-SVN: r214932
2014-09-05 01:32:23 +00:00
David Malcolm
8f6bce51a7 Params to modified_between_p
gcc/
2014-09-05  David Malcolm  <dmalcolm@redhat.com>

	* rtl.h (modified_between_p): Strengthen params 2 and 3 from
	const_rtx to const rtx_insn *.
	* rtlanal.c (modified_between_p): Likewise, eliminating a checked
	cast.

From-SVN: r214931
2014-09-05 01:24:47 +00:00
David Malcolm
e5b51ca02b fixup_args_size_notes takes a pair of rtx_insn
gcc/
2014-09-05  David Malcolm  <dmalcolm@redhat.com>

	* emit-rtl.c (try_split): Update NULL_RTX to NULL in call to
	fixup_args_size_notes.
	* expr.c (fixup_args_size_notes): Strengthen first two params from
	rtx to rtx_insn *, eliminating a checked cast.
	* rtl.h (fixup_args_size_notes): Strengthen first two params from
	rtx to rtx_insn *.

From-SVN: r214930
2014-09-05 01:14:41 +00:00
David Malcolm
6a263466d2 Return type of get_ready_element
gcc/
2014-09-05  David Malcolm  <dmalcolm@redhat.com>

	* haifa-sched.c (get_ready_element): Strengthen return type from
	rtx to rtx_insn *.
	* sched-int.h (get_ready_element): Likewise.

From-SVN: r214929
2014-09-05 01:06:19 +00:00
Kaz Kojima
937c504ecf Remove dg-options for sh*-*-* from gcc.c-torture/execute/pr44683.c.
From-SVN: r214928
2014-09-05 00:20:33 +00:00
GCC Administrator
a934ac6ecd Daily bump.
From-SVN: r214927
2014-09-05 00:17:08 +00:00
Segher Boessenkool
5b37e11a95 re PR target/63165 (r214816 breaks Java build and 435.gromacs)
2014-09-04  Segher Boessenkool  <segher@kernel.crashing.org>

	PR target/63165
	* config/rs6000/rs6000.md (floatsi<mode>2_lfiwax_mem): Use
	indexed_or_indirect_operand instead of memory_operand.
	(floatsi<mode>2_lfiwzx_mem): Ditto.

From-SVN: r214924
2014-09-05 00:53:01 +02:00
Trevor Saunders
e60365d30e use rtx_insn * a little more
gcc/ChangeLog:

2014-09-04  Trevor Saunders  <tsaunders@mozilla.com>

	* config/bfin/bfin.c, config/c6x/c6x.c, config/m32c/m32c.c,
	config/mn10300/mn10300.c, config/s390/s390.c, config/sh/sh.c,
	ifcvt.c, reorg.c: Change types of variables from rtx to rtx_insn *.

From-SVN: r214923
2014-09-04 21:11:34 +00:00
Trevor Saunders
e4685bc8ca Change the types of arguments and return values for several functions from rtx to rtx_insn *
gcc/ChangeLog:

2014-09-04  Trevor Saunders  <tsaunders@mozilla.com>

	* emit-rtl.c (get_first_nonnote_insn): Return rtx_insn * instead of
	rtx.
	(get_last_nonnote_insn): Likewise.
	(next_nonnote_insn_bb): Take rtx_insn * instead of rtx.
	* resource.c (find_basic_block): Likewise.
	* rtl.h: Adjust.
	* rtlanal.c (keep_with_call_p): Take const rtx_insn * instead of
	const_rtx.

From-SVN: r214922
2014-09-04 21:11:23 +00:00
David Malcolm
b28e4e4427 insn_latency takes a pair of rtx_insn
gcc/
2014-09-04  David Malcolm  <dmalcolm@redhat.com>

	* genattr.c (main): Within the prototype of insn_latency written
	out to insn-attr.h, strengthen both params from rtx to rtx_insn *.
	* genautomata.c (output_internal_maximal_insn_latency_func):
	Within the implementation of insn_latency written out to
	insn-automata.c, strengthen both params from rtx to rtx_insn *,
	eliminating a pair of checked casts.

From-SVN: r214921
2014-09-04 20:56:16 +00:00
David Malcolm
8e3177d9a6 eh_returnjump_p takes an rtx_insn
2014-09-04  David Malcolm  <dmalcolm@redhat.com>

gcc/
	* jump.c (eh_returnjump_p): Strengthen param "insn" from rtx to
	rtx_insn *.

	* rtl.h (eh_returnjump_p): Likewise.

From-SVN: r214919
2014-09-04 20:34:36 +00:00