1. 20 Apr, 2015 5 commits
  2. 19 Apr, 2015 3 commits
  3. 18 Apr, 2015 3 commits
    • pr32627.f03 (strptr): Change size to match the number of non-nul characters. · ee7df531
      	* gfortran.dg/pr32627.f03 (strptr): Change size to match the number
      	of non-nul characters.
      	* gfortran.dg/substr_6.f90: Make the NUL character visible on stdout
      
      From-SVN: r222214
      Martin Sebor committed
    • remove need for store_values_directly · 67f58944
      This switches all hash_table users to use the layout that stores
      elements of type value_type in the hash table instead of the one storing
      value_type *.  Since it becomes unused support for the value_type *
      layout is removed.
      
      gcc/
      
      	* hash-table.h: Remove version of hash_table that stored value_type *.
      	* asan.c, attribs.c, bitmap.c, cfg.c, cgraph.h, config/arm/arm.c,
      	config/i386/winnt.c, config/ia64/ia64.c, config/mips/mips.c,
      	config/sol2.c, coverage.c, cselib.c, dse.c, dwarf2cfi.c,
      	dwarf2out.c, except.c, gcse.c, genmatch.c, ggc-common.c,
      	gimple-ssa-strength-reduction.c, gimplify.c, haifa-sched.c,
      	hard-reg-set.h, hash-map.h, hash-set.h, ipa-devirt.c, ipa-icf.h,
      	ipa-profile.c, ira-color.c, ira-costs.c, loop-invariant.c,
      	loop-iv.c, loop-unroll.c, lto-streamer.h, plugin.c, postreload-gcse.c,
      	reginfo.c, statistics.c, store-motion.c, trans-mem.c, tree-cfg.c,
      	tree-eh.c, tree-hasher.h, tree-into-ssa.c, tree-parloops.c,
      	tree-sra.c, tree-ssa-coalesce.c, tree-ssa-dom.c, tree-ssa-live.c,
      	tree-ssa-loop-im.c, tree-ssa-loop-ivopts.c, tree-ssa-phiopt.c,
      	tree-ssa-pre.c, tree-ssa-reassoc.c, tree-ssa-sccvn.c,
      	tree-ssa-structalias.c, tree-ssa-tail-merge.c,
      	tree-ssa-threadupdate.c, tree-vectorizer.c, tree-vectorizer.h,
      	valtrack.h, var-tracking.c, vtable-verify.c, vtable-verify.h: Adjust.
      
      libcc1/
      
      	* plugin.cc: Adjust for hash_table changes.
      
      gcc/java/
      
      	* jcf-io.c: Adjust for hash_table changes.
      
      gcc/lto/
      
      	* lto.c: Adjust for hash_table changes.
      
      gcc/objc/
      
      	* objc-act.c: Adjust for hash_table changes.
      
      From-SVN: r222213
      Trevor Saunders committed
    • Daily bump. · b9923c35
      From-SVN: r222212
      GCC Administrator committed
  4. 17 Apr, 2015 29 commits
    • re PR target/65787 (Miscompile due to bad vector swap optimization for little endian) · 67e6c405
      [gcc]
      
      2015-04-17  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
      
      	PR target/65787
      	* config/rs6000/rs6000.c (rtx_is_swappable_p): Ensure that a
      	subsequent SH_NONE operand does not overwrite an existing *special
      	value.
      	(adjust_extract): Handle case where a vec_extract operation is
      	wrapped in a PARALLEL.
      
      [gcc/testsuite]
      
      2015-04-17  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
      
      	PR target/65787
      	* gcc.target/powerpc/pr65787.c: New.
      
      From-SVN: r222205
      Bill Schmidt committed
    • re PR go/65798 (runtime.Caller returns ok=true when return data is invalid) · 46f120ca
      	PR go/65798
      runtime: In Caller don't return ok == true if PC == 0.
      
      GCC PR 65798 reports that this can happen in some cases.
      
      From-SVN: r222204
      Ian Lance Taylor committed
    • Don't define ix86_binds_local_p for MacOS nor Windows · 759fde68
      	PR target/65780
      	* config/i386/i386.c (ix86_binds_local_p): Define only if
      	TARGET_MACHO and TARGET_DLLIMPORT_DECL_ATTRIBUTES are false.
      
      From-SVN: r222201
      H.J. Lu committed
    • re PR go/64683 (FAIL: runtime/pprof -- testing.go:278: The entry did not match) · d6c2d7c1
      	PR go/64683
      runtime/pprof: Assume function with no name is in runtime.
      
      GCC PR 65797 causes some of the runtime functions to be
      compiled with no name in the debug info.  This in turn causes
      the runtime/pprof test to fail as reported in GCC PR 64683.
      
      There are no good choices when a function has no name in the
      debug info, but here we assume that if we see such a function
      while reading the runtime functions, we assume that it is also
      a runtime function.
      
      From-SVN: r222200
      Ian Lance Taylor committed
    • re PR go/64999 (s390x libgo test failure in TestMemoryProfiler) · 5fdb119f
      	PR go/64999
      	PR go/65180
      runtime: Adjust libbacktrace PC value to what runtime.Callers expects.
      
      From Lynn Boger.
      
      From-SVN: r222196
      Ian Lance Taylor committed
    • re PR tree-optimization/47679 (Strange uninitialized warning after SRA) · f6c72af4
      	PR tree-optimization/47679
      	* Makefile.in (OBJS); Add tree-ssa-scopedtables.o.
      	* tree-ssa-scopedtables.c: New file.
      	* tree-ssa-scopedtables.h: New file.
      	* tree-ssa-dom.c: Include tree-ssa-scopedtables.h.
      	(const_and_copies): Change name/type.
      	(record_const_or_copy): Move into tree-ssa-scopedtables.c
      	(record_const_or_copy_1): Similarly.
      	(restore_vars_to_original_value): Similarly.
      	(pass_dominator::execute): Create and destroy const_and_copies table.
      	(thread_across_edge): Update passing of const_and_copies.
      	(record_temporary_equivalence): Use method calls rather than
      	manipulating const_and_copies directly.
      	(record_equality, cprop_into_successor_phis): Similarly.
      	(dom_opt_dom_walker::before_dom_children): Similarly.
      	(dom_opt_dom_walker::after_dom_children): Similarly.
      	(eliminate_redundant_computations): Similarly.
      	* tree-ssa-threadedge.c (remove_temporary_equivalences): Delete.
      	(record_temporary_equivalence): Likewise.
      	(invalidate_equivalences): Likewise.
      	(record_temporary_equivalences_from_phis): Update due to type
      	change of const_and_copies.  Use method calls rather than
      	manipulating the stack directly.
      	(record_temporary_equivalences_from_stmts_at_dest): Likewise.
      	(thread_through_normal_block, thread_across_edge): Likewise.
      	(thread_across_edge): Likewise.
      	* tree-ssa-threadedge.h (thread_across_edge): Update prototype.
      	* tree-vrp.c: Include tree-ssa-scopedtables.h.  Change type
      	of equiv_stack.
      	(identify_jump_threads): Update due to type change of equiv_stack.
      	(finalize_jump_threads): Delete the equiv_stack when complete.
      
      From-SVN: r222195
      Jeff Law committed
    • re PR go/65755 (incorrect reflection of struct fields with gccgo) · 90e00f87
      	PR go/65755
      compiler, runtime, reflect: Use reflection string for type comparisons.
      
      Change the runtime and reflect libraries to always use only
      the type reflection string to determine whether two types are
      equal.  It previously used the PkgPath and Name values for a
      type name, but that required a PkgPath that did not match the
      gc compiler.
      
      Change the compiler to use the same PkgPath value as the gc
      compiler in all cases.
      
      Change the compiler to put the receiver type in the reflection
      string for a type defined inside a method.
      
      From-SVN: r222194
      Ian Lance Taylor committed
    • i386.h (LEGITIMIZE_RELOAD_ADDRESS): Remove. · fdce7c12
      	* config/i386/i386.h (LEGITIMIZE_RELOAD_ADDRESS): Remove.
      	* config/i386/i386.c (ix86_legitimize_reload_address): Ditto.
      	* config/i386/i386-protos.h (ix86_legitimize_reload_address): Ditto.
      
      From-SVN: r222193
      Uros Bizjak committed
    • re PR target/65535 (powerpc64-freebsd build failure) · faabf788
      PR target/65535
      * config.gcc: Exit with a comment when we do not have a major version
      number for the FreeBSD target.
      
      From-SVN: r222192
      Andreas Tobler committed
    • compiler: Escape analysis. · b496063d
      By Chris Manghane.
      
      Comprises three changes to gofrontend repository:
      
      compiler: Add escape information to export data.
      
      compiler: Stack-allocate non-escaping variables.
      
      This change allows variables initialized through make or new
      to be allocated on the stack via a temporary variable if they
      do not escape their function. It also improves the analysis to
      consider situations where variables escape in the standard
      library and go testsuite such as:
      
      *nested composite literals and composite literal arguments
      *method receivers always escaping
      *escape via statements in closures referring to enclosing variables
      *escape via calls with multiple return results
      
      compiler: Basic escape analysis for the go frontend.
      
      This is an implementation of the algorithm described in
      "Escape Analysis in Java" by Choi et. al.
      
      It relies on dataflow information to discover variable
      references to one another. Handles assignments to closures
      and association between closures variables and the variables
      of the enclosing scope.
      
      Dataflow analysis does not discover references through range
      statements e.g. for _, v := range a will not recognize that
      all values of v are references to a.
      
      	* Make-lang.in (GO_OBJS): Add go/escape.o.
      
      From-SVN: r222188
      Chris Manghane committed
    • re PR bootstrap/62077 (--with-build-config=bootstrap-lto fails) · c10b5ea0
      	PR bootstrap/62077
      	* configure.ac (--enable-stage1-checking): Default to
      	release,misc,gimple,rtlflag,tree,types if --disable-checking
      	or --enable-checking is not specified and DEV-PHASE is not
      	experimental.
      	* configure: Regenerated.
      
      From-SVN: r222187
      Jakub Jelinek committed
    • re PR target/65689 ([AArch64] S constraint fails for inline asm at -O0) · 98c1627c
      	PR target/65689
      	* genpreds.c (struct constraint_data): Add maybe_allows_reg and
      	maybe_allows_mem bitfields.
      	(maybe_allows_none_start, maybe_allows_none_end,
      	maybe_allows_reg_start, maybe_allows_reg_end, maybe_allows_mem_start,
      	maybe_allows_mem_end): New variables.
      	(compute_maybe_allows): New function.
      	(add_constraint): Use it to initialize maybe_allows_reg and
      	maybe_allows_mem fields.
      	(choose_enum_order): Sort the non-is_register/is_const_int/is_memory/
      	is_address constraints such that those that allow neither mem nor
      	reg come first, then those that only allow reg but not mem, then
      	those that only allow mem but not reg, then the rest.
      	(write_allows_reg_mem_function): New function.
      	(write_tm_preds_h): Call it.
      	* stmt.c (parse_output_constraint, parse_input_constraint): Use
      	the generated insn_extra_constraint_allows_reg_mem function
      	instead of always setting *allows_reg = true; *allows_mem = true;
      	for unknown extra constraints.
      
      	* gcc.target/aarch64/c-output-template-4.c: New test.
      
      From-SVN: r222186
      Jakub Jelinek committed
    • Properly handle uninitialized common symbol · 96583f22
      Uninitialized common symbol behavior in executables is target and linker
      dependent.  default_binds_local_p_3 is made public and updated to take an
      argument to indicate if the linker can guarantee that an uninitialized
      common symbol in the executable will still be defined (through COPY
      relocation) in the executable.  If common symbol is local to executable,
      default_binds_local_p_3 will treat non-external variable as defined
      locally.  default_binds_local_p_2 is changed to treat common symbol as
      local for non-PIE binaries.
      
      For i386, common symbol is local only for non-PIE binaries.  For x86-64,
      common symbol is local only for non-PIE binaries or linker supports copy
      reloc in PIE binaries.  If a target treats common symbol as local only
      for non-PIE binaries, it can define TARGET_BINDS_LOCAL_P as
      default_binds_local_p_2.
      
      gcc/
      
      	PR target/65780
      	* output.h (default_binds_local_p_3): New.
      	* varasm.c (default_binds_local_p_3): Make it public.  Take an
      	argument to indicate if common symbol may be local.  If common
      	symbol may be local, treat non-external variable as defined
      	locally.
      	(default_binds_local_p_2): Pass !flag_pic to default_binds_local_p_3.
      	(default_binds_local_p_1): Pass false to default_binds_local_p_3.
      	* config/i386/i386.c (ix86_binds_local_p): New.
      	(TARGET_BINDS_LOCAL_P): Replace default_binds_local_p_2 with
      	ix86_binds_local_p.
      
      gcc/testsuite/
      
      	PR target/65780
      	* gcc.dg/pr65780-1.c: New test.
      	* gcc.dg/pr65780-2.c: Likewise.
      	* gcc.target/i386/pr32219-9.c: Likewise.
      	* gcc.target/i386/pr32219-1.c (xxx): Make it initialized common
      	symbol.
      	* gcc.target/i386/pr64317.c (c): Initialize.
      
      From-SVN: r222184
      H.J. Lu committed
    • re PR debug/65771 (ICE (in loc_list_from_tree, at dwarf2out.c:14964) on arm-linux-gnueabihf) · aeebf48a
      	PR debug/65771
      	* dwarf2out.c (mem_loc_descriptor): For CONST, fallback to
      	trying mem_loc_descriptor on XEXP (rtl, 0).
      
      From-SVN: r222181
      Jakub Jelinek committed
    • Fix IPA memory leaks. · bbd08a5d
      	* ipa-cp.c (ipcp_driver): Release prev_edge_clone.
      	* ipa-icf.c (sem_item_optimizer::subdivide_classes_by_sensitive_refs):
      	Release symbol_compare_collection.
      	* ipa-reference.c: Add TODO that a vector should be released.
      
      From-SVN: r222180
      Martin Liska committed
    • re PR target/65296 ([avr] fix various issues with specs file generation) · c11cdefb
      	PR target/65296
      	* config/avr/gen-avr-mmcu-specs.c (*avrlibc_startfile): Adjust
      	to new AVR-LibC file layout (bug #44574).
      	(*avrlibc_devicelib): Same.
      	* config/avr/avr-mcus.def: Adjust comments.
      	* config/avr/avr.opt (nodevicelib): Adjust help.
      
      From-SVN: r222179
      Sivanupandi Pitchumani committed
    • Hide __cpu_indicator_init/__cpu_model from linker · abd0cdc9
      We shouldn't call external function, __cpu_indicator_init, while an object
      is being relocated since its .got.plt section hasn't been updated.  It
      works for non-PIE since no update on .got.plt section is required.  This
      patch creates libgcc.so as a linker script, hides __cpu_indicator_init
      and __cpu_model in libgcc.so.1 from linker, forces linker to resolve
      __cpu_indicator_init and __cpu_model to their hidden definitions in
      libgcc.a while providing backward binary compatibility.
      
      gcc/testsuite/
      
      	PR target/65612
      	* g++.dg/ext/mv18.C: New test.
      	* g++.dg/ext/mv19.C: Likewise.
      	* g++.dg/ext/mv20.C: Likewise.
      	* g++.dg/ext/mv21.C: Likewise.
      	* g++.dg/ext/mv22.C: Likewise.
      	* g++.dg/ext/mv23.C: Likewise.
      
      libgcc/
      
      	PR target/65612
      	* config.host (tmake_file): Add t-slibgcc-libgcc for Linux/x86.
      	* config/i386/cpuinfo.c (__cpu_model): Initialize.
      	(__cpu_indicator_init@GCC_4.8.0): New.
      	(__cpu_model@GCC_4.8.0): Likewise.
      	* config/i386/t-linux (HOST_LIBGCC2_CFLAGS): Add
      	-DUSE_ELF_SYMVER.
      
      From-SVN: r222178
      H.J. Lu committed
    • arm_neon.h (vdup_n_f32): Remove forward declaration. · 05b1fb22
              * config/aarch64/arm_neon.h (vdup_n_f32): Remove forward declaration.
      
      From-SVN: r222177
      Alan Lawrence committed
    • re PR c++/64527 (Constructor for empty struct not called in some situations) · 2234a9cb
      Fix PR c++/64527
      
      gcc/
      	PR c++/64527
      	* gimplify.c (gimplify_init_constructor): Always emit a
      	side-effecting constructor.
      
      gcc/testsuite/
      	PR c++/64527
      	* g++.dg/init/pr64527.C: New test.
      
      From-SVN: r222176
      Patrick Palka committed
    • Add missing PR lines in ChangeLog · 3f6a2f9e
      From-SVN: r222175
      Tom de Vries committed
    • Set PROP_gimple_lva for functions without IFN_VA_ARG · d67cb100
      2015-04-17  Tom de Vries  <tom@codesourcery.com>
      
      	* gimplify.c (gimplify_function_tree): Tentatively set PROP_gimple_lva
      	in cfun->curr_properties.
      	(gimplify_va_arg_expr): Clear PROP_gimple_lva in cfun->curr_properties
      	if we generate an IFN_VA_ARG.
      	* tree-inline.c (expand_call_inline): Reset PROP_gimple_lva in dest
      	function if PROP_gimple_lva is not set in src function.
      
      From-SVN: r222174
      Tom de Vries committed
    • Postpone expanding va_arg until pass_stdarg · f8e89441
      2015-04-17  Tom de Vries  <tom@codesourcery.com>
      	    Michael Matz  <matz@suse.de>
      
      	* gimple-iterator.c (update_modified_stmts): Remove static.
      	* gimple-iterator.h (update_modified_stmts): Declare.
      	* gimplify.c (gimplify_modify_expr): Handle IFN_VA_ARG.
      	(gimplify_va_arg_internal): New function.
      	(gimplify_va_arg_expr): Use IFN_VA_ARG.
      	* gimplify.h (gimplify_va_arg_internal): Declare.
      	* internal-fn.c (expand_VA_ARG): New unreachable function.
      	* internal-fn.def (VA_ARG): New DEF_INTERNAL_FN.
      	* tree-stdarg.c (gimple_call_ifn_va_arg_p, expand_ifn_va_arg_1)
      	(expand_ifn_va_arg): New function.
      	(pass_data_stdarg): Add PROP_gimple_lva to properties_provided field.
      	(pass_stdarg::execute): Call expand_ifn_va_arg.
      	(pass_data_lower_vaarg): New pass_data.
      	(pass_lower_vaarg): New gimple_opt_pass.
      	(pass_lower_vaarg::gate, pass_lower_vaarg::execute)
      	(make_pass_lower_vaarg): New function.
      	* cfgexpand.c (pass_data_expand): Add PROP_gimple_lva to
      	properties_required field.
      	* passes.def (all_passes): Add pass_lower_vaarg.
      	* tree-pass.h (PROP_gimple_lva): Add define.
      	(make_pass_lower_vaarg): Declare.
      
      	* gcc.dg/tree-ssa/stdarg-2.c: Change f15 scan-tree-dump for target
      	x86_64-*-*.
      
      Co-Authored-By: Michael Matz <matz@suse.de>
      
      From-SVN: r222173
      Tom de Vries committed
    • Handle internal_fn in operand_equal_p · 1691b2e1
      2015-04-17  Tom de Vries  <tom@codesourcery.com>
      
      	* fold-const.c (operand_equal_p): Handle INTERNAL_FNs.
      	* calls.c (call_expr_flags): Same.
      
      From-SVN: r222172
      Tom de Vries committed
    • Factor optimize_va_list_gpr_fpr_size out of pass_stdarg::execute · 302f0807
      2015-04-17  Tom de Vries  <tom@codesourcery.com>
      
      	* tree-stdarg.c (optimize_va_list_gpr_fpr_size): Factor out of ...
      	(pass_stdarg::execute): ... here.
      
      From-SVN: r222171
      Tom de Vries committed
    • Add gimple_find_sub_bbs · 8926e325
      2015-04-17  Tom de Vries  <tom@codesourcery.com>
      	    Michael Matz  <matz@suse.de>
      
      	* tree-cfg.c (make_blocks_1): Factor out of ...
      	(make_blocks): ... here.
      	(make_edges_bb): Factor out of ...
      	(make_edges): ... here.
      	(gimple_find_sub_bbs): New function.
      	* tree-cfg.h (gimple_find_sub_bbs): Declare.
      
      Co-Authored-By: Michael Matz <matz@suse.de>
      
      From-SVN: r222170
      Tom de Vries committed
    • Disable lang_hooks.gimplify_expr in free_lang_data · cef3bed6
      2015-04-17  Tom de Vries  <tom@codesourcery.com>
      
      	* tree.c (free_lang_data): Disable lang_hooks.gimplify_expr.
      
      From-SVN: r222169
      Tom de Vries committed
    • asan.c (set_sanitized_sections): New function. · 18af8d16
      2015-04-17  Yury Gribov  <y.gribov@samsung.com>
      
      gcc/
      	* asan.c (set_sanitized_sections): New function.
      	(section_sanitized_p): Ditto.
      	(asan_protect_global): Optionally sanitize user-defined
      	sections.
      	* asan.h (set_sanitized_sections): Declare new function.
      	* common.opt (fsanitize-sections): New option.
      	* doc/invoke.texi (-fsanitize-sections): Document new option.
      	* opts-global.c (handle_common_deferred_options): Handle new
      	option.
      
      gcc/testsuite/
      	* c-c++-common/asan/user-section-1.c: New test.
      
      From-SVN: r222168
      Yury Gribov committed
    • re PR debug/65771 (ICE (in loc_list_from_tree, at dwarf2out.c:14964) on arm-linux-gnueabihf) · d7cb230a
      	PR debug/65771
      	* dwarf2out.c (loc_list_from_tree): Return NULL
      	for DEBUG_EXPR_DECL.
      
      	* gcc.dg/debug/pr65771.c: New test.
      
      From-SVN: r222166
      Jakub Jelinek committed
    • ipa-inline.c (can_inline_edge_p): Allow inlining of functions with same attributes. · 86f46e39
      * ipa-inline.c (can_inline_edge_p): Allow inlining of functions with
      same attributes.
      
      From-SVN: r222165
      Christian Bruel committed