1. 23 Jul, 2015 25 commits
    • jit: supply MULTILIB_DEFAULTS as arguments when invoking driver · eb3982c1
      gcc/jit/ChangeLog:
      	* jit-playback.c (invoke_driver): Convert local "argvec"
      	to an auto_argvec, so that it owns copies of the strings,
      	rather than borrows them, updating ADD_ARG to use xstrdup
      	and special-casing the NULL terminator to avoid
      	xstrdup (NULL).  Call add_multilib_driver_arguments at the front
      	of the arguments.
      	(MULTILIB_DEFAULTS): Provide a default definition.
      	(multilib_defaults_raw): New constant array.
      	(gcc::jit::playback::context::add_multilib_driver_arguments): New
      	method.
      	* jit-playback.h
      	(gcc::jit::playback::context::add_multilib_driver_arguments): New
      	method.
      	* docs/internals/test-hello-world.exe.log.txt: Update.
      	* docs/_build/texinfo/libgccjit.texi: Regenerate.
      
      From-SVN: r226126
      David Malcolm committed
    • re PR lto/66752 (spec2000 255.vortex performance compiled with GCC is ~20% lower than with CLANG) · d37f946a
      	PR lto/66752
      	* tree-ssa-threadedge.c (simplify_conrol_stmt_condition): If we are
      	unable to find X NE 0 in the tables, return X as the simplified
      	condition.
      	(fsm_find_control_statement_thread_paths): If nodes in NEXT_PATH are
      	in VISISTED_BBS, then return failure.  Else add nodes from NEXT_PATH
      	to VISISTED_BBS.  */
      	* tree-ssa-threadupdate.c (duplicate_thread_path): Fix up edge flags
      	after removing the control flow statement and unnecessary edges.
      
      testsuite/
      	PR lto/66752
      	* gcc.dg/tree-ssa/pr66752-2.c: New test.
      	* gcc.dg/torture/pr66752-1.c: New test
      	* g++.dg/torture/pr66752-2.C: New test.
      
      From-SVN: r226125
      Jeff Law committed
    • compiler: Make empty interface types for vars during parse time. · 0f2be732
          
          When making the type for a variable with an empty interface type,
          the parser makes an interface type with a NULL method set and relies
          on later passes to correct this.
          
          For sink variables, which are ignored in later passes, the interface
          method table is never finalized and a compile time assertion is issued.
          Instead, the initial type generated by the parser should be the empty
          interface type.
          
          Fixes golang/go#11579.
          
          Reviewed-on: https://go-review.googlesource.com/12049
      
      From-SVN: r226123
      Ian Lance Taylor committed
    • compiler: Check for errors in the underlying types of unary expressions. · 20886e71
          
          Fixes golang/go#11592.
          
          Reviewed-on: https://go-review.googlesource.com/12044
      
      From-SVN: r226122
      Ian Lance Taylor committed
    • tree-pass.h (get_current_pass_name): Removed. · 0358f01b
      2015-07-23  Bernd Edlinger  <bernd.edlinger@hotmail.de>
      
              * tree-pass.h (get_current_pass_name): Removed.
      
      From-SVN: r226121
      Bernd Edlinger committed
    • re PR c++/66572 (Bogus Wlogical-op warning for operands coming from template instantiations) · 04e4dbd0
      	PR c++/66572
      	* pt.c (tsubst_copy_and_build): Add warn_logical_op sentinel.
      
      	* g++.dg/warn/Wlogical-op-2.C: New test.
      
      From-SVN: r226120
      Marek Polacek committed
    • * MAINTAINERS: Update my email address. · 45952786
      From-SVN: r226118
      Bernd Schmidt committed
    • functional_hash.h: Add specializations for __intN types. · 8161e0c3
      * include/bits/functional_hash.h: Add specializations for __intN
      types.
      
      * include/ext/pb_ds/detail/thin_heap_/thin_heap_.hpp (__gnu_pbds):
      Guard against values that might exceed size_t's precision.
      
      From-SVN: r226117
      DJ Delorie committed
    • c-ubsan.c (ubsan_instrument_division): Use unshare_expr throughout. · 5a5062b8
      	* c-ubsan.c (ubsan_instrument_division): Use unshare_expr throughout.
      	(ubsan_instrument_shift): Likewise.
      
      From-SVN: r226116
      Marek Polacek committed
    • [PR64164] Drop copyrename, use coalescible partition as base when optimizing. · 7eb9f42e
      for  gcc/ChangeLog
      
      	PR rtl-optimization/64164
      	* Makefile.in (OBJS): Drop tree-ssa-copyrename.o.
      	* tree-ssa-copyrename.c: Removed.
      	* opts.c (default_options_table): Drop -ftree-copyrename.  Add
      	-ftree-coalesce-vars.
      	* passes.def: Drop all occurrences of pass_rename_ssa_copies.
      	* common.opt (ftree-copyrename): Ignore.
      	(ftree-coalesce-inlined-vars): Likewise.
      	* doc/invoke.texi: Remove the ignored options above.
      	* gimple-expr.h (gimple_can_coalesce_p): Move declaration
      	* tree-ssa-coalesce.h: ... here.
      	* tree-ssa-uncprop.c: Include tree-ssa-coalesce.h and other
      	headers required by it.
      	* gimple-expr.c (gimple_can_coalesce_p): Allow coalescing
      	across variables when flag_tree_coalesce_vars.  Check register
      	use and promoted modes to allow coalescing.  Moved to
      	tree-ssa-coalesce.c.
      	* tree-ssa-live.c (struct tree_int_map_hasher): Move along
      	with its member functions to tree-ssa-coalesce.c.
      	(var_map_base_init): Likewise.  Renamed to
      	compute_samebase_partition_bases.
      	(partition_view_normal): Drop want_bases parameter.
      	(partition_view_bitmap): Likewise.
      	* tree-ssa-live.h: Adjust declarations.
      	* tree-ssa-coalesce.c: Include explow.h.
      	(build_ssa_conflict_graph): Process PARM_ and RESULT_DECLs's
      	default defs at the entry point.
      	(dump_part_var_map): New.
      	(compute_optimized_partition_bases): New, called by...
      	(coalesce_ssa_name): ... when flag_tree_coalesce_vars, instead
      	of compute_samebase_partition_bases.  Adjust.
      	* alias.c (nonoverlapping_memrefs_p): Disregard gimple-regs.
      	* cfgexpand.c (leader_merge): New.
      	(get_rtl_for_parm_ssa_default_def): New.
      	(set_rtl): Merge exprs and attrs, even for MEMs and non-SSA
      	vars.  Update DECL_RTL for PARM_DECLs and RESULT_DECLs too.
      	(expand_one_stack_var_at): Handle anonymous SSA_NAMEs.  Drop
      	redundant MEM attr setting.
      	(expand_one_stack_var_1): Handle anonymous SSA_NAMEs.  Renamed
      	from...
      	(expand_one_stack_var): ... this.  New wrapper to check and
      	skip already expanded SSA partitions.
      	(record_alignment_for_reg_var): New, factored out of...
      	(expand_one_var): ... this.
      	(expand_one_ssa_partition): New.
      	(adjust_one_expanded_partition_var): New.
      	(expand_one_register_var): Check and skip already expanded SSA
      	partitions.
      	(expand_used_vars): Don't create DECLs for anonymous SSA
      	names.  Expand all SSA partitions, then adjust all SSA names.
      	(pass::execute): Replace the loops that set
      	SA.partition_to_pseudo from partition leaders and cleared
      	DECL_RTL for multi-location variables, and that which used to
      	rename vars and set attrs, with one that clears DECL_RTL and
      	checks that PARMs and RESULTs default_defs match DECL_RTL.
      	* cfgexpand.h (get_rtl_for_parm_ssa_default_def): Declare.
      	* emit-rtl.c (set_reg_attrs_for_parm): Handle NULL decl.
      	* explow.c (promote_ssa_mode): New.
      	* explow.h (promote_ssa_mode): Declare.
      	* expr.c (expand_expr_real_1): Handle anonymous SSA_NAMEs.
      	* function.c: Include cfgexpand.h.
      	(use_register_for_decl): Handle SSA_NAMEs, anonymous or not.
      	(use_register_for_parm_decl): Wrapper for the above to
      	special-case the result_ptr.
      	(rtl_for_parm): Ditto for get_rtl_for_parm_ssa_default_def.
      	(split_complex_args): Take assign_parm_data_all argument.
      	Pass it to rtl_for_parm.  Set up rtl and context for split
      	args.
      	(assign_parms_augmented_arg_list): Adjust.
      	(maybe_reset_rtl_for_parm): Reset DECL_RTL of parms with
      	multiple locations.  Recognize split complex args.
      	(assign_parm_adjust_stack_rtl): Add all and parm arguments,
      	for rtl_for_parm.  For SSA-assigned parms, zero stack_parm.
      	(assign_parm_setup_block): Prefer SSA-assigned location.
      	(assign_parm_setup_reg): Likewise.  Use entry_parm for equiv
      	if stack_parm is NULL.
      	(assign_parm_setup_stack): Prefer SSA-assigned location.
      	(assign_parms): Maybe reset DECL_RTL of params.  Adjust stack
      	rtl before testing for pointer bounds.  Special-case result_ptr.
      	(expand_function_start): Maybe reset DECL_RTL of result.
      	Prefer SSA-assigned location for result and static chain.
      	Factor out DECL_RESULT and SET_DECL_RTL.
      	* tree-outof-ssa.c (insert_value_copy_on_edge): Handle
      	anonymous SSA names.  Use promote_ssa_mode.
      	(get_temp_reg): Likewise.
      	(remove_ssa_form): Adjust.
      	* stor-layout.c (layout_decl): Don't set mem attributes of
      	non-MEMs.
      	* var-tracking.c (dataflow_set_clear_at_call): Take call_insn
      	and get its reg_usage for reg invalidation.
      	(compute_bb_dataflow): Pass it insn.
      	(emit_notes_in_bb): Likewise.
      
      for  gcc/testsuite/ChangeLog
      
      	* gcc.dg/guality/pr54200.c: Add -fno-tree-coalesce-vars.
      	* gcc.dg/ssp-1.c: Make counter a register.
      	* gcc.dg/ssp-2.c: Likewise.
      	* gcc.dg/torture/parm-coalesce.c: New.
      
      From-SVN: r226113
      Alexandre Oliva committed
    • re PR target/66217 (PowerPC rotate/shift/mask instructions not optimal) · a34f4f64
      	PR target/66217
      	* config/rs6000/rs6000-protos.h (rs6000_emit_2insn_and): Change
      	prototype.
      	* config/rs6000/rs6000.c (rs6000_emit_dot_insn): New function.
      	(rs6000_emit_2insn_and): Handle dot forms.
      	* config/rs6000/rs6000.md (and<mode>3): Adjust.
      	(*and<mode>3_2insn): Remove TODO.  Adjust.  Add "type" attr.
      	(*and<mode>3_2insn_dot, *and<mode>3_2insn_dot2): New.
      
      From-SVN: r226112
      Segher Boessenkool committed
    • generic-match-head.c: Include cgraph.h. · d057c866
      2015-07-23  Richard Biener  <rguenther@suse.de>
      
      	* generic-match-head.c: Include cgraph.h.
      	* gimple-match-head.c: Likewise.
      	* tree-ssa-sccvn.c (free_scc_vn): Guard against newly created
      	SSA names.
      	* fold-const.c (fold_binary_loc): Move &A ==/!= &B simplification...
      	* match.pd: ...to a pattern here.  Add &A ==/!= 0 simplification
      	pattern.
      
      From-SVN: r226111
      Richard Biener committed
    • re PR sanitizer/66908 (Uninitialized variable when compiled with UBsan) · dc891fe7
      	PR sanitizer/66908
      	* c-ubsan.c: Include gimplify.h.
      	(ubsan_instrument_division): Unshare OP0 and OP1.
      	(ubsan_instrument_shift): Likewise.
      
      	* c-c++-common/ubsan/pr66908.c: New test.
      
      From-SVN: r226110
      Marek Polacek committed
    • gimple-fold.c (fold_gimple_cond): Do not require folding results to pass valid_gimple_rhs_p. · 62fb67d7
      2015-07-23  Richard Biener  <rguenther@suse.de>
      
      	* gimple-fold.c (fold_gimple_cond): Do not require folding
      	results to pass valid_gimple_rhs_p.
      	* tree-cfg.h (fold_cond_expr_cond): Remove.
      	* tree-cfg.c (fold_cond_expr_cond): Likewise.
      	(make_edges): Do not call it.
      	* tree-inline.c (tree_function_versioning): Likewise.
      
      From-SVN: r226109
      Richard Biener committed
    • Check TYPE_OVERFLOW_WRAPS for parloops reductions · bcdaf370
      2015-07-23  Tom de Vries  <tom@codesourcery.com>
      
      	* tree-parloops.c (gather_scalar_reductions): Add arg to call to
      	vect_force_simple_reduction.
      	* tree-vect-loop.c (vect_analyze_scalar_cycles_1): Same.
      	(vect_is_simple_reduction_1): Add and handle
      	need_wrapping_integral_overflow parameter.
      	(vect_is_simple_reduction, vect_force_simple_reduction): Add and pass
      	need_wrapping_integral_overflow parameter.
      	(vectorizable_reduction): Add arg to call to vect_is_simple_reduction.
      	* tree-vectorizer.h (vect_force_simple_reduction): Add parameter to decl.
      
      	* gcc.dg/autopar/outer-4.c: Add xfail.
      	* gcc.dg/autopar/outer-5.c: Same.
      	* gcc.dg/autopar/outer-6.c: Same.
      	* gcc.dg/autopar/reduc-2.c: Same.
      	* gcc.dg/autopar/reduc-2char.c: Same.
      	* gcc.dg/autopar/reduc-2short.c: Same.
      	* gcc.dg/autopar/reduc-8.c: Same.
      	* gcc.dg/autopar/uns-outer-4.c: New test.
      	* gcc.dg/autopar/uns-outer-5.c: New test.
      	* gcc.dg/autopar/uns-outer-6.c: New test.
      
      From-SVN: r226107
      Tom de Vries committed
    • re PR tree-optimization/66952 (wrong code at -O2 and -O3 on x86_64-linux-gnu) · f45dacba
      2015-07-23  Richard Biener  <rguenther@suse.de>
      
      	PR tree-optimization/66952
      	* gcc.dg/torture/pr66952.c: Use signed char.
      
      From-SVN: r226104
      Richard Biener committed
    • PR tree-optimization/66926,66951 · b5fd0440
      gcc/
      
      	PR tree-optimization/66926,66951
      	* tree-vect-loop-manip.c (slpeel_tree_peel_loop_to_edge): Delete
      	INNER_LOOP and fix up condition for renaming virtual operands.
      
      gcc/testsuite/
      
      	PR tree-optimization/66926,66951
      	* gcc.dg/vect/pr66951.c: New test.
      
      From-SVN: r226103
      Yuri Rumyantsev committed
    • re PR c++/52987 (bogus expected ; before for undeclared type) · 25f05e7b
      /cp
      2015-07-23  Paolo Carlini  <paolo.carlini@oracle.com>
      
      	PR c++/52987
      	* parser.c (cp_parser_simple_declaration): Robustify check avoiding
      	redundant error messages.
      
      /testsuite
      2015-07-23  Paolo Carlini  <paolo.carlini@oracle.com>
      
      	PR c++/52987
      	* g++.dg/parse/error57.C: New.
      	* g++.dg/expr/string-2.C: Update.
      
      From-SVN: r226097
      Paolo Carlini committed
    • [combine][obvious] Use std::swap in try_combine · 7bed1d3d
      	* combine.c (try_combine): Use std::swap instead of manually
      	swapping.
      
      From-SVN: r226094
      Kyrylo Tkachov committed
    • I6400 scheduling. · 7ccb4e4e
      gcc/
      	* config/mips/i6400.md: New file.
      	* config/mips/mips-cpus.def (mips32r6): Change to PROCESSOR_I6400.
      	(mips64r6): Likewise.
      	(i6400): Define.
      	* config/mips/mips-tables.opt: Regenerate.
      	* config/mips/mips.c (mips_rtx_cost_data): Add I6400 processor.
      	(mips_issue_rate): Add support for i6400.
      	(mips_multipass_dfa_lookahead): Likewise.
      	* config/mips/mips.h (TUNE_I6400): Define.
      	* config/mips/mips.md: Include i6400.md.
      	(processor): Add i6400.
      	* doc/invoke.texi (-march=@var{arch}): Add i6400.
      
      From-SVN: r226090
      Prachi Godbole committed
    • re PR middle-end/66916 (FAIL: gcc.target/arm/pr43920-2.c object-size text <= 54) · 2fde61e3
      2015-07-23  Richard Biener  <rguenther@suse.de>
      
      	PR middle-end/66916
      	* match.pd: Guard widen and sign-change comparison simplification
      	with single_use.
      
      From-SVN: r226089
      Richard Biener committed
    • re PR middle-end/66945 (ICE in generic_simplify (generic-match.c:24790)) · 28537a45
      2015-07-23  Richard Biener  <rguenther@suse.de>
      
      	PR tree-optimization/66945
      	* tree-ssa-propagate.c (substitute_and_fold_dom_walker
      	::before_dom_children): Force the propagators idea of
      	non-executable edges to materialize, not what the folder
      	chooses.
      
      	* gcc.dg/torture/pr66945.c: New testcase.
      
      From-SVN: r226088
      Richard Biener committed
    • gimple.h (gimple_cond_make_false): Use 0 != 0. · bde7d04b
      2015-07-23  Richard Biener  <rguenther@suse.de>
      
      	* gimple.h (gimple_cond_make_false): Use 0 != 0.
      	(gimple_cond_make_true): Use 1 != 0.
      
      From-SVN: r226087
      Richard Biener committed
    • t-msp430 (MULTILIB_DIRNAMES): Remove trailing slashes. · 3f02735b
      * config/msp430/t-msp430 (MULTILIB_DIRNAMES): Remove trailing
      slashes.
      
      * config/msp430/msp430.md (ashlhi3): Optimize shifts of subregs.
      (ashrhi3): Likewise.
      (lshrhi3): Likewise.
      (movhi): Take advantage of zero-extend to load small constants.
      (movpsi): Likewise.
      (and<mode>3): Likewise.
      (zero_extendqihi2): Likewise.
      (zero_extendqisi2): New.
      * config/msp430/constraints.md (N,O): New.
      * config/msp430/msp430.h (WORD_REGISTER_OPERATIONS): Define.
      
      From-SVN: r226085
      DJ Delorie committed
    • Daily bump. · bcf122be
      From-SVN: r226084
      GCC Administrator committed
  2. 22 Jul, 2015 15 commits