1. 22 Oct, 2014 23 commits
    • re PR lto/63603 (Linking with -fno-lto still invokes LTO) · d8857ac6
      2014-10-22  Richard Biener  <rguenther@suse.de>
                  Tobias Burnus <burnus@net-b.de>
      
              PR lto/63603
              * gcc.c (LINK_COMMAND_SPEC): Add %{fno-lto}.
      
      
      Co-Authored-By: Tobias Burnus <burnus@net-b.de>
      
      From-SVN: r216566
      Richard Biener committed
    • Do not build soft-fp code at all for powerpc64-linux-gnu. · 693b297b
      When I added support for using soft-fp in libgcc
      <https://gcc.gnu.org/ml/gcc-patches/2006-03/msg00689.html>, libgcc
      configuration was still done in the gcc/ directory, meaning that the
      variables set in makefile fragments could not depend on the multilib
      being built.  Thus, building the soft-fp code for powerpc64-linux-gnu
      was disabled in the same way as had been done with fp-bit: the code
      was built, but with #ifndef __powerpc64__ wrappers around it so that
      the resulting objects were empty.
      
      Now that libgcc configuration is done in the toplevel libgcc
      directory, such uses of softfp_wrap_start / softfp_wrap_end are better
      replaced by configure-time conditionals that determine whether to use
      soft-fp for a given multilib.  This patch does so for
      powerpc*-*-linux*.  The same would appear to apply to
      powerpc*-*-freebsd* (using rs6000/t-freebsd64), but I have not made
      any changes there.  t-ppc64-fp is also used by AIX targets, but they
      don't use soft-fp anyway so the changes are of no consequence to them.
      
      The same principle of replacing softfp_wrap_start / softfp_wrap_end
      with configure-time conditionals also applies to
      softfp_exclude_libgcc2, which was intended for cases where soft-fp is
      being used on hard-float multilibs and so it is desirable on those
      multilibs for a few functions to come from libgcc2.c rather than
      soft-fp (but the soft-fp versions would be more efficient on
      soft-float multilibs).  Now we have hardfp.c and t-hardfp, those are
      better to use in that case, to minimize the size of the bulk of the
      functions that are only present for ABI compatibility and should never
      be called by newly compiled code.
      
      I intend followup patches to switch 32-bit hard-float multilibs to use
      t-hardfp as far as possible (for all non-libgcc2.c operations for
      classic hard float; for all except __unord* for e500v2; for all SFmode
      operations except __unordsf2 for e500v1).  After that will come making
      the soft-fp operations, in the remaining cases for which they are
      built because they are actually needed for code compiled by current
      GCC, into compat symbols when building for glibc 2.19 or later, so
      that the glibc versions (with exception and rounding mode support) get
      used instead (2.19 or later is needed for all the functions to be
      exported from glibc as non-compat symbols).  In turn, that is required
      before implementing TARGET_ATOMIC_ASSIGN_EXPAND_FENV for soft-float
      and e500, as that can only be properly effective when GCC-compiled
      code is actually interoperating correctly with the exception and
      rounding mode state used by <fenv.h> functions.
      
      Tested with no regressions with cross to powerpc64-linux-gnu (in
      addition, verified that stripped libgcc_s.so.1 is identical before and
      after the patch).
      
      	* config.host (powerpc*-*-linux*): Only use soft-fp for 32-bit
      	configurations.
      	* config/rs6000/t-ppc64-fp (softfp_wrap_start, softfp_wrap_end):
      	Remove variables.
      
      From-SVN: r216564
      Joseph Myers committed
    • 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 17 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