1. 22 Oct, 2014 21 commits
    • auto-profile.c: Change order of header files. · 3d790fd8
      gcc/ChangeLog:
      
      2014-10-22  Dehao Chen  <dehao@google.com>
      
              * auto-profile.c: Change order of header files.
      
      From-SVN: r216563
      Dehao Chen committed
    • re PR tree-optimization/63530 (GCC generates incorrect aligned store on ARM… · 417dfefb
      re PR tree-optimization/63530 (GCC generates incorrect aligned store on ARM after the loop is unrolled.)
      
      	PR tree-optimization/63530
      	tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref): Set
      	pointer alignment according to DR_MISALIGNMENT.
      	gcc.dg/vect/pr63530.c: New testcase.
      
      From-SVN: r216562
      Guozhi Wei committed
    • Reset global state ipa-icf.c:optimizer · 9612a39a
      gcc/
      	* ipa-icf.c (ipa_icf_driver): Set optimizer to NULL when done.
      
      From-SVN: r216561
      David Malcolm committed
    • cfgbuild.h: New. · 893479de
      
      
      2014-10-22  Andrew MacLeod  <amacleod@redhat.com>
      
      	* cfgbuild.h: New.  Add prototypes for cfgbuild.c.
      	* cfgcleanup.h: New.  Add prototypes for cfgcleanup.c.
      	* cfgloopmanip.h: New.  Add prototypes for cfgloopmanip.c.
      	* dominance.h: New.  Add prototypes for dominance.c.
      	* cfgloop.h: Move some prototypes/enum to cfgloopmanip.h and include it.
      	* cfghooks.h: (struct profile_record) Relocate here.
      	Relocate 2 prototypes from basic-block.h.
      	* basic-block.h: Move prototypes and struct to new header files.
      	Include cfgbuild.h, cfgcleanup.h, and dominance.h.
      	* rtl.h: Move a few prototypes to new header files.
      	* cfgcleanup.c (merge_memattrs): Make static.
      	* genopinit.c (main): Add predict.h to list of includes.
      	* predict.h: Update prototype list to match predict.c.
      	* predict.c (maybe_hot_count_p): Export.
      	(cgraph_edge::maybe_hot_p): Move to cgraph.c.
      	(cgraph_node::optimize_for_size_p): Move to cgraph.h.
      	* cgraph.h (cgraph_node::optimize_for_size_p): Relocate here.
      	* cgraph.c (cgraph_edge::maybe_hot_p): Relocate here.
      	* profile.h: Adjust prototypes.
      	* ifcvt.h: New.  Relocate struct ce_if_block here.
      	* ifcvt.c: Include ifcvt.h.
      
      	* config/frv/frv.c: Include ifcvt.h.
      	* config/frv/frv-protos.h: Add 'struct' to ce_if_block * parameters.
      
      From-SVN: r216559
      Andrew MacLeod committed
    • lra.c (lra): Remove call to recog_init. · 4a7fca26
      gcc/
      	* lra.c (lra): Remove call to recog_init.
      	* config/i386/i386.md (preferred_for_speed): New attribute
      	(*float<SWI48:mode><MODEF:mode>2_sse): Override it instead of
      	"enabled".  Remove check for sched1.
      
      gcc/testsuite/
      	* gcc.target/i386/conversion-2.c: New test.
      
      From-SVN: r216557
      Richard Sandiford committed
    • recog.h (recog_data_d): Remove enabled_alternatives. · 795693c1
      gcc/
      	* recog.h (recog_data_d): Remove enabled_alternatives.
      	* recog.c (extract_insn): Don't set it.
      	* reload.c (find_reloads): Call get_enabled_alternatives.
      
      From-SVN: r216556
      Richard Sandiford committed
    • recog.h (constrain_operands): Add an alternative_mask parameter. · daca1a96
      gcc/
      	* recog.h (constrain_operands): Add an alternative_mask parameter.
      	(constrain_operands_cached): Likewise.
      	(get_preferred_alternatives): Declare new form.
      	* recog.c (get_preferred_alternatives): New bb-taking instance.
      	(constrain_operands): Take the set of available alternatives as
      	a parameter.
      	(check_asm_operands, insn_invalid_p, extract_constrain_insn)
      	(extract_constrain_insn_cached): Update calls to constrain_operands.
      	* caller-save.c (reg_save_code): Likewise.
      	* ira.c (setup_prohibited_mode_move_regs): Likewise.
      	* postreload-gcse.c (eliminate_partially_redundant_load): Likewise.
      	* ree.c (combine_reaching_defs): Likewise.
      	* reload.c (can_reload_into): Likewise.
      	* reload1.c (reload, reload_as_needed, inc_for_reload): Likewise.
      	(gen_reload_chain_without_interm_reg_p, emit_input_reload_insns)
      	(emit_insn_if_valid_for_reload): Likewise.
      	* reorg.c (fill_slots_from_thread): Likewise.
      	* config/i386/i386.c (ix86_attr_length_address_default): Likewise.
      	* config/pa/pa.c (pa_can_combine_p): Likewise.
      	* config/rl78/rl78.c (insn_ok_now): Likewise.
      	* config/sh/sh.md (define_peephole2): Likewise.
      	* final.c (final_scan_insn): Update call to constrain_operands_cached.
      
      From-SVN: r216555
      Richard Sandiford committed
    • md.texi: Document "preferred_for_size" and "preferred_for_speed" attributes. · 9840b2fa
      gcc/
      	* doc/md.texi: Document "preferred_for_size" and "preferred_for_speed"
      	attributes.
      	* genattr.c (main): Handle "preferred_for_size" and
      	"preferred_for_speed" in the same way as "enabled".
      	* recog.h (bool_attr): New enum.
      	(target_recog): Replace x_enabled_alternatives with x_bool_attr_masks.
      	(get_preferred_alternatives, check_bool_attrs): Declare.
      	* recog.c (have_bool_attr, get_bool_attr, get_bool_attr_mask_uncached)
      	(get_bool_attr_mask, get_preferred_alternatives, check_bool_attrs):
      	New functions.
      	(get_enabled_alternatives): Use get_bool_attr_mask.
      	* ira-costs.c (record_reg_classes): Use get_preferred_alternatives
      	instead of recog_data.enabled_alternatives.
      	* ira.c (ira_setup_alts): Likewise.
      	* postreload.c (reload_cse_simplify_operands): Likewise.
      	* config/i386/i386.c (ix86_legitimate_combined_insn): Likewise.
      	* ira-lives.c (preferred_alternatives): New variable.
      	(process_bb_node_lives): Set it.
      	(check_and_make_def_conflict, make_early_clobber_and_input_conflicts)
      	(single_reg_class, ira_implicitly_set_insn_hard_regs): Use it instead
      	of recog_data.enabled_alternatives.
      	* lra-int.h (lra_insn_recog_data): Replace enabled_alternatives
      	to preferred_alternatives.
      	* lra-constraints.c (process_alt_operands): Update accordingly.
      	* lra.c (lra_set_insn_recog_data): Likewise.
      	(lra_update_insn_recog_data): Assert check_bool_attrs.
      
      From-SVN: r216554
      Richard Sandiford committed
    • recog.h (extract_constrain_insn): Declare. · 75d25a02
      gcc/
      	* recog.h (extract_constrain_insn): Declare.
      	* recog.c (extract_constrain_insn): New function.
      	* lra.c (check_rtl): Use it.
      	* postreload.c (reload_cse_simplify_operands): Likewise.
      	* reg-stack.c (check_asm_stack_operands): Likewise.
      	(subst_asm_stack_regs): Likewise.
      	* regcprop.c (copyprop_hardreg_forward_1): Likewise.
      	* regrename.c (build_def_use): Likewise.
      	* sel-sched.c (get_reg_class): Likewise.
      	* config/arm/arm.c (note_invalid_constants): Likewise.
      	* config/s390/predicates.md (execute_operation): Likewise.
      
      From-SVN: r216553
      Richard Sandiford committed
    • New syntax for -fsanitize-recover. · d95a2703
      2014-10-22  Jakub Jelinek  <jakub@redhat.com>
      	    Yury Gribov  <y.gribov@samsung.com>
      
      gcc/
      	* common.opt (flag_sanitize_recover): New variable.
      	(fsanitize-recover): Remove Var/Init, deprecate.
      	(fsanitize-recover=): New option.
      	* doc/invoke.texi (fsanitize-recover): Update docs.
      	* opts.c (finish_options): Use opts->x_flag_sanitize
      	instead of flag_sanitize.  Prohibit -fsanitize-recover
      	for anything besides UBSan.  Formatting.
      	(common_handle_option): Handle OPT_fsanitize_recover_
      	and OPT_fsanitize_recover.  Use opts->x_flag_sanitize
      	instead of flag_sanitize.
      	* asan.c (pass_sanopt::execute): Fix up formatting.
      	* ubsan.c (ubsan_expand_bounds_ifn, ubsan_expand_null_ifn,
      	ubsan_expand_objsize_ifn, ubsan_build_overflow_builtin,
      	instrument_bool_enum_load, ubsan_instrument_float_cast,
      	instrument_nonnull_arg, instrument_nonnull_return): Check
      	bits in flag_sanitize_recover bitmask instead of
      	flag_sanitize_recover as bool flag.
      
      gcc/c-family/
      	* c-ubsan.c (ubsan_instrument_division, ubsan_instrument_shift,
      	ubsan_instrument_vla): Check bits in flag_sanitize_recover bitmask
      	instead of flag_sanitize_recover as bool flag.
      
      gcc/testsuite/
      	* c-c++-common/ubsan/align-1.c: Update cmdline options.
      	* c-c++-common/ubsan/align-3.c: Likewise.
      	* c-c++-common/ubsan/bounds-1.c: Likewise.
      	* c-c++-common/ubsan/div-by-zero-7.c: Likewise.
      	* c-c++-common/ubsan/float-cast-overflow-10.c: Likewise.
      	* c-c++-common/ubsan/float-cast-overflow-7.c: Likewise.
      	* c-c++-common/ubsan/float-cast-overflow-8.c: Likewise.
      	* c-c++-common/ubsan/float-cast-overflow-9.c: Likewise.
      	* c-c++-common/ubsan/nonnull-2.c: Likewise.
      	* c-c++-common/ubsan/nonnull-3.c: Likewise.
      	* c-c++-common/ubsan/object-size-3.c: Likewise.
      	* c-c++-common/ubsan/overflow-1.c: Likewise.
      	* c-c++-common/ubsan/overflow-add-1.c: Likewise.
      	* c-c++-common/ubsan/overflow-add-3.c: Likewise.
      	* c-c++-common/ubsan/overflow-mul-1.c: Likewise.
      	* c-c++-common/ubsan/overflow-mul-3.c: Likewise.
      	* c-c++-common/ubsan/overflow-negate-2.c: Likewise.
      	* c-c++-common/ubsan/overflow-sub-1.c: Likewise.
      	* c-c++-common/ubsan/pr59503.c: Likewise.
      	* c-c++-common/ubsan/pr60613-1.c: Likewise.
      	* c-c++-common/ubsan/save-expr-1.c: Likewise.
      	* c-c++-common/ubsan/shift-3.c: Likewise.
      	* c-c++-common/ubsan/shift-6.c: Likewise.
      	* c-c++-common/ubsan/undefined-1.c: Likewise.
      	* c-c++-common/ubsan/vla-2.c: Likewise.
      	* c-c++-common/ubsan/vla-3.c: Likewise.
      	* c-c++-common/ubsan/vla-4.c: Likewise.
      	* g++.dg/ubsan/cxx11-shift-1.C: Likewise.
      	* g++.dg/ubsan/return-2.C: Likewise.
      	* c-c++-common/ubsan/recovery-1.c: New test.
      	* c-c++-common/ubsan/recovery-2.c: New test.
      	* c-c++-common/ubsan/recovery-3.c: New test.
      	* c-c++-common/ubsan/recovery-common.inc: New file.
      
      Co-Authored-By: Yury Gribov <y.gribov@samsung.com>
      
      From-SVN: r216552
      Jakub Jelinek committed
    • lib1funcs.S (__do_global_dtors): Fix wrong code introduced with 2014-10-21 trunk r216525. · 18a3415e
      	* config/avr/lib1funcs.S (__do_global_dtors): Fix wrong code
      	introduced with 2014-10-21 trunk r216525.
      
      From-SVN: r216550
      Georg-Johann Lay committed
    • [ARM] Add missing '\' in macro define. · 8584f1c4
        gcc/
          * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Add missing '\'.
      
      From-SVN: r216548
      Jiong Wang committed
    • [ARM] Add ACLE 2.0 predefined marco __ARM_FEATURE_IDIV · 34f30f0f
      2014-10-22  Renlin Li <renlin.li@arm.com>
      
        gcc/
          * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Define
          __ARM_FEATURE_IDIV__.
      
      From-SVN: r216547
      Renlin Li committed
    • Makefile.in (s-match): Adjust dependencies to only catch match.pd. · 1d9ce5dd
      2014-10-22  Richard Biener  <rguenther@suse.de>
      
      	* Makefile.in (s-match): Adjust dependencies to only catch
      	match.pd.
      
      From-SVN: r216545
      Richard Biener committed
    • [AArch64] Update target testcases for gnu11 · ecad7681
        gcc/testsuite/
          * gcc.target/aarch64/pic-constantpool1.c: Add explicit declaration.
          * gcc.target/aarch64/pic-symrefplus.c: Likewise.
          * gcc.target/aarch64/reload-valid-spoff.c: Likewise.
          * gcc.target/aarch64/vect.x: Likewise.
          * gcc.target/aarch64/vect-ld1r.x: Add return type.
          * gcc.target/aarch64/vect-fmax-fmin.c: Likewise.
          * gcc.target/aarch64/vect-fp.c: Likewise.
      
      From-SVN: r216544
      Jiong Wang committed
    • [Dejagnu] fix gcc-dg-prune glitch when filtering "relocation truncation" error · 188979ac
        gcc/testsuite/
          * lib/compat.exp (compat-run): Remove "unresolved".
          * lib/gcc-defs.exp (${tools}_check_compile): Update code logic for
          unsupported testcase.
      
      From-SVN: r216543
      Jiong Wang committed
    • Makefile.in (OBJS): Add gimple-match.o and generic-match.o. · 3d2cf79f
      2014-10-22  Richard Biener  <rguenther@suse.de>
      	Prathamesh Kulkarni  <bilbotheelffriend@gmail.com>
      
      	* Makefile.in (OBJS): Add gimple-match.o and generic-match.o.
      	(MOSTLYCLEANFILES): Add gimple-match.c and generic-match.c.
      	(gimple-match.c): Generate by triggering s-match.
      	(generic-match.c): Likewise.
      	(s-match): Rule to build gimple-match.c and generic-match.c
      	by running the genmatch generator program.
      	(build/hash-table.o): Dependencies to build hash-table.c for the host.
      	(build/genmatch.o): Dependencies to build genmatch.
      	(genprog): Add match.
      	(build/genmatch): Likewise.
      	(TEXI_GCCINT_FILES): Add match-and-simplify.texi.
      	* generic-match-head.c: New file.
      	* gimple-match-head.c: Likewise.
      	* gimple-match.h: Likewise.
      	* genmatch.c: Likewise.
      	* match.pd: Likewise.
      	* builtins.h (fold_builtin_n): Export.
      	* builtins.c (fold_builtin_n): Likewise.
      	* gimple-fold.h (gimple_build): Declare various overloads.
      	(gimple_simplify): Likewise.
      	(gimple_convert): Re-implement in terms of gimple_build.
      	* gimple-fold.c (gimple_convert): Remove.
      	(gimple_build): New functions.
      
      	* doc/match-and-simplify.texi: New file.
      	* doc/gccint.texi: Add menu item Match and Simplify and include
      	match-and-simplify.texi.
      
      Co-Authored-By: Prathamesh Kulkarni <bilbotheelffriend@gmail.com>
      
      From-SVN: r216542
      Richard Biener committed
    • re PR target/63594 (ICE: in ix86_vector_duplicate_value, at… · 7d9f1cd2
      re PR target/63594 (ICE: in ix86_vector_duplicate_value, at config/i386/i386.c:39831 with -mavx512f)
      
      	PR target/63594
      	* config/i386/i386.c (ix86_expand_vector_init_duplicate): For
      	V{8HI,16QI,16HI,32QI}mode call ix86_vector_duplicate_value
      	even for just TARGET_AVX2, not only for
      	TARGET_AVX512VL && TARGET_AVX512BW.  For V{32HI,64QI}mode,
      	call ix86_vector_duplicate_value only if TARGET_AVX512BW,
      	otherwise build it using concatenation of 256-bit
      	broadcast.
      	* config/i386/sse.md (AVX_VEC_DUP_MODE): Moved after
      	avx512 broadcast patterns.
      	(vec_dup<mode>): Likewise.  For avx2 use
      	v<sseintprefix>broadcast<bcstscalarsuff> instead of
      	vbroadcast<ssescalarmodesuffix>.
      	(AVX2_VEC_DUP_MODE): New mode iterator.
      	(*vec_dup<mode>): New TARGET_AVX2 define_insn with
      	AVX2_VEC_DUP_MODE iterator, add a splitter for that.
      
      	* gcc.dg/pr63594-1.c: New test.
      	* gcc.dg/pr63594-2.c: New test.
      	* gcc.target/i386/sse2-pr63594-1.c: New test.
      	* gcc.target/i386/sse2-pr63594-2.c: New test.
      	* gcc.target/i386/avx-pr63594-1.c: New test.
      	* gcc.target/i386/avx-pr63594-2.c: New test.
      	* gcc.target/i386/avx2-pr63594-1.c: New test.
      	* gcc.target/i386/avx2-pr63594-2.c: New test.
      	* gcc.target/i386/avx512f-pr63594-1.c: New test.
      	* gcc.target/i386/avx512f-pr63594-2.c: New test.
      	* gcc.target/i386/avx512f-vec-init.c: Adjust expected
      	insn counts.
      
      From-SVN: r216541
      Jakub Jelinek committed
    • re PR target/63542 (My build log is full of "non-delegitimized UNSPEC UNSPEC_GOT… · 793dbadc
      re PR target/63542 (My build log is full of "non-delegitimized UNSPEC UNSPEC_GOT (0) found in variable location")
      
      	PR target/63542
      	* config/i386/i386.c (ix86_pic_register_p): Also return
      	true if x is a hard register with ORIGINAL_REGNO equal to
      	pic_offset_table_rtx pseudo REGNO.
      	(ix86_delegitimize_address): For ix86_use_pseudo_pic_reg ()
      	after reload, subtract GOT_SYMBOL_NAME symbol if possible.
      
      	* gcc.target/i386/pr63542-1.c: New test.
      	* gcc.target/i386/pr63542-2.c: New test.
      
      From-SVN: r216540
      Jakub Jelinek committed
    • gengtype.h (obstack_chunk_alloc, [...]): Remove cast. · 19a9ba64
      gcc/
      	* gengtype.h (obstack_chunk_alloc, obstack_chunk_free): Remove cast.
      	* coretypes.h (obstack_chunk_alloc, obstack_chunk_free): Likewise.
      	(gcc_obstack_init): Use obstack_specify_allocation in place of
      	_obstack_begin.
      	* genautomata.c (next_sep_el): Cast result of obstack_base to (char *).
      	(regexp_representation): Likewise.
      	* godump.c (go_output_type): Likewise.
      gcc/java/
      	* mangle.c (finish_mangling): Cast result of obstack_base to (char *).
      	* typeck.c (build_java_argument_signature): Likewise.
      	(build_java_signature): Likewise.
      gcc/objc/
      	* objc-encoding.c (encode_array): Cast result of obstack_base.
      	(encode_type): Likewise.
      libcpp/
      	* symtab.c (ht_create): Use obstack_specify_allocation in place of
      	_obstack_begin.
      	* files.c (_cpp_init_files): Likewise.
      	* init.c (cpp_create_reader): Likewise.
      	* identifiers.c (_cpp_init_hashtable): Likewise.
      
      From-SVN: r216539
      Alan Modra committed
    • Daily bump. · 1fb38e45
      From-SVN: r216538
      GCC Administrator committed
  2. 21 Oct, 2014 19 commits
    • config.gcc: Remove MASK_JUMP_IN_DELAY from target_cpu_default2. · f4000c0b
      	* config.gcc: Remove MASK_JUMP_IN_DELAY from target_cpu_default2.
      	* config/pa/pa.h (TARGET_DEFAULT): Remove MASK_JUMP_IN_DELAY.
      	* config/pa/pa.opt (mjump-in-delay): Ignore option.  Update comment.
      
      From-SVN: r216530
      John David Anglin committed
    • invoke.texi (pedantic-errors): Explain better. · 0e1bc4d5
      2014-10-21 Manuel López-Ibáñez  <manu@gcc.gnu.org>
      
      	* doc/invoke.texi (pedantic-errors): Explain better.
      
      From-SVN: r216528
      Manuel López-Ibáñez committed
    • avr-c.c (avr_cpu_cpp_builtins): Don't define __MEMX for avrtiny. · c1dd9790
      gcc:
      
      2014-10-21  Joern Rennecke  <joern.rennecke@embecosm.com>
      	    Vidya Praveen <vidya.praveen@atmel.com>
      	    Praveen Kumar Kaushik <Praveen_Kumar.Kaushik@atmel.com>
      	    Senthil Kumar Selvaraj <Senthil_Kumar.Selvaraj@atmel.com>
      	    Pitchumani Sivanupandi <Pitchumani.S@atmel.com>
      
      	* config/avr/avr-c.c (avr_cpu_cpp_builtins): Don't define
      	__MEMX for avrtiny.
      	* config/avr/avr.c (avr_insert_attributes): Reject __memx for avrtiny.
      	(avr_nonconst_pointer_addrspace): Likewise.
      	* config/avr/avr.h (AVR_HAVE_LPM): Define.
      
      	Added AVRTINY architecture to avr target.
      	* config/avr/avr-arch.h (avr_arch): Added AVRTINY architecture.
      	(base_arch_s): member added for AVRTINY architecture.
      	* config/avr/avr.c: Added TINY_ADIW, TINY_SBIW macros as AVRTINY
      	alternate for adiw/sbiw instructions. Added AVR_TMP_REGNO and
      	AVR_ZERO_REGNO macros for tmp and zero registers. Replaced TMP_REGNO
      	and ZERO_REGNO occurrences by AVR_TMP_REGNO and AVR_ZERO_REGNO
      	respectively. LAST_CALLEE_SAVED_REG macro added for the last register
      	in callee saved register list.
      	(avr_option_override): CCP address updated for AVRTINY.
      	(avr_init_expanders): tmp and zero rtx initialized as per arch.
      	Reset avr_have_dimode if AVRTINY.
      	(sequent_regs_live): Use LAST_CALLEE_SAVED_REG instead magic number.
      	(emit_push_sfr): Use AVR_TMP_REGNO for tmp register number.
      	(avr_prologue_setup_frame): Don't minimize prologue if AVRTINY.
      	Use LAST_CALLEE_SAVED_REG to refer last callee saved register.
      	(expand_epilogue): Likewise.
      	(avr_print_operand): Print CCP address in case of AVRTINY also.
      	<TBD>bad address
      	(function_arg_regno_p): Check different register list for arguments
      	if AVRTINY.
      	(init_cumulative_args): Check for AVRTINY to update number of argument
      	registers.
      	(tiny_valid_direct_memory_access_range): New function. Return false if
      	direct memory access range is not in accepted range for AVRTINY.
      	(avr_out_movqi_r_mr_reg_disp_tiny): New function to handle register
      	indirect load (with displacement) for AVRTINY.
      	(out_movqi_r_mr): Updated instruction length for AVRTINY. Call
      	avr_out_movqi_r_mr_reg_disp_tiny for load from reg+displacement.
      	(avr_out_movhi_r_mr_reg_no_disp_tiny): New function to handle register
      	indirect load (no displacement) for AVRTINY.
      	(avr_out_movhi_r_mr_reg_disp_tiny): New function to handle register
      	indirect load (with displacement) for AVRTINY.
      	(avr_out_movhi_r_mr_pre_dec_tiny): New function to handle register
      	indirect load for pre-decrement address.
      	(out_movhi_r_mr): In case of AVRTINY, call tiny register indirect load
      	functions. Update instruction length for AVRTINY.
      	(avr_out_movsi_r_mr_reg_no_disp_tiny): New function. Likewise, for
      	SImode.
      	(avr_out_movsi_r_mr_reg_disp_tiny): New function. Likewise, for SImode.
      	(out_movsi_r_mr): Likewise, for SImode.
      	(avr_out_movsi_mr_r_reg_no_disp_tiny): New function to handle register
      	indirect store (no displacement) for AVRTINY.
      	(avr_out_movsi_mr_r_reg_disp_tiny): New function to handle register
      	indirect store (with displacement) for AVRTINY.
      	(out_movsi_mr_r): Emit out insn for IO address store. Update store
      	instruction's size for AVRTINY. For AVRTINY, call tiny SImode indirect
      	store functions.
      	(avr_out_load_psi_reg_no_disp_tiny): New function to handle register
      	indirect load (no displacement) for PSImode in AVRTINY.
      	(avr_out_load_psi_reg_disp_tiny): New function to handle register
      	indirect load (with displacement) for PSImode in AVRTINY.
      	(avr_out_load_psi): Call PSImode register indirect load functions for
      	AVRTINY. Update instruction length for AVRTINY.
      	(avr_out_store_psi_reg_no_disp_tiny): New function to handle register
      	indirect store (no displacement) for PSImode in AVRTINY.
      	(avr_out_store_psi_reg_disp_tiny): New function to handle register
      	indirect store (with displacement) for PSImode in AVRTINY.
      	(avr_out_store_psi): Update instruction length for AVRTINY. Call tiny
      	register indirect store functions for AVRTINY.
      	(avr_out_movqi_mr_r_reg_disp_tiny): New function to handle QImode
      	register indirect store (with displacement) for AVRTINY.
      	(out_movqi_mr_r): Update instruction length for AVRTINY. Call tiny
      	register indirect store function for QImode in AVRTINY.
      	(avr_out_movhi_mr_r_xmega): Update instruction length for AVRTINY.
      	(avr_out_movhi_mr_r_reg_no_disp_tiny): New function to handle register
      	indirect store (no displacement) for HImode in AVRTINY.
      	(avr_out_movhi_mr_r_reg_disp_tiny): New function to handle register
      	indirect store (with displacement) for HImode in AVRTINY.
      	(avr_out_movhi_mr_r_post_inc_tiny): New function to handle register
      	indirect store for post-increment address in HImode.
      	(out_movhi_mr_r): Update instruction length for AVRTINY. Call tiny
      	register indirect store function for HImode in AVRTINY.
      	(avr_out_compare): Use TINY_SBIW/ TINY_ADIW in place of sbiw/adiw
      	in case of AVRTINY.
      	(order_regs_for_local_alloc): Updated register allocation order for
      	AVRTINY.
      	(avr_conditional_register_usage): New function. It is a target hook
      	(TARGET_CONDITIONAL_REGISTER_USAGE) function which updates fixed, call
      	used registers list and register allocation order for AVRTINY.
      	(avr_return_in_memory): Update return value size for AVRTINY.
      	* config/avr/avr-c.c (avr_cpu_cpp_builtins): Added builtin macros
      	for AVRTINY arch and tiny program memory base address.
      	* config/avr/avr-devices.c (avr_arch_types): Added AVRTINY arch.
      	(avr_texinfo): Added description for AVRTINY arch.
      	* config/avr/avr.h: Added macro to identify AVRTINY arch. Updated
      	STATIC_CHAIN_REGNUM for AVRTINY.
      	* config/avr/avr-mcus.def: Added AVRTINY arch devices.
      	* config/avr/avr.md: Added constants for tmp/ zero registers in
      	AVRTINY. Attributes for AVRTINY added.
      	(mov<mode>): Move src/ dest address to register if it is not in AVRTINY
      	memory access range.
      	(mov<mode>_insn): Avoid QImode direct load for AVRTINY if address not
      	in AVRTINY memory access range.
      	(*mov<mode>): Likewise for HImode and SImode.
      	(*movsf): Likewise for SFmode.
      	(delay_cycles_2): Updated instructions to be emitted as AVRTINY does
      	not have sbiw.
      	* config/avr/avr-protos.h: Added function prototype for
      	tiny_valid_direct_memory_access_range.
      	* config/avr/avr-tables.opt: Regenerate.
      	* gcc/config/avr/t-multilib: Regenerate.
      	* doc/avr-mmcu.texi: Regenerate.
      
      gcc/testsuite:
      
      2014-10-21  Joern Rennecke  <joern.rennecke@embecosm.com>
      
      	* gcc.target/avr/tiny-memx.c: New test.
      
      	* gcc.target/avr/tiny-caller-save.c: New test.
      
      libgcc:
      
      2014-10-21  Joern Rennecke  <joern.rennecke@embecosm.com>
      	    Vidya Praveen <vidya.praveen@atmel.com>
      	    Praveen Kumar Kaushik <Praveen_Kumar.Kaushik@atmel.com>
      	    Senthil Kumar Selvaraj <Senthil_Kumar.Selvaraj@atmel.com>
      	    Pitchumani Sivanupandi <Pitchumani.S@atmel.com>
      
      	* config/avr/lib1funcs.S (__do_global_dtors): Go back to descending
      	order.
      
      	Updated library functions for AVRTINY arch.
      	* config/avr/lib1funcs.S: Updated zero/tmp regs for AVRTINY.
      	Replaced occurrences of r0/r1 with tmp/zero reg macros.
      	Added wsubi/ wadi macros that expands conditionally as sbiw/ adiw
      	or AVRTINY equivalent. Replaced occurrences of sbiw/adiw with
      	wsubi/wadi macors.
      	(__mulsi3_helper): Update stack, preserve callee saved regs and
      	argument from stack. Restore callee save registers.
      	(__mulpsi3): Likewise.
      	(__muldi3, __udivmodsi4, __divmodsi4, __negsi2, __umoddi3, __udivmod64,
      	__moddi3, __adddi3, __adddi3_s8, __subdi3, __cmpdi2, __cmpdi2_s8,
      	__negdi2, __prologue_saves__, __epilogue_restores__): Excluded for 
      	AVRTINY.
      	(__tablejump2__): Added lpm equivalent instructions for AVRTINY.
      	(__do_copy_data): Added new definition for AVRTINY.
      	(__do_clear_bss): Replace r17 by r18 to preserve zero reg for AVRTINY.
      	(__load_3, __load_4, __xload_1, __xload_2, __xload_3,
      	__xload_4, __movmemx_qi, __movmemx_hi): Excluded for AVRTINY.
      	* config/avr/lib1funcs-fixed.S: Replaced occurrences of r0/r1 with
      	tmp/zero reg macros. Replaced occurrences of sbiw/adiw with wsubi/wadi
      	macors.
      	   * config/avr/t-avr (LIB1ASMFUNCS): Remove unsupported functions for
      	AVRTINY.
      
      	Fix broken long multiplication on tiny arch.         
      
      
      Co-Authored-By: Pitchumani Sivanupandi <pitchumani.s@atmel.com>
      Co-Authored-By: Praveen Kumar Kaushik <Praveen_Kumar.Kaushik@atmel.com>
      Co-Authored-By: Senthil Kumar Selvaraj <Senthil_Kumar.Selvaraj@atmel.com>
      Co-Authored-By: Vidya Praveen <vidya.praveen@atmel.com>
      
      From-SVN: r216525
      Joern Rennecke committed
    • invoke.texi (AARCH64/mtune): Document thunderx as an available option also. · d1bcc29f
      2014-10-21  Andrew Pinski  <apinski@cavium.com>
      
      	* doc/invoke.texi (AARCH64/mtune): Document thunderx as an
      	available option also.
      	* config/aarch64/aarch64-cost-tables.h: New file.
      	* config/aarch64/aarch64-cores.def (thunderx): New core.
      	* config/aarch64/aarch64-tune.md: Regenerate.
      	* config/aarch64/aarch64.c: Include aarch64-cost-tables.h instead
      	of config/arm/aarch-cost-tables.h.
      	(thunderx_regmove_cost): New variable.
      	(thunderx_tunings): New variable.
      
      From-SVN: r216524
      Andrew Pinski committed
    • Add AutoFDO. · be3c16c4
      gcc/ChangeLog:
      
      2014-10-21  Dehao Chen  <dehao@google.com>
      
      	* auto-profile.c: New file.
      	* auto-profile.h: New file.
      	* basic-block.h (maybe_hot_count_p): New export func.
      	(add_working_set): New export func.
      	* gcov-io.h (GCOV_TAG_AFDO_FILE_NAMES): New tag.
      	(GCOV_TAG_AFDO_FUNCTION): Likewise.
      	(GCOV_TAG_AFDO_WORKING_SET): Likewise.
      	* opts.c (enable_fdo_optimizations): New func.
      	(common_handle_option): Handle -fauto-profile flag.
      	* ipa-inline.c (want_early_inline_function_p): Iterative-einline.
      	(class pass_early_inline): Export early_inliner.
      	(early_inliner): Likewise.
      	(pass_early_inline::execute): Likewise.
      	* ipa-inline.h (early_inliner): Likewise.
      	* predict.c (maybe_hot_count_p): New export func.
      	(counts_to_freqs): AutoFDO logic.
      	(rebuild_frequencies): Likewise.
      	* tree-profile.c (pass_ipa_tree_profile::gate): Likewise.
      	* profile.c (add_working_set): New func.
      	* Makefile.in (auto-profile.o): New object file.
      	* passes.def (pass_ipa_auto_profile): New pass.
      	* tree-ssa-live.c (remove_unused_scope_block_p): AutoFDO logic.
      	* tree-pass.h (make_pass_ipa_auto_profile): New pass.
      	* toplev.c (compile_file): AutoFDO logic.
      	* doc/invoke.texi (-fauto-profile): New doc.
      	* coverage.c (coverage_init): AutoFDO logic.
      	* common.opt (-fauto-profile): New flag.
      	* timevar.def (TV_IPA_AUTOFDO): New tag.
      	* value-prof.c (gimple_alloc_histogram_value): New export func.
      	(check_ic_target): Likewise.
      	* value-prof.h (gimple_alloc_histogram_value): Likewise.
      	(check_ic_target): Likewise.
      
      From-SVN: r216523
      Dehao Chen committed
    • State cleanups from jit branch · 3edf64aa
      gcc/ChangeLog:
      	* cgraph.c (cgraph_c_finalize): New function.
      	* cgraph.h (cgraph_c_finalize): New prototype.
      	(cgraphunit_c_finalize): New prototype.
      	* cgraphunit.c (first_analyzed): Move from analyze_functions
      	to file-scope.
      	(first_analyzed_var): Likewise.
      	(analyze_functions): Move static variables into file-scope.
      	(cgraphunit_c_finalize): New function.
      	* diagnostic.c (diagnostic_finish): Free the memory for
      	context->classify_diagnostic and context->printer, running the
      	destructor for the latter.
      	(bt_stop): Use toplev::main.
      	* dwarf2out.c (dwarf2out_finalize): New function.
      	* dwarf2out.h (dwarf2out_c_finalize): New prototype.
      	* gcse.c (gcse_c_finalize): New function.
      	* gcse.h (gcse_c_finalize): New prototype.
      	* ggc-page.c (init_ggc): Make idempotent.
      	* input.c (input_location): Initialize to UNKNOWN_LOCATION.
      	* ipa-cp.c (ipa_cp_c_finalize): New function.
      	* ipa-prop.h (ipa_cp_c_finalize): New prototype.
      	* ipa-pure-const.c (function_insertion_hook_holder): Move to be
      	a field of class pass_ipa_pure_const.
      	(node_duplication_hook_holder): Likewise.
      	(node_removal_hook_holder): Likewise.
      	(register_hooks): Convert to method...
      	(pass_ipa_pure_const::register_hooks): ...here, converting
      	static variable init_p into...
      	(pass_ipa_pure_const::init_p): ...new field.
      	(pure_const_generate_summary): Update invocation of
      	register_hooks to invoke as a method of current_pass.
      	(pure_const_read_summary): Likewise.
      	(propagate): Convert to...
      	(pass_ipa_pure_const::execute): ...method.
      	* ipa-reference.c (ipa_init): Move static bool init_p from here
      	to...
      	(ipa_init_p): New file-scope variable, so that it can be reset
      	when repeatedly invoking the compiler within one process by...
      	(ipa_reference_c_finalize): New function.
      	* ipa-reference.h (ipa_reference_c_finalize): New.
      	* main.c (main): Replace invocation of toplev_main with
      	construction of a toplev instance, and call its "main" method.
      	* params.c (global_init_params): Add an assert that
      	params_finished is false.
      	(params_c_finalize): New.
      	* params.h (params_c_finalize): New.
      	* passes.c (execute_ipa_summary_passes): Set "current_pass" before
      	invoking generate_summary, for the benefit of pass_ipa_pure_const.
      	(ipa_write_summaries_2): Assign "pass" to "current_pass" global
      	before calling write_summary hook.
      	(ipa_write_optimization_summaries_1): Likewise when calling
      	write_optimization_summary hook.
      	(ipa_read_summaries_1): Likewise for read_summary hook.
      	(ipa_read_optimization_summaries_1): Likewise for
      	read_optimization_summary hook.
      	(execute_ipa_stmt_fixups): Likewise.
      	* stringpool.c (init_stringpool): Clean up if we're called more
      	than once.
      	* timevar.c (timevar_init): Ignore repeated calls.
      	* toplev.c: Include "dwarf2out.h", "ipa-reference.h", "gcse.h",
      	"ipa-prop.h".
      	(general_init): Reset "input_location" to UNKNOWN_LOCATION.
      	(initialize_rtl): Move static local "initialized_once"
      	into file scope, and rename to...
      	(rtl_initialized): New variable.
      	(do_compile): Move timevar initialization from here to
      	toplev::start_timevars.
      	(toplev::toplev, toplev::~toplev, toplev::start_timevars,
      	toplev::finalize): New functions.
      	(toplev_main): Rename to...
      	(toplev::main): ...this.
      	* toplev.h (class toplev): New class.
      
      From-SVN: r216522
      David Malcolm committed
    • loop-doloop.c: Include loop-unroll.h. · 50684f95
      2014-10-21  Andrew MacLeod  <amacleod@redhat.com>
      
              * loop-doloop.c: Include loop-unroll.h.
      
      From-SVN: r216521
      Andrew MacLeod committed
    • prog_bar.cc: Qualify size_t. · b48d5599
              * testsuite/util/io/prog_bar.cc: Qualify size_t.
              * testsuite/util/io/prog_bar.hpp: Likewise.
              * testsuite/util/io/verified_cmd_line_input.hpp: Likewise.
      
      From-SVN: r216520
      Joern Rennecke committed
    • compiler: Remove obsolete hidden_fields_are_ok code. · 5900d755
      The language used to forbid assigning structs with hidden
      fields, but that was changed before the Go 1 release.  At the
      time the change was experimental, so I left the old code in
      the compiler.  At this point it's clearly not experimental, so
      this removes the unused code.
      
      From-SVN: r216519
      Ian Lance Taylor committed
    • cfg.h: New. · dd637013
      2014-10-21  Andrew MacLeod  <amacleod@redhat.com>
      
      
      	* cfg.h: New.  Header file for cfg.c.
      	* cfganal.h: New.  Header file for cfganal.c.
      	* lcm.h: New.  Header file for lcm.c.
      	* loop-unroll.h: New.  Header file for loop-unroll.h.
      	* cfgloop.h: (unroll_loops): Remove prototype.
      	* basic-block.h: Move prototypes and structs to new header files.
      	Include cfg.h, cfganal.h, and lcm.h.
      	* loop-init.c: Include loop-unroll.h.
      	* loop-unroll.c: (referenced_in_one_insn_in_loop_p): Make static.
      	* modulo-sched.c: Include loop-unroll.h.
      
      From-SVN: r216518
      Andrew MacLeod committed
    • [ARM] Update testcases for GNU11 · eb8a3cca
      2014-10-21  Jiong Wang  <jiong.wang@arm.com>
      
      	* gcc.target/arm/20031108-1.c (Proc_7): Add explicit declaration.
      	(Proc_1): Add return type.
      	* gcc.target/arm/cold-lc.c (show_stack): Add explict declaration.
      	* gcc.target/arm/neon-modes-2.c (foo): Likewise.
      	* gcc.target/arm/pr43920-2.c (lseek): Likewise.
      	* gcc.target/arm/pr44788.c (foo): Likewise.
      	* gcc.target/arm/pr55642.c (abs): Likewise.
      	* gcc.target/arm/pr58784.c (f): Likewise.
      	* gcc.target/arm/pr60650.c (foo1, foo2): Likewise.
      	* gcc.target/arm/vfp-ldmdbs.c (bar): Likewise.
      	* gcc.target/arm/vfp-ldmias.c (bar): Likewise.
      	* gcc.target/arm/pr60650-2.c (fn1, fn2): Add return type and add type
      	for local variables.
      	* lib/target-supports.exp
      	(check_effective_target_arm_crypto_ok_nocache): Add declaration for
      	vaeseq_u8.
      	(check_effective_target_arm_neon_fp16_ok_nocache): Add declaration for
      	vcvt_f16_f32.
      	(check_effective_target_arm_neonv2_ok_nocache): Add declaration for
      	vfma_f32.
      	* gcc.target/arm/pr51968.c: Add -Wno-implicit-function-declaration.
      
      From-SVN: r216517
      Jiong Wang committed
    • parser.c (cp_parser_unary_expression): Add default arguments. · 3ec0922b
      2014-10-21  Paolo Carlini  <paolo.carlini@oracle.com>
      
      	* parser.c (cp_parser_unary_expression): Add default arguments.
      	(cp_parser_cast_expression, cp_parser_sizeof_operand,
      	cp_parser_omp_atomic): Adjust.
      
      From-SVN: r216516
      Paolo Carlini committed
    • Implement more Library Fundamentals v1 variable templates. · 6b17203a
      2014-10-21  Ville Voutilainen  <ville.voutilainen@gmail.com>
      
      	Implement more Library Fundamentals v1 variable templates.
      	* include/Makefile.am: Add ratio, chrono and system_error.
      	* include/Makefile.in: Regenerate.
      	* include/experimental/chrono: New.
      	* include/experimental/ratio: Likewise.
      	* include/experimental/system_error: Likewise.
      	* include/experimental/tuple (tuple_size_v): Likewise.
      	* testsuite/experimental/chrono/value.cc: Likewise.
      	* testsuite/experimental/ratio/value.cc: Likewise.
      	* testsuite/experimental/system_error/value.cc: Likewise.
      	* testsuite/experimental/tuple/tuple_size.cc: Likewise.
      
      From-SVN: r216513
      Ville Voutilainen committed
    • * gcc.dg/bf-spl1.c (main): Fix implicit int. · 803f46c9
      From-SVN: r216512
      Andreas Schwab committed
    • tree-ssa-math-opts.c (find_bswap_or_nop_1): Fix creation of MARKER_BYTE_UNKNOWN… · e4d2f1db
      tree-ssa-math-opts.c (find_bswap_or_nop_1): Fix creation of MARKER_BYTE_UNKNOWN markers when handling casts.
      
      2014-10-21  Thomas Preud'homme  <thomas.preudhomme@arm.com>
      
          gcc/
          * tree-ssa-math-opts.c (find_bswap_or_nop_1): Fix creation of
          MARKER_BYTE_UNKNOWN markers when handling casts.
      
          gcc/testsuite/
          * gcc.dg/optimize-bswaphi-1.c: New bswap pass test.
      
      From-SVN: r216511
      Thomas Preud'homme committed
    • tree-ssa-phiopt.c (value_replacement): Properly verify we are the non-singleton PHI. · 1a6230a8
      2014-10-21  Richard Biener  <rguenther@suse.de>
      
      	* tree-ssa-phiopt.c (value_replacement): Properly verify we
      	are the non-singleton PHI.
      
      From-SVN: r216510
      Richard Biener committed
    • devirt-42.C: Fix dump scanning routines. · 1994d041
      2014-10-21  Richard Biener  <rguenther@suse.de>
      
      	* g++.dg/ipa/devirt-42.C: Fix dump scanning routines.
      	* g++.dg/ipa/devirt-46.C: Likewise.
      	* g++.dg/ipa/devirt-47.C: Likewise.
      	* g++.dg/tree-prof/pr35545.C: Likewise.
      
      From-SVN: r216509
      Richard Biener committed
    • re PR tree-optimization/63563 (ICE: in vectorizable_store, at tree-vect-stmts.c:5106 with -mavx2) · 61331c48
      	PR tree-optimization/63563
      	* tree-vect-data-refs.c (vect_analyze_data_ref_accesses): Bail out
      	if either dra or drb stmts are not normal loads/stores.
      
      	* gcc.target/i386/pr63563.c: New test.
      
      From-SVN: r216507
      Jakub Jelinek committed
    • Fix date of last ChangeLog entry. · 21d30bab
      From-SVN: r216506
      Jonathan Wakely committed