1. 21 Oct, 2015 40 commits
    • Improve --help output to generate references to option aliases. · a7b2e184
      gcc/
      	PR driver/68043
      	* opts.c (undocumented_msg, use_diagnosed_msg): New globals.
      	(print_filtered_help): Reference aliased option's name and encourage
      	readers to use it in preference to the alias if the former is not
      	documented.  Mention when using an option is diagnosed.
      	* gcc.c (display_help): End each sentence with a period.
      
      	* ada/gcc-interface/lang.opt: End each sentence that describes
      	an option with a period.
      	* c-family/c.opt: Same.
      	* common.opt: Same.
      	* config/aarch64/aarch64.opt: Same.
      	* config/alpha/alpha.opt: Same.
      	* config/arc/arc.opt: Same.
      	* config/arm/arm.opt: Same.
      	* config/avr/avr.opt: Same.
      	* config/bfin/bfin.opt: Same.
      	* config/c6x/c6x.opt: Same.
      	* config/cr16/cr16.opt: Same.
      	* config/cris/cris.opt: Same.
      	* config/cris/linux.opt: Same.
      	* config/darwin.opt: Same.
      	* config/epiphany/epiphany.opt: Same.
      	* config/fr30/fr30.opt: Same.
      	* config/frv/frv.opt: Same.
      	* config/ft32/ft32.opt: Same.
      	* config/g.opt: Same.
      	* config/h8300/h8300.opt: Same.
      	* config/i386/cygming.opt: Same.
      	* config/i386/djgpp.opt: Same.
      	* config/i386/i386.opt: Same.
      	* config/i386/interix.opt: Same.
      	* config/i386/mingw-w64.opt: Same.
      	* config/i386/mingw.opt: Same.
      	* config/ia64/ia64.opt: Same.
      	* config/ia64/ilp32.opt: Same.
      	* config/iq2000/iq2000.opt: Same.
      	* config/linux.opt: Same.
      	* config/lm32/lm32.opt: Same.
      	* config/lynx.opt: Same.
      	* config/m32c/m32c.opt: Same.
      	* config/m32r/m32r.opt: Same.
      	* config/m68k/ieee.opt: Same.
      	* config/m68k/m68k.opt: Same.
      	* config/mcore/mcore.opt: Same.
      	* config/mep/mep.opt: Same.
      	* config/microblaze/microblaze.opt: Same.
      	* config/mips/mips.opt: Same.
      	* config/mmix/mmix.opt: Same.
      	* config/mn10300/mn10300.opt: Same.
      	* config/moxie/moxie.opt: Same.
      	* config/msp430/msp430.opt: Same.
      	* config/nios2/elf.opt: Same.
      	* config/nios2/nios2.opt: Same.
      	* config/nvptx/nvptx.opt: Same.
      	* config/pa/pa-hpux.opt: Same.
      	* config/pa/pa-hpux1010.opt: Same.
      	* config/pa/pa-hpux1111.opt: Same.
      	* config/pa/pa-hpux1131.opt: Same.
      	* config/pa/pa.opt: Same.
      	* config/pa/pa64-hpux.opt: Same.
      	* config/pdp11/pdp11.opt: Same.
      	* config/rl78/rl78.opt: Same.
      	* config/rs6000/476.opt: Same.
      	* config/rs6000/aix64.opt: Same.
      	* config/rs6000/darwin.opt: Same.
      	* config/rs6000/linux64.opt: Same.
      	* config/rs6000/rs6000.opt: Same.
      	* config/rs6000/sysv4.opt: Same.
      	* config/s390/s390.opt: Same.
      	* config/s390/tpf.opt: Same.
      	* config/sh/sh.opt: Same.
      	* config/sol2.opt: Same.
      	* config/sparc/long-double-switch.opt: Same.
      	* config/sparc/sparc.opt: Same.
      	* config/spu/spu.opt: Same.
      	* config/stormy16/stormy16.opt: Same.
      	* config/tilegx/tilegx.opt: Same.
      	* config/tilepro/tilepro.opt: Same.
      	* config/v850/v850.opt: Same.
      	* config/vax/vax.opt: Same.
      	* config/visium/visium.opt: Same.
      	* config/vms/vms.opt: Same.
      	* config/vxworks.opt: Same.
      	* config/xtensa/xtensa.opt: Same.
      	* fortran/lang.opt: Same.
      
      testsuite/
      	PR driver/68043
      	* gcc.misc-tests/help.exp: Adjust.
      	* lib/options.exp (check_for_options): Add detail to output.
      
      From-SVN: r229155
      Martin Sebor committed
    • [PATCH 2/9] ENABLE_CHECKING refactoring: libcpp · 22d66382
      [PATCH 2/9] ENABLE_CHECKING refactoring: libcpp
              * include/line-map.h: Use CHECKING_P instead of ENABLE_CHECKING.
              * init.c: Likewise.
              * macro.c (struct macro_arg_token_iter, set_arg_token,
              macro_arg_token_iter_init, macro_arg_token_iter_forward,
              macro_arg_token_iter_get_token, macro_arg_token_iter_get_location,
              alloc_expanded_arg_mem, _cpp_backup_tokens): Likewise.
      
      From-SVN: r229154
      Mikhail Maltsev committed
    • re PR fortran/67939 (ICE on using data with negative substring range) · 44f92b59
      2015-10-21  Steven G. Kargl  <kargl@gcc.gnu.org>
      
      	PR fortran/67939
      	* data.c (create_character_initializer): Deal with zero length string.
      
      
      2015-10-21  Steven G. Kargl  <kargl@gcc.gnu.org>
      
      	PR fortran/67939
      	* gfortran.dg/pr67939.f90: New test.
      
      From-SVN: r229153
      Steven G. Kargl committed
    • a scalar depending on vdefs in the current region is not invariant · 78fd2726
      When a scalar is defined in function of an array reference in the current scop,
      it does variate.  Graphite cannot represent the condition in scop-11.c, as a[*]
      variates in the current region, and it is not an affine condition:
      
        for (j = 0; j <= 20; j++)
          a[j] = b + i;
      
        if (a[12] == 23)
          b = 3;
        else
          b = 1;
      
        for (j = 0; j <= 20; j++)
          a[j] = b + i;
      
      	* graphite-scop-detection.c (parameter_index_in_region): Update call to
      	invariant_in_sese_p_rec.
      	* graphite-sese-to-poly.c (extract_affine): Same.
      	* sese.c (invariant_in_sese_p_rec): Pass in an extra parameter has_vdefs.
      	(scalar_evolution_in_region): Return chrec_dont_know when the scalar variable
      	depends on virtual definitions in the current region.
      	* sese.h (invariant_in_sese_p_rec): Update declaration.
      
      testsuite/
      	* gcc.dg/graphite/scop-11.c: Update pattern.
      
      Co-Authored-By: Sebastian Pop <s.pop@samsung.com>
      
      From-SVN: r229151
      Aditya Kumar committed
    • add an upper limit on the number of array references · 8b76e7fe
      	* graphite-scop-detection.c (build_scops): Do not handle scops with more
      	than PARAM_GRAPHITE_MAX_ARRAYS_PER_SCOP arrays.
      	* params.def (PARAM_GRAPHITE_MAX_ARRAYS_PER_SCOP): New.
      
      Co-Authored-By: Sebastian Pop <s.pop@samsung.com>
      
      From-SVN: r229150
      Aditya Kumar committed
    • [PATCH 1/9] ENABLE_CHECKING refactoring · 7ec491c0
      gcc/
      	* config.in: Regenerate.
      	* configure: Regenerate.
      	* configure.ac (CHECKING_P): Define.
      	* system.h: Use CHECKING_P.
      
      libcpp/
      	* config.in: Regenerate.
      	* configure: Regenerate.
      	* configure.ac (CHECKING_P): Define.
      	* system.h (fancy_abort): Declare.
      	(abort): Define.
      	(gcc_assert): Define. Use CHECKING_P.
      
      From-SVN: r229149
      Mikhail Maltsev committed
    • re PR ipa/67056 (Wrong code generated) · 74bb7709
      	PR ipa/67056
      	* ipa-polymorphic-call.c (possible_placement_new): If cur_offset
      	is negative we don't know the type.
      	(check_stmt_for_type_change): Skip constructors of non-polymorphic
      	types as those won't help devirutalization.
      	* g++.dg/ipa/pr67056.C: New testcase.
      
      From-SVN: r229148
      Jan Hubicka committed
    • fold-const.c (operand_equal_p): Add code matching empty constructors. · 1567db2f
      	* fold-const.c (operand_equal_p): Add code matching empty
      	constructors.
      	* gcc.dg/tree-ssa/operand-equal-1.c: Verify that empty constructors
      	are matched.
      
      From-SVN: r229147
      Jan Hubicka committed
    • tree.def (CEIL_DIV_EXPR, [...]): Tweak comments. · c26065cc
      	* tree.def (CEIL_DIV_EXPR, FLOOR_DIV_EXPR, ROUND_DIV_EXPR): Tweak
      	comments.
      	(TRUNC_MOD_EXPR, CEIL_MOD_EXPR, FLOOR_MOD_EXPR, ROUND_MOD_EXPR):
      	Add comments on sign of the result.
      	* fold-const.c (tree_binary_nonnegative_warnv_p) <FLOOR_MOD_EXPR>:
      	Recurse on operand #1 instead of operand #0.
      	<CEIL_MOD_EXPR>: Do not recurse.
      	<ROUND_MOD_EXPR>: Likewise.
      
      From-SVN: r229146
      Eric Botcazou committed
    • unconditionally compile most of the delay slot code · e90bedf5
      gcc/ChangeLog:
      
      2015-10-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
      
      	* cfgrtl.c (pass_free_cfg::execute): Adjust.
      	* final.c (dbr_sequence_length): Always define.
      	(shorten_branches): Adjust.
      	* genattr-common.c (main): Always define DELAY_SLOTS.
      	* genattr.c (main): Unconditionally declare functions and define
      	macros related to delay slots.
      	* genattrtab.c (write_eligible_delay): Adjust.
      	(main): Always write out delay slot functions.
      	* opts.c (default_options_table): Adjust.
      	* reorg.c (redirect_with_delay_slots_safe_p): Likewise.
      	(redirect_with_delay_list_safe_p): Likewise.
      	(fill_simple_delay_slots): Likewise.
      	(fill_slots_from_thread): Likewise.
      	(make_return_insns): Likewise.
      	(dbr_schedule): Likewise.
      	(rest_of_handle_delay_slots): Likewise.
      	(pass_delay_slots::gate): Likewise.
      	* toplev.c (process_options): Likewise.
      
      From-SVN: r229145
      Trevor Saunders committed
    • Update documentation for address space hooks · 0a798c16
              * target.def (addr_space.pointer_mode): Update documentation
              of default behavior.
              (addr_space.address_mode): Likewise.
              * tm.texi: Update.
      
      From-SVN: r229144
      Richard Henderson committed
    • Relax ADDR_SPACE_GENERIC_P checks for default address space hooks · 0f16c572
      If all address spaces use the same modes and forms, we would
      be forced to replicate these hooks in the backend.  Which would
      then require the creation of a new hook to replace
      target_default_pointer_address_modes_p.
      
      	* targhooks.c (default_addr_space_pointer_mode): Remove check
      	for generic address space.
      	(default_addr_space_address_mode): Likewise.
      	(default_addr_space_valid_pointer_mode): Likewise.
      	(default_addr_space_legitimate_address_p): Likewise.
      	(default_addr_space_legitimize_address): Likewise.
      
      From-SVN: r229143
      Richard Henderson committed
    • Change default of non-overlapping address space conversion · 2e44cd8b
      The current default of making all undefined coversions being
      set to null is not useful.  It has caused all users to lie
      and say that spaces are subsets when they are not, just so
      that they can override the conversion.
      
      	* expr.c (expand_expr_real_2): Use convert_modes on disjoint
      	address spaces.
      
      From-SVN: r229142
      Richard Henderson committed
    • Move cabs simplifications to match.pd · abcc43f5
      The fold code also expanded cabs(x+yi) to fsqrt(x*x+y*y) when optimising
      for speed.  tree-ssa-math-opts.c has this transformation too, but unlike
      the fold code, it first checks whether the target implements the sqrt
      optab.  The patch simply removes the fold code and keeps the
      tree-ssa-math-opts.c logic the same.
      
      gcc.dg/lto/20110201-1_0.c was relying on us replacing cabs
      with fsqrt even on targets where fsqrt is itself a library call.
      The discussion leading up to that patch suggested that we only
      want to test the fold on targets with a square root instruction,
      so it would be OK to skip the test on other targets:
      
              https://gcc.gnu.org/ml/gcc-patches/2011-07/msg01961.html
              https://gcc.gnu.org/ml/gcc-patches/2011-07/msg02036.html
      
      The patch does that using the sqrt_insn effective target.
      
      It's possible that removing the tree folds renders the LTO trick
      unnecessary, but since the test was originally for an ICE, it seems
      better to leave it as-is.
      
      Tested on x86_64-linux-gnu, aarch64-linux-gnu and arm-linux-gnueabi.
      20110201-1_0.c passes on all three.
      
      gcc/
      	* builtins.c (fold_builtin_cabs): Delete.
      	(fold_builtin_1): Update accordingly.  Handle constant arguments here.
      	* match.pd: Add rules previously handled by fold_builtin_cabs.
      
      gcc/testsuite/
      	* gcc.dg/lto/20110201-1_0.c: Restrict to sqrt_insn targets.
      	Add associated options for arm*-*-*.
      	(sqrt): Remove dummy definition.
      
      From-SVN: r229141
      Richard Sandiford committed
    • Remove fold_strip_sign_ops · 4adfc9a5
      This patch deletes fold_strip_sign_ops in favour of the
      gimple-ssa-backprop.c pass.
      
      Tested on x86_64-linux-gnu, aarch64-linux-gnu and arm-linux-gnueabi.
      
      gcc/
      	* fold-const.h (fold_strip_sign_ops): Delete.
      	* fold-const.c (fold_strip_sign_ops): Likewise.
      	(fold_unary_loc, fold_binary_loc): Remove calls to it.
      	* builtins.c (fold_builtin_cos, fold_builtin_cosh)
      	(fold_builtin_ccos): Delete.
      	(fold_builtin_pow): Don't call fold_strip_sign_ops.
      	(fold_builtin_hypot, fold_builtin_copysign): Likewise.
      	Remove fndecl argument.
      	(fold_builtin_1): Update calls accordingly.  Handle constant
      	cos, cosh, ccos and ccosh here.
      
      gcc/testsuite/
      	* gcc.dg/torture/builtin-symmetric-1.c: Don't run at -O0.
      
      From-SVN: r229140
      Richard Sandiford committed
    • Add a pass to back-propagate use information · 6a75d560
      This patch adds a pass that collects information that is common to
      all uses of an SSA name X and back-propagates that information up
      the statements that generate X.  The general idea is to use the
      information to simplify instructions (rather than a pure DCE) so
      I've simply called it gimple-ssa-backprop.c, to go with
      tree-ssa-forwprop.c.
      
      At the moment the only use of the pass is to remove unnecessary
      sign operations, so that it's effectively a global version of
      fold_strip_sign_ops.  I'm hoping it could be extended in future
      to record which bits of an integer are significant.  There are
      probably other potential uses too.
      
      A later patch gets rid of fold_strip_sign_ops.
      
      Tested on x86_64-linux-gnu, aarch64-linux-gnu and arm-linux-gnueabi.
      
      gcc/
      	* doc/invoke.texi (-fdump-tree-backprop, -fssa-backprop): Document.
      	* Makefile.in (OBJS): Add gimple-ssa-backprop.o.
      	* common.opt (fssa-backprop): New option.
      	* fold-const.h (negate_mathfn_p): Declare.
      	* fold-const.c (negate_mathfn_p): Make public.
      	* timevar.def (TV_TREE_BACKPROP): New.
      	* tree-pass.h (make_pass_backprop): Declare.
      	* passes.def (pass_backprop): Add.
      	* gimple-ssa-backprop.c: New file.
      
      gcc/testsuite/
      	* gcc.dg/tree-ssa/backprop-1.c, gcc.dg/tree-ssa/backprop-2.c,
      	gcc.dg/tree-ssa/backprop-3.c, gcc.dg/tree-ssa/backprop-4.c,
      	gcc.dg/tree-ssa/backprop-5.c, gcc.dg/tree-ssa/backprop-6.c: New tests.
      
      From-SVN: r229139
      Richard Sandiford committed
    • avoid generation of empty guards in trivial cases · 77ec8b8c
      We used to insert a trivial integer_onep condition around loops we know have
      more than an iteration.  This patch avoids generating those conditions.
      
      	* graphite-isl-ast-to-gimple.c (graphite_create_new_loop_guard): Do not call
      	create_empty_if_region_on_edge when cond_expr is true.
      	(translate_isl_ast_node_for): Check whether a guard has been generated.
      
      Co-Authored-By: Sebastian Pop <s.pop@samsung.com>
      
      From-SVN: r229137
      Aditya Kumar committed
    • Refactor graphite-sese-to-poly, sese.h, graphite-poly.h · caf5b4df
      Now that scop contains a list of all the basic blocks inside, it makes sense to
      iterate over only those basic blocks in
      graphite-sese-to-poly.c:rewrite_reductions_out_of_ssa,rewrite_cross_bb_scalar_deps_out_of_ssa
      
      Passes regtest and bootstrap.
      
      gcc/ChangeLog:
      
      2015-10-20  Aditya Kumar  <hiraditya@msn.com>
      
              * graphite-poly.h (struct dr_info): Added invalid_alias_set number.
              (operator=): Removed.
              (dr_info): Make alias_set number the last argument with default value of invalid_alias_set.
              * graphite-sese-to-poly.c (build_scop_drs): Update constructor of dr_info.
              (rewrite_reductions_out_of_ssa): Iterate only through the basic blocks which are inside region.
              (rewrite_cross_bb_scalar_deps_out_of_ssa): Same.
              * sese.h (struct sese_l): Removed assignment operator.
              (split_region_for_bb): Removed dead code.
      
      From-SVN: r229136
      Aditya Kumar committed
    • Refactoring sese.h and graphite-poly.h · d37fc3aa
      Rename scop->region to scop->scop_info
      Removed conversion constructors for sese_l and dr_info.
      Removed macros.
      
      No functional changed intended. Passes regtest and bootstrap.
      
      gcc/ChangeLog:
      
      2015-19-10  Aditya Kumar  <aditya.k7@samsung.com>
              * graphite-poly.h (struct dr_info): Removed conversion constructor.
              (struct scop): Renamed scop::region to scop::scop_info
              (scop_set_region): Same.
              (SCOP_REGION): Removed
              (SCOP_CONTEXT): Removed.
              (POLY_SCOP_P): Removed.
              * graphite-isl-ast-to-gimple.c (translate_isl_ast_node_user):
              Rename scop->region to scop->scop_info.
              (add_parameters_to_ivs_params): Same.
              (graphite_regenerate_ast_isl): Same.
              * graphite-poly.c (new_scop): Same.
              (free_scop): Same.
              (print_scop_params): Same.
              * graphite-scop-detection.c (scop_detection::remove_subscops): Same.
              (scop_detection::remove_intersecting_scops): Use pointer to sese_l.
              (dot_all_scops_1): Rename scop->region to scop->scop_info.
              (scop_detection::nb_pbbs_in_loops): Same.
              (find_scop_parameters): Same.
              (try_generate_gimple_bb): Same.
              (gather_bbs::before_dom_children): Same.
              (gather_bbs::after_dom_children): Same.
              (build_scops): Same.
              * graphite-sese-to-poly.c (build_scop_scattering): Same.
              (extract_affine_chrec): Same.
              (extract_affine): Same.
              (set_scop_parameter_dim): Same.
              (build_loop_iteration_domains): Same.
              (create_pw_aff_from_tree): Same.
              (add_param_constraints): Same.
              (build_scop_iteration_domain): Same.
              (build_scop_drs): Same.
              (analyze_drs_in_stmts): Same.
              (insert_out_of_ssa_copy_on_edge): Same.
              (rewrite_close_phi_out_of_ssa):Same.
              (rewrite_reductions_out_of_ssa):Same.
              (handle_scalar_deps_crossing_scop_limits):Same.
              (rewrite_cross_bb_scalar_deps):Same.
              (rewrite_cross_bb_scalar_deps_out_of_ssa):Same.
              (build_poly_scop):Same.
              (build_alias_set): Use pointer to dr_info.
              * graphite.c (print_graphite_scop_statistics):
              (graphite_transform_loops):
              * sese.h (struct sese_l): Remove conversion constructor.
      
      From-SVN: r229135
      Aditya Kumar committed
    • Add --param sra-max-scalarization-size-Ospeed to sra-12.c · 3d27a323
      	* gcc.dg/tree-ssa/sra-12.c: Enable test on all targets; add --param
      	sra-max-scalarization-size-Ospeed.
      
      From-SVN: r229134
      Alan Lawrence committed
    • re PR middle-end/67966 (ICE in convert_move, at expr.c:282) · b6d3c031
      
      	PR middle-end/67966
      	* tree.c (verify_type): Verify that TYPE_MODE match
       	between TYPE_CANONICAL and type.
       	* expr.c (store_expr_with_bounds): Revert my previous change.
       	* expmed.c (store_bit_field_1): Revert prevoius change.
       	* gimple-expr.c (useless_type_conversion_p): Require TYPE_MODE
       	to match for all types.
      
      From-SVN: r229132
      Jan Hubicka committed
    • re PR c/68024 (Diagnose variadic functions defined without prototypes) · e9122ef6
      	PR c/68024
      	* c-decl.c (start_function): Warn about vararg functions without
      	a prototype.
      
      	* gcc.dg/pr68024.c: New test.
      
      From-SVN: r229131
      Marek Polacek committed
    • omp-low.c (check_omp_nesting_restrictions): Check OpenACC loop nesting. · 68d58afb
      	gcc/
      	* omp-low.c (check_omp_nesting_restrictions): Check OpenACC loop
      	nesting.
      
      	testsuite/
      	* c-c++-common/goacc/clauses-fail.c: Adjust errors.
      	* c-c++-common/goacc/sb-1.c: Adjust errors.
      	* c-c++-common/goacc/sb-3.c: Adjust errors.
      	* c-c++-common/goacc/loop-1.c: Adjust errors.
      	* c-c++-common/goacc/nesting-1.c: Adjust errors.
      	* c-c++-common/goacc-gomp/nesting-fail-1.c: Adjust errors.
      	* c-c++-common/goacc-gomp/nesting-1.c: Adjust errors.
      
      From-SVN: r229129
      Nathan Sidwell committed
    • tm.texi: Regenerated. · 9f47c7e5
      gcc/
      
      	* doc/tm.texi: Regenerated.
      	* doc/tm.texi.in (TARGET_VECTORIZE_GET_MASK_MODE): New.
      	* stor-layout.c (layout_type): Use mode to get vector mask size.
      	* target.def (get_mask_mode): New.
      	* targhooks.c (default_get_mask_mode): New.
      	* targhooks.h (default_get_mask_mode): New.
      	* gcc/tree-vect-stmts.c (get_same_sized_vectype): Add special case
      	for boolean vector.
      	* tree.c (MAX_BOOL_CACHED_PREC): New.
      	(nonstandard_boolean_type_cache): New.
      	(build_nonstandard_boolean_type): New.
      	(make_vector_type): Vector mask has no canonical type.
      	(build_truth_vector_type): New.
      	(build_same_sized_truth_vector_type): New.
      	(truth_type_for): Support vector masks.
      	* tree.h (VECTOR_BOOLEAN_TYPE_P): New.
      	(build_truth_vector_type): New.
      	(build_same_sized_truth_vector_type): New.
      	(build_nonstandard_boolean_type): New.
      	* tree-cfg.c (verify_gimple_comparison) Require boolean
      	vector type for vector comparison.
      	(verify_gimple_assign_ternary): Likewise.
      	* optabs.c (expand_vec_cond_expr): Accept boolean vector as
      	condition operand.
      	* tree-vect-stmts.c (vectorizable_condition): Use boolean
      	vector type for vector comparison.
      	* tree-vect-generic.c (elem_op_func): Add new operand to hold
      	vector type.
      	(do_unop): Adjust to modified function type.
      	(do_binop): Likewise.
      	(do_plus_minus): Likewise.
      	(do_negate); Likewise.
      	(expand_vector_piecewise): Likewise.
      	(do_cond): Likewise.
      	(do_compare): Use comparison instead of condition.
      	(expand_vector_divmod): Use boolean vector type for comparison.
      	(expand_vector_operations_1): Skip scalar mask operations.
      
      gcc/c
      
      	* c-typeck.c (build_conditional_expr): Use boolean vector
      	type for vector comparison.
      	(build_vec_cmp): New.
      	(build_binary_op): Use build_vec_cmp for comparison.
      
      gcc/cp
      
      	* call.c (build_conditional_expr_1): Use boolean vector
      	type for vector comparison.
      	* typeck.c (build_vec_cmp): New.
      	(cp_build_binary_op): Use build_vec_cmp for comparison.
      
      gcc/testsuite/
      
      	* g++.dg/ext/vector22.C: Allow VEC_COND_EXPR.
      
      From-SVN: r229128
      Ilya Enkovich committed
    • omp-low.c (simd_clone_create): Set in_other_partition for created clones. · 6f9045f4
      gcc/
      
      	* omp-low.c (simd_clone_create): Set in_other_partition
      	for created clones.
      
      gcc/testsuite/
      
      	* gcc.dg/lto/simd-function_0.c: New test.
      
      From-SVN: r229127
      Ilya Enkovich committed
    • Proposed doc update for Explicit Reg Vars 2/3 · cbb5c732
      	* doc/extend.exp (Local Register Variables): Rewrite.
      
      From-SVN: r229124
      David Wohlferd committed
    • Add simple sign-stripping cases to match.pd · 5d3498b4
      This patch makes sure that, for every simplification that uses
      fold_strip_sign_ops, there are associated match.pd rules for the
      leaf sign ops, i.e. abs, negate and copysign.  A follow-on patch
      will add a pass to handle more complex cases.
      
      Tested on x86_64-linux-gnu, aarch64-linux-gnu and arm-linux-gnueabi.
      
      gcc/
      	* match.pd: Add rules to simplify ccos, ccosh, hypot, copysign
      	and x*x in cases where the operands are sign ops.  Extend these
      	rules to handle copysign as a sign op (including for cos, cosh
      	and pow, which already treated negate and abs as sign ops).
      
      From-SVN: r229123
      Richard Sandiford committed
    • re PR target/68018 (ICE: in ix86_compute_frame_layout, at… · dc3cf66b
      re PR target/68018 (ICE: in ix86_compute_frame_layout, at config/i386/i386.c:11308 with -mstackrealign)
      
      	PR target/68018
      	* config/i386/i386.c (ix86_compute_frame_layout): Realign the stack
      	for 64-bit MS_ABI targets also when default incoming stack boundary
      	is overriden.
      
      testsuite/ChangeLog:
      
      	PR target/68018
      	* gcc.target/i386/pr68018.c: New test.
      
      From-SVN: r229120
      Uros Bizjak committed
    • tree-ssa-sccvn.c (cond_stmts_equal_p): Compare two GIMPLE cond stmts, enhanced… · 87961d1b
      tree-ssa-sccvn.c (cond_stmts_equal_p): Compare two GIMPLE cond stmts, enhanced and split out from ...
      
      2015-10-21  Richard Biener  <rguenther@suse.de>
      
      	* tree-ssa-sccvn.c (cond_stmts_equal_p): Compare two GIMPLE
      	cond stmts, enhanced and split out from ...
      	(vn_phi_eq): ... here.
      
      From-SVN: r229119
      Richard Biener committed
    • re PR tree-optimization/68031 (cc1 crashes when compiling newlib / mktm_r.c) · 39c97e41
      2015-10-21  Richard Biener  <rguenther@suse.de>
      
      	PR middle-end/68031
      	* fold-const.c: Include tree-ssa-operands.h and tree-into-ssa.h.
      	(tree_ssa_name_nonnegative_warnv_p): Fold into ...
      	(tree_single_nonnegative_warnv_p): ... here.  For SSA names
      	make sure they are not registered for update.
      
      	* gcc.dg/torture/pr68031.c: New testcase.
      
      From-SVN: r229118
      Richard Biener committed
    • re PR tree-optimization/68026 (Regression in GCC-6.0.0's optimizer) · 33b35c28
      2015-10-21  Richard Biener  <rguenther@suse.de>
      
      	PR tree-optimization/68026
      	* tree-ssa-ccp.c (get_value_for_expr): Zero-extend mask for
      	unsigned VARYING values.
      
      	* gcc.dg/tree-ssa/ssa-ccp-39.c: New testcase.
      
      From-SVN: r229117
      Richard Biener committed
    • HOWTO_MERGE: New file. · 7047bc9c
      libsanitizer/
      
      	* HOWTO_MERGE: New file.
      
      From-SVN: r229116
      Max Ostapenko committed
    • sanitizer_stacktrace.cc (GetCanonicFrame): Assume we compiled code with GCC when… · 21d61063
      sanitizer_stacktrace.cc (GetCanonicFrame): Assume we compiled code with GCC when extracting the caller PC for ARM if...
      
      libsanitizer/
      
      	* sanitizer_common/sanitizer_stacktrace.cc (GetCanonicFrame): Assume we
      	compiled code with GCC when extracting the caller PC for ARM if no
      	valid frame pointer is available.
      
      From-SVN: r229115
      Max Ostapenko committed
    • re PR bootstrap/63888 (bootstrap failed when configured with… · 15ebe1fe
      re PR bootstrap/63888 (bootstrap failed when configured with -with-build-config=bootstrap-asan --disable-werror)
      
      libsanitizer/
      
      	PR bootstrap/63888
      	Reapply:
      	2015-02-20  Jakub Jelinek  <jakub@redhat.com>
      
      	* asan/asan_globals.cc (RegisterGlobal): Disable detect_odr_violation
      	support until it is rewritten upstream.
      
      	* c-c++-common/asan/pr63888.c: New test.
      
      From-SVN: r229114
      Max Ostapenko committed
    • re PR sanitizer/63958 (bootstrap failure in the sanitizer libs on sparc-linux-gnu) · 0d57d3e0
      libsanitizer/
      
      	PR sanitizer/63958
      	Reapply:
      	2014-10-14  David S. Miller  <davem@davemloft.net>
      
      	* sanitizer_common/sanitizer_platform_limits_linux.cc (time_t):
      	Define at __kernel_time_t, as needed for sparc.
      	(struct __old_kernel_stat): Don't check if __sparc__ is defined.
      	* libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.h
      	(__sanitizer): Define struct___old_kernel_stat_sz,
      	struct_kernel_stat_sz, and struct_kernel_stat64_sz for sparc.
      	(__sanitizer_ipc_perm): Adjust for sparc targets.
      	(__sanitizer_shmid_ds): Likewsie.
      	(__sanitizer_sigaction): Likewise.
      	(IOC_SIZE): Likewsie.
      
      From-SVN: r229113
      Max Ostapenko committed
    • libsanitizer merge from upstream r250806, compiler part. · 89e302b8
      gcc/
      
      	* asan.c (asan_emit_stack_protection): Don't pass local stack to
      	asan_stack_malloc_[n] anymore. Check if asan_stack_malloc_[n] returned
      	NULL and use local stack than.
      	(asan_finish_file): Insert __asan_version_mismatch_check_v[n] call
      	in addition to __asan_init.
      	* sanitizer.def (BUILT_IN_ASAN_INIT): Rename to __asan_init.
      	(BUILT_IN_ASAN_VERSION_MISMATCH_CHECK): Add new builtin call.
      	* asan.h (asan_intercepted_p): Handle new string builtins.
      	* ubsan.c (ubsan_use_new_style_p): New function.
      	(ubsan_instrument_float_cast): If location is unknown, assign
      	input_location to loc. Propagate loc to ubsan_create_data if
      	ubsan_use_new_style_p returned true.
      
      config/
      
      	* bootstrap-asan.mk: Replace ASAN_OPTIONS=detect_leaks with
      	LSAN_OPTIONS=detect_leaks.
      
      gcc/testsuite/
      
      	* c-c++-common/ubsan/float-cast-overflow-10.c: Adjust test.
      	* c-c++-common/ubsan/float-cast-overflow-8.c: Likewise.
      	* c-c++-common/ubsan/float-cast-overflow-9.c: Likewise.
      	* g++.dg/asan/default-options-1.C: Likewise.
      
      From-SVN: r229112
      Max Ostapenko committed
    • libsanitizer merge from upstream r250806. · 696d846a
      libsanitizer/
      
      2015-10-20  Maxim Ostapenko  <m.ostapenko@partner.samsung.com>
      
      	* All source files: Merge from upstream r250806.
      	* configure.ac (link_sanitizer_common): Add -lrt flag.
      	* configure.tgt: Enable TSAN and LSAN for aarch64-linux targets.
      	Set CXX_ABI_NEEDED=true for darwin.
      	* asan/Makefile.am (asan_files): Add new files.
      	(DEFS): Add DCAN_SANITIZE_UB=0 and remove unused and legacy
      	DASAN_FLEXIBLE_MAPPING_AND_OFFSET=0.
      	* asan/Makefile.in: Regenerate.
      	* ubsan/Makefile.am (ubsan_files): Add new files.
      	(DEFS): Add DCAN_SANITIZE_UB=1.
      	(libubsan_la_LIBADD): Add -lc++abi if CXX_ABI_NEEDED is true.
      	* ubsan/Makefile.in: Regenerate.
      	* tsan/Makefile.am (tsan_files): Add new files.
      	(DEFS): Add DCAN_SANITIZE_UB=0.
      	* tsan/Makefile.in: Regenerate.
      	* sanitizer_common/Makefile.am (sanitizer_common_files): Add new files.
      	* sanitizer_common/Makefile.in: Regenerate.
      	* asan/libtool-version: Bump the libasan SONAME.
      
      From-SVN: r229111
      Max Ostapenko committed
    • [PATCH] Move RTL printing code from sched-vis.c into print-rtl.c · 013a8899
      	* Makefile.in (OBJS): Remove sched-vis.c
      	* sched-vis.c: Removed.  Code moved into...
      	* print-rtl.c: Here.  Include cfg.h, pretty-print.h and print-rtl.h.
      	* rtl.h: Remove prototypes for functions now living in print-rtl.c
      	* print-rtl.h Add prototypes for new functions in print-rtl.c.
      	* auto-inc-dec.c: Include print-rtl.h
      	* cfgrtl.c, combine.c, final.c haifa-sched.c: Likewise.
      	* ira.c, lra-constraints.c, lra.c, sel-sched-dump.c: Likewise.
      
      From-SVN: r229110
      Jeff Law committed
    • [PATCH]Fix various ports failing due to unused parameter · 84c25fb5
      	* varasm.c (handle_vtv_comdat_section): Mark 2nd parameter with
      	ATTRIBUTE_UNUSED.
      
      From-SVN: r229109
      Jeff Law committed