1. 05 Sep, 2014 40 commits
    • re PR rtl-optimization/62146 (CSE replaces constant with an expression incorrectly) · 14e4c2af
      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
      Easwaran Raman committed
    • re PR target/63187 (Unrecognizable insn ICE due to revision 214080) · 8a03df77
      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
      Segher Boessenkool committed
    • re PR c++/62659 (Regression in template argument substitution in 4.9+) · ed23bf8b
      	PR c++/62659
      	* semantics.c (potential_constant_expression_1): Handle un-folded
      	pointer to member constants.
      
      From-SVN: r214974
      Jason Merrill committed
    • runtime: Use the clone system call on GNU/Linux. · 01c2fa9d
      Without this we weren't supporting the standard Cloneflags
      field of SysProcAttr.
      
      From-SVN: r214972
      Ian Lance Taylor committed
    • Use rtx_insn for various jump-handling functions and predicates · 68a1a6c0
      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
      David Malcolm committed
    • Simplification within reorg.c · 45700b6a
      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
      David Malcolm committed
    • Use rtx_insn_list within haifa-sched.c · 96b70414
      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
      David Malcolm committed
    • Use rtx_insn for more scheduler things, plus CONST_CAST_RTX_INSN · c838c402
      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
      David Malcolm committed
    • Use rtx_insn more within peep2 · 1c9b6043
      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
      David Malcolm committed
    • Convert set_block_for_insn from a macro to an inline function · 345b82be
      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
      David Malcolm committed
    • Eliminate the checked cast from get_call_reg_set_usage · 86bf2d46
      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
      David Malcolm committed
    • Drop uncast_insn from param 1 of final_scan_insn · 7fa55ff6
      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
      David Malcolm committed
    • Use rtx_jump_table_data in jump.c:delete_related_insns · 75677a67
      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
      David Malcolm committed
    • [ARM/AArch64] Add scheduling info for ARMv8-A FPU new instructions in Cortex-A53. · 35b5c751
      	* config/arm/cortex-a53.md (cortex_a53_fpalu): Add f_rints, f_rintd,
      	f_minmaxs, f_minmaxd types.
      
      From-SVN: r214959
      Kyrylo Tkachov committed
    • re PR fortran/62245 (gfortran miscompiles int() on mips) · fae867f5
              PR fortran/62245
              * intrinsic.texi (INT): clarify result.
      
      From-SVN: r214958
      Joost VandeVondele committed
    • cfgloop.c (mark_loop_for_removal): Record former header when ENABLE_CHECKING. · e4ca2139
      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
      Richard Biener committed
    • vect-109.c: Skip predicate added. · c3212d53
      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
      Marat Zakirov committed
    • Use -fbuilding-libgcc for more target macros used in libgcc. · 53d68b9f
      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
      Joseph Myers committed
    • [PATCH AArch64] Rename [u]int32x1_t to [u]int32_t (resp 16x1, 8x1) in arm_neon.h · 02a0ec4a
      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
      Alan Lawrence committed
    • [PATCH AArch64 2/2] Replace temporary inline assembler for vget_high · 8684fa50
      	* 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
      Alan Lawrence committed
    • [PATCH AArch64 1/2] Add execution tests of vget_low and vget_high · 6fff10f9
      	* gcc.target/aarch64/vget_high_1.c: New test.
      	* gcc.target/aarch64/vget_low_1.c: Likewise.
      
      From-SVN: r214950
      Alan Lawrence committed
    • [PATCH AArch64 2/2] Remove vector compare/tst __builtins · 5726d376
       
      	* 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
      Alan Lawrence committed
    • [PATCH AArch64 1/2] Improve codegen of vector compares inc. tst instruction · ddeabd3e
      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
      Alan Lawrence committed
    • [PATCH][AArch64] Tidy: remove unused qualifier_const_pointer · e625e715
      	* config/aarch64/aarch64-builtins.c (enum aarch64_type_qualifiers):
      	Remove qualifier_const_pointer, update comment.
      
      From-SVN: r214947
      Alan Lawrence committed
    • [PATCH][AArch64] One-liner: fix type of an add in SIMD registers · f36d4bd9
      	* config/aarch64/aarch64.md (adddi3_aarch64): set type to neon_add.
      
      From-SVN: r214946
      Alan Lawrence committed
    • [PATCH AArch64] Remove varargs from aarch64_simd_expand_args · 8d3d350a
              * 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
      Alan Lawrence committed
    • [ARM/AArch64] Schedule alu_ext for Cortex-A53. · 2f8a1720
            * config/arm/cortex-a53.md (cortex_a53_alu_shift): Add alu_ext,
            alus_ext.
      
      From-SVN: r214944
      Kyrylo Tkachov committed
    • [PATCH AArch64] Add a builtin for rbit(q?)_p8; add intrinsics and tests. · cf465d71
      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
      Alan Lawrence committed
    • cfgloop.c (mark_loop_for_removal): New function. · 08c13199
      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
      Richard Biener committed
    • re PR tree-optimization/63148 (r187042 causes auto-vectorization failure for X86 for -m32.) · f65586dc
      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
      Richard Biener committed
    • [AArch64 Obvious] Add a mode to operand 1 of sibcall_value_insn · aaea00aa
      gcc/
      
      	* config/aarch64/aarch64.md (sibcall_value_insn): Give operand 1
      	a mode.
      
      From-SVN: r214940
      James Greenhalgh committed
    • re PR plugins/59335 (Plugin doesn't build on trunk) · b3ba5f84
      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
      Joey Ye committed
    • re PR target/55701 (Inline some instances of memset for ARM) · ad421159
      
      	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
      Bin Cheng committed
    • arm.md (arm_movqi_insn): Use Uh instead of m constraint. · 6f221224
      
      	* config/arm/arm.md (arm_movqi_insn): Use Uh instead of m constraint.
      
      From-SVN: r214936
      Bin Cheng committed
    • arm.c (output_move_neon): Handle REG explicitly. · ed5f78b8
      
      	* config/arm/arm.c (output_move_neon): Handle REG explicitly.
      
      From-SVN: r214935
      Bin Cheng committed
    • make dead_debug_insert_temp take an rtx_insn * · f38a26e5
      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
      Trevor Saunders committed
    • make several emit functions take an rtx_insn * · 596f2b17
      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
      Trevor Saunders committed
    • Remove a cast in cse.c · 49506606
      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
      David Malcolm committed
    • Params to modified_between_p · 8f6bce51
      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
      David Malcolm committed