1. 23 Apr, 2014 24 commits
    • [AArch64] VDUP Testcases · 0e4d63c5
      This patch adds vdup intrinsic testcases for AArch64. those testcases
      are nice to have, as it allows to reason about vdup consistency for
      both LE and BE compiler flavors.
      
      From-SVN: r209713
      Alex Velenko committed
    • [AARCH64] Use standard patterns for stack protection. · 36e17020
      From-SVN: r209712
      Venkataramanan Kumar committed
    • [AArch64] Fully support rotate on logical operations. · 57b77d46
      From-SVN: r209711
      Richard Earnshaw committed
    • [ARM] Initialize new tune_params values · 984c2f30
      gcc/
      
      	* config/arm/arm.c (arm_cortex_a57_tune): Initialize all fields.
      	(arm_cortex_a12_tune): Likewise.
      
      From-SVN: r209710
      James Greenhalgh committed
    • [AArch64] Add handling of bswap operations in rtx costs · 18b42b2a
      	* config/aarch64/aarch64.c (aarch64_rtx_costs): Handle BSWAP.
      
      From-SVN: r209706
      Kyrylo Tkachov committed
    • [ARM][3/3] Recognise bitwise operations leading to SImode rev16 · ea1e9168
      	* config/arm/arm.md (arm_rev16si2): New pattern.
      	(arm_rev16si2_alt): Likewise.
      	* config/arm/arm.c (arm_new_rtx_costs): Handle rev16 case.
      
      	* gcc.target/arm/rev16.c: New test.
      
      From-SVN: r209705
      Kyrylo Tkachov committed
    • [AArch64][2/3] Recognise rev16 operations on SImode and DImode data · f7d5cf8d
             * config/aarch64/aarch64.md (rev16<mode>2): New pattern.
             (rev16<mode>2_alt): Likewise.
             * config/aarch64/aarch64.c (aarch64_rtx_costs): Handle rev16 case.
             * config/arm/aarch-common.c (aarch_rev16_shright_mask_imm_p): New.
             (aarch_rev16_shleft_mask_imm_p): Likewise.
             (aarch_rev16_p_1): Likewise.
             (aarch_rev16_p): Likewise.
             * config/arm/aarch-common-protos.h (aarch_rev16_p): Declare extern.
             (aarch_rev16_shright_mask_imm_p): Likewise.
             (aarch_rev16_shleft_mask_imm_p): Likewise.
      
             * gcc.target/aarch64/rev16_1.c: New test.
      
      From-SVN: r209704
      Kyrylo Tkachov committed
    • [ARM][1/3] Add rev field to rtx cost tables · 9ac05ae5
             * config/arm/aarch-common-protos.h (alu_cost_table): Add rev field.
             * config/arm/aarch-cost-tables.h (generic_extra_costs): Specify
             rev cost.
             (cortex_a53_extra_costs): Likewise.
             (cortex_a57_extra_costs): Likewise.
             * config/arm/arm.c (cortexa9_extra_costs): Likewise.
             (cortexa7_extra_costs): Likewise.
             (cortexa8_extra_costs): Likewise.
             (cortexa12_extra_costs): Likewise.
             (cortexa15_extra_costs): Likewise.
             (v7m_extra_costs): Likewise.
             (arm_new_rtx_costs): Handle BSWAP.
      
      From-SVN: r209703
      Kyrylo Tkachov committed
    • [ARM] Cortex-A8 rtx cost table · e0d8c86c
             * config/arm/arm.c (cortexa8_extra_costs): New table.
             (arm_cortex_a8_tune): New tuning struct.
             * config/arm/arm-cores.def (cortex-a8): Use cortex_a8 tuning struct.
      
      From-SVN: r209702
      Kyrylo Tkachov committed
    • [ARM] Handle FMA code in rtx costs. · ba9b1a63
             * config/arm/arm.c (arm_new_rtx_costs): Handle FMA.
      
      From-SVN: r209701
      Kyrylo Tkachov committed
    • Makefile.in (OBJS): Remove loop-unswitch.o. · da4cfeac
      2014-04-23  Richard Biener  <rguenther@suse.de>
      
      	* Makefile.in (OBJS): Remove loop-unswitch.o.
      	* loop-unswitch.c: Delete.
      	* tree-pass.h (make_pass_rtl_unswitch): Remove.
      	* passes.def (pass_rtl_unswitch): Likewise.
      	* loop-init.c (gate_rtl_unswitch): Likewise.
      	(rtl_unswitch): Likewise.
      	(pass_data_rtl_unswitch): Likewise.
      	(pass_rtl_unswitch): Likewise.
      	(make_pass_rtl_unswitch): Likewise.
      	* rtl.h (reversed_condition): Likewise.
      	(compare_and_jump_seq): Likewise.
      	* loop-iv.c (reversed_condition): Move here from loop-unswitch.c
      	and make static.
      	* loop-unroll.c (compare_and_jump_seq): Likewise.
      
      From-SVN: r209698
      Richard Biener committed
    • re PR tree-optimization/60903 (ICE: in verify_loop_structure, at cfgloop.c:1647:… · 22718afe
      re PR tree-optimization/60903 (ICE: in verify_loop_structure, at cfgloop.c:1647: : edge from 13 to 14 should be marked irreducible)
      
      2014-04-23  Richard Biener  <rguenther@suse.de>
      
      	PR tree-optimization/60903
      	* tree-ssa-loop-im.c (analyze_memory_references): Remove
      	commented code block.
      	(execute_sm_if_changed): Properly apply IRREDUCIBLE_LOOP
      	loop flags to newly created BBs and edges.
      
      	* gcc.dg/torture/pr60903.c: New testcase.
      
      From-SVN: r209694
      Richard Biener committed
    • c-common.c (handle_tm_wrap_attribute): Tweak error message. · c07d7c02
      	* c-common.c (handle_tm_wrap_attribute): Tweak error message.
      
      From-SVN: r209693
      Marek Polacek committed
    • msp430.c (msp430_handle_option): Move function to msp430-common.c · f7961364
      	* config/msp430/msp430.c (msp430_handle_option): Move function
      	to msp430-common.c
      	(msp430_option_override): Simplify mcu and mcpu option handling.
      	(msp430_is_f5_mcu): Rename to msp430_use_f5_series_hwmult.  Add
      	support for -mhwmult command line option.
      	(has_32bit_hwmult): Rename to use_32bit_hwmult.  Add support for
      	-mhwmult command line option.
      	(msp430_hwmult_enabled): Delete.
      	(msp43o_output_labelref): Add support for -mhwmult command line
      	option.
      	* config/msp430/msp430.md (mulhisi3, umulhisi3, mulsidi3)
      	(umulsidi3): Likewise.
      	* config/msp430/msp430.opt (mmcu): Add Report attribute.
      	(mcpu, mlarge, msmall): Likewise.
      	(mhwmult): New option.
      	* config/msp430/msp430-protos.h (msp430_hwmult_enabled): Remove
      	prototype.
      	(msp430_is_f5_mcu): Remove prototype.
      	(msp430_use_f5_series_hwmult): Add prototype.
      	* config/msp430/msp430-opts.h: New file.
      	* common/config/msp430: New directory.
      	* common/config/msp430/msp430-common.c: New file.
      	* config.gcc (msp430): Remove target_has_targetm_common.
      	* doc/invoke.texi: Document -mhwmult command line option.
      
      From-SVN: r209685
      Nick Clifton committed
    • Revert · 8f78ecdb
      	2014-04-22  Richard Henderson  <rth@redhat.com>
      
      	* gcc-interface/Makefile.in: Support aarch64-linux.
      
      	2014-04-22  Eric Botcazou  <ebotcazou@adacore.com>
      
      	* fe.h (Compiler_Abort): Replace Fat_Pointer with String_Pointer.
      	(Error_Msg_N): Likewise.
      	(Error_Msg_NE): Likewise.
      	(Get_External_Name_With_Suffix): Likewise.
      	* types.h (Fat_Pointer): Delete.
      	(String_Pointer): New type.
      	(DECLARE_STRING_POINTER): New macro.
      	* gcc-interface/decl.c (create_concat_name): Adjust.
      	* gcc-interface/trans.c (post_error): Likewise.
      	(post_error_ne): Likewise.
      	* gcc-interface/misc.c (internal_error_function): Likewise.
      
      From-SVN: r209684
      Eric Botcazou committed
    • Update libstdc++ baseline symbols for m68k · eab264af
      * config/abi/post/m68k-linux-gnu/baseline_symbols.txt
      (CXXABI_1.3.9): New version.
      
      From-SVN: r209683
      Andreas Schwab committed
    • cygwin.h (ENDFILE_SPEC): Include default-manifest.o if it can be found in the search path. · f70df035
      	* config/i386/cygwin.h (ENDFILE_SPEC): Include
      	default-manifest.o if it can be found in the search path.
      	* config/i386/mingw32.h (ENDFILE_SPEC): Likewise.
      
      From-SVN: r209681
      Nick Clifton committed
    • arm.h (ASM_APP_OFF): Re-define it in a cleaner way. · 6a9accca
      2014-04-23  Terry Guo  <terry.guo@arm.com>
      
      	* config/arm/arm.h (ASM_APP_OFF): Re-define it in a cleaner way.
      
      From-SVN: r209678
      Terry Guo committed
    • re PR tree-optimization/60895 (error: address taken, but ADDRESSABLE bit not set) · 62ba699e
      2014-04-23  Richard Biener  <rguenther@suse.de>
      
      	PR middle-end/60895
      	* tree-inline.c (declare_return_variable): Use mark_addressable.
      
      	* g++.dg/torture/pr60895.C: New testcase.
      
      From-SVN: r209675
      Richard Biener committed
    • re PR tree-optimization/60891 (ICE: SIGSEGV (Invalid write/read) in… · 92562f88
      re PR tree-optimization/60891 (ICE: SIGSEGV (Invalid write/read) in pre_and_rev_post_order_compute_fn with -O -fno-tree-ch -fno-tree-cselim -fno-tree-dominator-opts)
      
      2014-04-23  Richard Biener  <rguenther@suse.de>
      
      	PR middle-end/60891
      	* loop-init.c (loop_optimizer_init): Make sure to apply
      	LOOPS_MAY_HAVE_MULTIPLE_LATCHES before fixing up loops.
      
      	* gcc.dg/torture/pr60891.c: New testcase.
      
      From-SVN: r209673
      Richard Biener committed
    • re PR sanitizer/60275 ([UBSAN] Add… · 1c33c9b7
      re PR sanitizer/60275 ([UBSAN] Add -f[no-]sanitize-recover/-fsanitize-undefined-trap-on-error to make UBSAN's runtime errors fatal)
      
      	PR sanitizer/60275
      	* common.opt (fsanitize-recover, fsanitize-undefined-trap-on-error):
      	New options.
      	* gcc.c (sanitize_spec_function): Don't return "" for "undefined"
      	if flag_sanitize_undefined_trap_on_error.
      	* sanitizer.def (BUILT_IN_UBSAN_HANDLE_DIVREM_OVERFLOW_ABORT,
      	BUILT_IN_UBSAN_HANDLE_SHIFT_OUT_OF_BOUNDS_ABORT,
      	BUILT_IN_UBSAN_HANDLE_VLA_BOUND_NOT_POSITIVE_ABORT,
      	BUILT_IN_UBSAN_HANDLE_TYPE_MISMATCH_ABORT,
      	BUILT_IN_UBSAN_HANDLE_ADD_OVERFLOW_ABORT,
      	BUILT_IN_UBSAN_HANDLE_SUB_OVERFLOW_ABORT,
      	BUILT_IN_UBSAN_HANDLE_MUL_OVERFLOW_ABORT,
      	BUILT_IN_UBSAN_HANDLE_NEGATE_OVERFLOW_ABORT,
      	BUILT_IN_UBSAN_HANDLE_LOAD_INVALID_VALUE_ABORT): New builtins.
      	* ubsan.c (ubsan_instrument_unreachable): Return
      	__builtin_trap () if flag_sanitize_undefined_trap_on_error.
      	(ubsan_expand_null_ifn): Emit __builtin_trap ()
      	if flag_sanitize_undefined_trap_on_error and
      	__ubsan_handle_type_mismatch_abort if !flag_sanitize_recover.
      	(ubsan_expand_null_ifn, ubsan_build_overflow_builtin,
      	instrument_bool_enum_load): Emit __builtin_trap () if
      	flag_sanitize_undefined_trap_on_error and
      	__builtin_handle_*_abort () if !flag_sanitize_recover.
      	* doc/invoke.texi (-fsanitize-recover,
      	-fsanitize-undefined-trap-on-error): Document.
      c-family/
      	* c-ubsan.c (ubsan_instrument_return): Return __builtin_trap ()
      	if flag_sanitize_undefined_trap_on_error.
      	(ubsan_instrument_division, ubsan_instrument_shift,
      	ubsan_instrument_vla): Likewise.  Use __ubsan_handle_*_abort ()
      	if !flag_sanitize_recover.
      testsuite/
      	* g++.dg/ubsan/return-2.C: Revert 2014-03-24 changes, add
      	-fno-sanitize-recover to dg-options.
      	* g++.dg/ubsan/cxx11-shift-1.C: Remove c++11 target restriction,
      	add -std=c++11 to dg-options.
      	* g++.dg/ubsan/cxx11-shift-2.C: Likewise.
      	* g++.dg/ubsan/cxx1y-vla.C: Remove c++1y target restriction,
      	add -std=c++1y to dg-options.
      	* c-c++-common/ubsan/undefined-1.c: Revert 2014-03-24 changes, add
      	-fno-sanitize-recover to dg-options.
      	* c-c++-common/ubsan/overflow-sub-1.c: Likewise.
      	* c-c++-common/ubsan/vla-4.c: Likewise.
      	* c-c++-common/ubsan/pr59503.c: Likewise.
      	* c-c++-common/ubsan/vla-3.c: Likewise.
      	* c-c++-common/ubsan/save-expr-1.c: Likewise.
      	* c-c++-common/ubsan/overflow-add-1.c: Likewise.
      	* c-c++-common/ubsan/shift-3.c: Likewise.
      	* c-c++-common/ubsan/overflow-1.c: Likewise.
      	* c-c++-common/ubsan/overflow-negate-2.c: Likewise.
      	* c-c++-common/ubsan/vla-2.c: Likewise.
      	* c-c++-common/ubsan/overflow-mul-1.c: Likewise.
      	* c-c++-common/ubsan/pr60613-1.c: Likewise.
      	* c-c++-common/ubsan/shift-6.c: Likewise.
      	* c-c++-common/ubsan/overflow-mul-3.c: Likewise.
      	* c-c++-common/ubsan/overflow-add-3.c: New test.
      	* c-c++-common/ubsan/overflow-add-4.c: New test.
      	* c-c++-common/ubsan/div-by-zero-6.c: New test.
      	* c-c++-common/ubsan/div-by-zero-7.c: New test.
      
      From-SVN: r209672
      Jakub Jelinek committed
    • sh.md (mov<mode>): Replace movQIHI. · 5e66b2e5
      2014-04-22  Christian Bruel  <christian.bruel@st.com>
      
              * config/sh/sh.md (mov<mode>): Replace movQIHI.
               Force immediates to SImode.
      
      From-SVN: r209671
      Christian Bruel committed
    • nios2.md (UNSPEC_ROUND): New. · aa221564
      2014-04-22  Sandra Loosemore  <sandra@codesourcery.com>
      
      	gcc/
      	* config/nios2/nios2.md (UNSPEC_ROUND): New.
      	(lroundsfsi2): New.
      	* config/nios2/nios2.opt (mno-custom-round, mcustom-round=): New.
      	* config/nios2/nios2-opts.h (N2FPU_ALL_CODES): Add round.
      	* config/nios2/nios2.c (N2F_NO_ERRNO): Define.
      	(nios2_fpu_insn): Add entry for round.
      	(N2FPU_NO_ERRNO_P): Define.
      	(nios2_custom_check_insns): Add check for N2F_NO_ERRNO and
      	flag_errno_math.
      	* doc/invoke.texi (Nios II Options): Document -mcustom-round.
      
      	gcc/testsuite/
      	* gcc.target/nios2/custom-fp-conversion.c: Adjust to test that
      	lroundf generates custom round instruction, too.
      
      From-SVN: r209670
      Sandra Loosemore committed
    • Daily bump. · 5f056aaa
      From-SVN: r209669
      GCC Administrator committed
  2. 22 Apr, 2014 16 commits