1. 22 Sep, 2017 20 commits
    • re PR middle-end/35691 (Missed (a == 0) && (b == 0) into (a|(typeof(a)(b)) == 0… · a93952d2
      re PR middle-end/35691 (Missed (a == 0) && (b == 0) into (a|(typeof(a)(b)) == 0 when the types don't match)
      
      	PR middle-end/35691
      	* match.pd: Simplify x == -1 & y == -1 into (x & y) == -1
      	and x != -1 | y != -1 into (x & y) != -1.
      
      	* gcc.dg/pr35691-1.c: Use -fdump-tree-forwprop1-details
      	instead of -fdump-tree-forwprop-details in dg-options.
      	* gcc.dg/pr35691-2.c: Likewise.
      	* gcc.dg/pr35691-3.c: New test.
      	* gcc.dg/pr35691-4.c: New test.
      
      From-SVN: r253107
      Jakub Jelinek committed
    • re PR sanitizer/81929 (exponential slowdown in undefined behavior sanitizer for streaming) · 2dc589be
      	PR sanitizer/81929
      	* tree.c (struct replace_placeholders_t): Add pset field.
      	(replace_placeholders_r): Call cp_walk_tree with d->pset as
      	last argument instead of NULL.  Formatting fix.
      	(replace_placeholders): Add pset variable, add its address
      	into data.  Pass &pset instead of NULL to cp_walk_tree.
      
      	* g++.dg/ubsan/pr81929.C: New test.
      
      From-SVN: r253106
      Jakub Jelinek committed
    • debug/xcoff,cmd: add XCOFF support · c90df0d2
          
          Reviewed-on: https://go-review.googlesource.com/64592
      
      From-SVN: r253105
      Ian Lance Taylor committed
    • config.gcc: Add new case statement to set default_gnu_indirect_function. · f25afa93
      2017-09-22  Steve Ellcey  <sellcey@cavium.com>
      
      	* config.gcc: Add new case statement to set
      	default_gnu_indirect_function.  Remove it from x86_64-*-linux*,
      	i[34567]86-*, powerpc*-*-linux*spe*, powerpc*-*-linux*, s390-*-linux*,
      	s390x-*-linux* case statements.   Added aarch64 to the list of
      	supported architectures.
      
      From-SVN: r253104
      Steve Ellcey committed
    • PR82289: Computing peeling costs for irrelevant drs · ea44495d
      This PR shows that we weren't filtering out irrelevant stmts in
      vect_get_peeling_costs_all_drs (unlike related loops in which
      we iterate over all datarefs).
      
      2017-09-22  Richard Sandiford  <richard.sandiford@linaro.org>
      
      gcc/
      	PR tree-optimization/82289
      	* tree-vect-data-refs.c (vect_get_peeling_costs_all_drs): Check
      	STMT_VINFO_RELEVANT_P.
      
      gcc/testsuite/
      	PR tree-optimization/82289
      	* gcc.dg/vect/pr82289.c: New test.
      
      From-SVN: r253103
      Richard Sandiford committed
    • range_int_cst_p handling in extract_range_from_binary_expr_1 · 597fdf45
      extract_range_from_binary_expr_1 had:
      
            if (range_int_cst_p (&vr0)
                && range_int_cst_p (&vr1)
                && TYPE_OVERFLOW_WRAPS (expr_type))
              ...
            ...
            extract_range_from_multiplicative_op_1 (vr, code, &vr0, &vr1);
      
      but extract_range_from_multiplicative_op_1 also requires range_int_cst_p.
      I think we should bail out if either range isn't a constant.
      
      This might only be theoretical with current sources, but it's needed
      once polynomial constants are added.
      
      2017-09-22  Richard Sandiford  <richard.sandiford@linaro.org>
      	    Alan Hayward  <alan.hayward@arm.com>
      	    David Sherwood  <david.sherwood@arm.com>
      
      gcc/
      	* tree-vrp.c (extract_range_from_multiplicative_op_1): Assert
      	for VR_RANGE only; don't allow VR_ANTI_RANGE.
      	(extract_range_from_binary_expr_1): Don't call
      	extract_range_from_multiplicative_op_1 if !range_int_cst_p.
      
      Co-Authored-By: Alan Hayward <alan.hayward@arm.com>
      Co-Authored-By: David Sherwood <david.sherwood@arm.com>
      
      From-SVN: r253102
      Richard Sandiford committed
    • Let the target choose a vectorisation alignment · f702e7d4
      The vectoriser aligned vectors to TYPE_ALIGN unconditionally, although
      there was also a hard-coded assumption that this was equal to the type
      size.  This was inconvenient for SVE for two reasons:
      
      - When compiling for a specific power-of-2 SVE vector length, we might
        want to align to a full vector.  However, the TYPE_ALIGN is governed
        by the ABI alignment, which is 128 bits regardless of size.
      
      - For vector-length-agnostic code it doesn't usually make sense to align,
        since the runtime vector length might not be a power of two.  Even for
        power of two sizes, there's no guarantee that aligning to the previous
        16 bytes will be an improveent.
      
      This patch therefore adds a target hook to control the preferred
      vectoriser (as opposed to ABI) alignment.
      
      2017-09-22  Richard Sandiford  <richard.sandiford@linaro.org>
      	    Alan Hayward  <alan.hayward@arm.com>
      	    David Sherwood  <david.sherwood@arm.com>
      
      gcc/
      	* target.def (preferred_vector_alignment): New hook.
      	* doc/tm.texi.in (TARGET_VECTORIZE_PREFERRED_VECTOR_ALIGNMENT): New
      	hook.
      	* doc/tm.texi: Regenerate.
      	* targhooks.h (default_preferred_vector_alignment): Declare.
      	* targhooks.c (default_preferred_vector_alignment): New function.
      	* tree-vectorizer.h (dataref_aux): Add a target_alignment field.
      	Expand commentary.
      	(DR_TARGET_ALIGNMENT): New macro.
      	(aligned_access_p): Update commentary.
      	(vect_known_alignment_in_bytes): New function.
      	* tree-vect-data-refs.c (vect_calculate_required_alignment): New
      	function.
      	(vect_compute_data_ref_alignment): Set DR_TARGET_ALIGNMENT.
      	Calculate the misalignment based on the target alignment rather than
      	the vector size.
      	(vect_update_misalignment_for_peel): Use DR_TARGET_ALIGMENT
      	rather than TYPE_ALIGN / BITS_PER_UNIT to update the misalignment.
      	(vect_enhance_data_refs_alignment): Mask the byte misalignment with
      	the target alignment, rather than masking the element misalignment
      	with the number of elements in a vector.  Also use the target
      	alignment when calculating the maximum number of peels.
      	(vect_find_same_alignment_drs): Use vect_calculate_required_alignment
      	instead of TYPE_ALIGN_UNIT.
      	(vect_duplicate_ssa_name_ptr_info): Remove stmt_info parameter.
      	Measure DR_MISALIGNMENT relative to DR_TARGET_ALIGNMENT.
      	(vect_create_addr_base_for_vector_ref): Update call accordingly.
      	(vect_create_data_ref_ptr): Likewise.
      	(vect_setup_realignment): Realign by ANDing with
      	-DR_TARGET_MISALIGNMENT.
      	* tree-vect-loop-manip.c (vect_gen_prolog_loop_niters): Calculate
      	the number of peels based on DR_TARGET_ALIGNMENT.
      	* tree-vect-stmts.c (get_group_load_store_type): Compare the gap
      	with the guaranteed alignment boundary when deciding whether
      	overrun is OK.
      	(vectorizable_mask_load_store): Interpret DR_MISALIGNMENT
      	relative to DR_TARGET_ALIGNMENT instead of TYPE_ALIGN_UNIT.
      	(ensure_base_align): Remove stmt_info parameter.  Get the
      	target base alignment from DR_TARGET_ALIGNMENT.
      	(vectorizable_store): Update call accordingly.   Interpret
      	DR_MISALIGNMENT relative to DR_TARGET_ALIGNMENT instead of
      	TYPE_ALIGN_UNIT.
      	(vectorizable_load): Likewise.
      
      gcc/testsuite/
      	* gcc.dg/vect/vect-outer-3a.c: Adjust dump scan for new wording
      	of alignment message.
      	* gcc.dg/vect/vect-outer-3a-big-array.c: Likewise.
      
      Co-Authored-By: Alan Hayward <alan.hayward@arm.com>
      Co-Authored-By: David Sherwood <david.sherwood@arm.com>
      
      From-SVN: r253101
      Richard Sandiford committed
    • Fix testsuite fallout from r252976. · b2b67217
      gcc/testsuite/ChangeLog:
      
      	PR c/81854
      	* gcc.target/i386/pr80732.c: Correct a type error.
      
      From-SVN: r253100
      Martin Sebor committed
    • Add a vect_get_scalar_dr_size helper function · 20bdc473
      This patch adds a helper function for getting the number of bytes
      accessed by an unvectorised data reference, which helps when general
      modes have a variable size.
      
      2017-09-22  Richard Sandiford  <richard.sandiford@linaro.org>
      	    Alan Hayward  <alan.hayward@arm.com>
      	    David Sherwood  <david.sherwood@arm.com>
      
      gcc/
      	* tree-vectorizer.h (vect_get_scalar_dr_size): New function.
      	* tree-vect-data-refs.c (vect_update_misalignment_for_peel): Use it.
      	(vect_enhance_data_refs_alignment): Likewise.
      
      Co-Authored-By: Alan Hayward <alan.hayward@arm.com>
      Co-Authored-By: David Sherwood <david.sherwood@arm.com>
      
      From-SVN: r253099
      Richard Sandiford committed
    • [arm] Improve error checking in parsecpu.awk · dce04e57
      This patch adds a bit more error checking to parsecpu.awk to ensure
      that statements are not missing arguments or have excess arguments
      beyond those permitted.  It also slightly improves the handling of
      errors so that we terminate properly if parsing fails and be as
      helpful as we can while in the parsing phase.
      
      2017-09-22  Richard Earnshaw  <richard.earnshaw@arm.com>
      
      	* config/arm/parsecpu.awk (fatal): Note that we've encountered an
      	error.  Only quit immediately if parsing is complete.
      	(BEGIN): Initialize fatal_err and parse_done.
      	(begin fpu, end fpu): Check number of arguments.
      	(begin arch, end arch): Likewise.
      	(begin cpu, end cpu): Likewise.
      	(cname, tune for, tune flags, architecture, fpu, option): Likewise.
      	(optalias): Likewise.
      
      From-SVN: r253098
      Richard Earnshaw committed
    • [arm] auto-generate arm-isa.h from CPU descriptions · bdb0828f
      This patch autogenerates arm-isa.h from new entries in arm-cpus.in.
      This has the primary advantage that it makes the description file more
      self-contained, but it also solves the 'array dimensioning' problem
      that Tamar recently encountered.  It adds two new constructs to
      arm-cpus.in: features and fgroups.  Fgroups are simply a way of naming
      a group of feature bits so that they can be referenced together.  We
      follow the convention that feature bits are all lower case, while
      fgroups are (predominantly) upper case. This is helpful as in some
      contexts they share the same namespace. Most of the minor changes in
      this patch are related to adopting this new naming convention.
      
      2017-09-22  Richard Earnshaw  <richard.earnshaw@arm.com>
      
      	* config.gcc (arm*-*-*): Don't add arm-isa.h to tm_p_file.
      	* config/arm/arm-isa.h: Delete.  Move definitions to ...
      	* arm-cpus.in: ... here.  Use new feature and fgroup values.
      	* config/arm/arm.c (arm_option_override): Use lower case for feature
      	bit names.
      	* config/arm/arm.h (TARGET_HARD_FLOAT): Likewise.
      	(TARGET_VFP3, TARGET_VFP5, TARGET_FMA): Likewise.
      	* config/arm/parsecpu.awk (END): Add new command 'isa'.
      	(isa_pfx): Delete.
      	(print_isa_bits_for): New function.
      	(gen_isa): New function.
      	(gen_comm_data): Use print_isa_bits_for.
      	(define feature): New keyword.
      	(define fgroup): New keyword.
      	* config/arm/t-arm (TM_H): Remove.
      	(GTM_H): Add arm-isa.h.
      	(arm-isa.h): Add rule to generate file.
      	* common/config/arm/arm-common.c: (arm_canon_arch_option): Use lower
      	case for feature bit names.
      
      From-SVN: r253097
      Richard Earnshaw committed
    • C++: underline parameters in mismatching function calls · 9003adc7
      gcc/cp/ChangeLog:
      	* call.c (get_fndecl_argument_location): New function.
      	(convert_like_real): Use it  when complaining about argument type
      	mismatches.
      	* cp-tree.h (struct cp_parameter_declarator): Add "loc" field.
      	* parser.c (make_parameter_declarator): Add "loc" param and use
      	it to initialize the new field.
      	(cp_parser_translation_unit): Add UNKNOWN_LOCATION for "loc" of
      	the "no_parameters" parameter.
      	(cp_parser_parameter_declaration_list): Set the location of the
      	result of grokdeclarator to be the parameter's loc, assuming no
      	errors.
      	(cp_parser_parameter_declaration): Generate a location for the
      	parameter and pass to make_parameter_declarator.
      
      gcc/testsuite/ChangeLog:
      	* g++.dg/diagnostic/param-type-mismatch.C: Update expected results
      	to reflect highlighting of parameters; add test coverage for
      	callback parameters.
      
      From-SVN: r253096
      David Malcolm committed
    • re PR sanitizer/77631 (no symbols in backtrace shown by ASan when debug info is split) · 8c2ea6b2
      	PR sanitizer/77631
      	* configure.ac: Check for lstat and readlink.
      	* elf.c (lstat, readlink): Provide dummy versions if real versions
      	are not available.
      	* configure, config.h.in: Rebuild.
      
      From-SVN: r253095
      Ian Lance Taylor committed
    • graphite-isl-ast-to-gimple.c (graphite_verify): Inline into single caller. · 4d6e2f33
      2017-09-22  Richard Biener  <rguenther@suse.de>
      
      	* graphite-isl-ast-to-gimple.c (graphite_verify): Inline into
      	single caller.
      	(graphite_regenerate_ast_isl): Do not reset SCEV.  Move debug
      	print of no dependency loops ...
      	* graphite.c (graphite_transform_loops): ... here.
      	(canonicalize_loop_closed_ssa_form): Work from inner to outer
      	loops.
      	(same_close_phi_node, remove_duplicate_close_phi,
      	make_close_phi_nodes_unique, defined_in_loop_p): Fold into ...
      	(canonicalize_loop_closed_ssa): ... here and simplify.
      	* graphite-optimize-isl.c: Include tree-vectorizer.h.
      	(optimize_isl): Use dump_printf_loc to tell when we stopped
      	optimizing because of an ISL timeout.
      
      	* gcc.dg/graphite/scop-24.c: New testcase.
      
      From-SVN: r253094
      Richard Biener committed
    • re PR tree-optimization/82291 (wrong code at -O3 on x86_64-linux-gnu) · 2402ffb6
      2017-09-22  Richard Biener  <rguenther@suse.de>
      
      	PR tree-optimization/82291
      	* tree-if-conv.c (predicate_mem_writes): Make sure to
      	remove writes in blocks predicated with false.
      
      	* gcc.dg/torture/pr82291.c: New testcase.
      
      From-SVN: r253093
      Richard Biener committed
    • sese.c: Include cfganal.h. · 2c818750
      2017-09-22  Richard Biener  <rguenther@suse.de>
      
      	* sese.c: Include cfganal.h.
      	(if_region_set_false_region): Remove.
      	(create_if_region_on_edge): Likewise.
      	(move_sese_in_condition): Re-implement without destroying
      	dominators.
      
      From-SVN: r253092
      Richard Biener committed
    • re PR fortran/52832 ([F03] ASSOCIATE construct with proc-pointer selector is rejected) · ed3a22e7
      2017-09-22  Paul Thomas  <pault@gcc.gnu.org>
      
      	PR fortran/52832
      	* gfortran.dg/associate_31.f90 : Remove failing test.
      
      From-SVN: r253091
      Paul Thomas committed
    • graphite-isl-ast-to-gimple.c (translate_pending_phi_nodes): Verify both BBs… · ab0e5308
      graphite-isl-ast-to-gimple.c (translate_pending_phi_nodes): Verify both BBs contain loop PHI nodes before dispatching to copy_loop_phi_args.
      
      2017-09-21  Richard Biener  <rguenther@suse.de>
      
      	* graphite-isl-ast-to-gimple.c (translate_pending_phi_nodes):
      	Verify both BBs contain loop PHI nodes before dispatching to
      	copy_loop_phi_args.
      	(graphite_regenerate_ast_isl): Do not recompute dominators,
      	do not verify three times.  Restructure for clarity.
      	* graphite-scop-detection.c (same_close_phi_node,
      	remove_duplicate_close_phi, make_close_phi_nodes_unique,
      	defined_in_loop_p, canonicalize_loop_closed_ssa,
      	canonicalize_loop_closed_ssa_form): Simplify, remove excess
      	checking and SSA rewrite, move to ...
      	* graphite.c: ... here.  Include ssa.h and tree-ssa-loop-manip.h.
      	(graphite_initialize): Do not pass in ctx, do not reset the
      	SCEV cache, compute only dominators.
      	(graphite_transform_loops): Allocate ISL ctx after
      	graphite_initialize.  Call canonicalize_loop_closed_ssa_form.
      	Maintain post-dominators only around build_scops.
      	* sese.c (if_region_set_false_region): Make static.  Free
      	and recompute dominators.
      	(move_sese_in_condition): Assert we don't get called with
      	post-dominators computed.
      	* sese.h (if_region_set_false_region): Remove.
      
      From-SVN: r253090
      Richard Biener committed
    • sse.md ("mov<mode>_internal"): Use <sseinsnmode> mode attribute for TARGET_AVX512VL. · e7ba6a60
      /gcc
              * config/i386/sse.md ("mov<mode>_internal"): Use <sseinsnmode>
      	mode attribute for TARGET_AVX512VL.
      
      	* config/i386/i386.opt (mprefer-avx256): New option.
      	* config/i386/i386.c (ix86_target_string): Add -mprefer-avx256
      	to flag_opts.
      	(ix86_preferred_simd_mode): Return 256-bit AVX modes
      	for TARGET_PREFER_AVX256.
      	* doc/invoke.texi (x86 Options): Document -mprefer-avx256.
      
      /testsuite
      
              * gcc.target/i386/avx512f-constant-set.c: New test.
      
      	* g++.dg/ext/pr57362.C: Test __attribute__((target("prefer-avx256"))).
      	* gcc.target/i386/avx512f-prefer.c: New test.
      
      From-SVN: r253089
      Sergey Shalnov committed
    • Daily bump. · b9327b5a
      From-SVN: r253088
      GCC Administrator committed
  2. 21 Sep, 2017 20 commits
    • <commit missing files> · e7722a2f
      2017-09-13  Michael Meissner  <meissner@linux.vnet.ibm.com>
      
      	* gcc.target/powerpc/float128-fma1.c: New test.
      	* gcc.target/powerpc/float128-fma2.c: Likewise.
      	* gcc.target/powerpc/float128-sqrt1.c: Likewise.
      	* gcc.target/powerpc/float128-sqrt2.c: Likewise.
      
      From-SVN: r253083
      Michael Meissner committed
    • i386.c (ix86_adjust_stack_and_probe_stack_clash): Fix dump output if the only… · 1debe7ea
      i386.c (ix86_adjust_stack_and_probe_stack_clash): Fix dump output if the only stack space is for pushed registers.
      
      	* config/i386/i386.c (ix86_adjust_stack_and_probe_stack_clash):
      	Fix dump output if the only stack space is for pushed registers.
      
      	* lib/target-supports.exp
      	(check_effective_target_frame_pointer_for_non_leaf): Add
      	case for x86 Solaris.
      
      From-SVN: r253082
      Jeff Law committed
    • Fix spu build after r253072 · 138532b3
      2017-09-21  Richard Sandiford  <richard.sandiford@linaro.org>
      
      gcc/
      	* config/spu/spu.c (spu_sched_adjust_cost): Update after renaming
      	of insn_cost.
      
      From-SVN: r253080
      Richard Sandiford committed
    • re PR go/82284 (go -version segfaults on big endian architectures) · f0de4542
      	PR go/82284
      	* elf.c (backtrace_initialize): Set pd.exe_filename.
      
      From-SVN: r253078
      Ian Lance Taylor committed
    • re PR fortran/52832 ([F03] ASSOCIATE construct with proc-pointer selector is rejected) · b89a63b9
      2017-09-21  Paul Thomas  <pault@gcc.gnu.org>
      
      	PR fortran/52832
      	* match.c (gfc_match_associate): Before failing the association
      	try again, allowing a proc pointer selector.
      
      	PR fortran/80120
      	PR fortran/81903
      	PR fortran/82121
      	* primary.c (gfc_match_varspec): Introduce 'tgt_expr', which
      	points to the associate selector, if any. Go through selector
      	references, after resolution for variables, to catch any full
      	or section array references. If a class associate name does
      	not have the same declared type as the selector, resolve the
      	selector and copy the declared type to the associate name.
      	Before throwing a no implicit type error, resolve all allowed
      	selector expressions, and copy the resulting typespec.
      
      	PR fortran/67543
      	* resolve.c (resolve_assoc_var): Selector must cannot be the
      	NULL expression and it must have a type.
      
      	PR fortran/78152
      	* resolve.c (resolve_symbol): Allow associate names to be
      	coarrays.
      
      2017-09-21  Paul Thomas  <pault@gcc.gnu.org>
      
      	PR fortran/78512
      	* gfortran.dg/associate_26.f90 : New test.
      
      	PR fortran/80120
      	* gfortran.dg/associate_27.f90 : New test.
      
      	PR fortran/81903
      	* gfortran.dg/associate_28.f90 : New test.
      
      	PR fortran/82121
      	* gfortran.dg/associate_29.f90 : New test.
      
      	PR fortran/67543
      	* gfortran.dg/associate_30.f90 : New test.
      
      	PR fortran/52832
      	* gfortran.dg/associate_31.f90 : New test.
      
      From-SVN: r253077
      Paul Thomas committed
    • PR c/81882 - attribute ifunc documentation uses invalid code · 2bc668c2
      gcc/ChangeLog:
      
      	PR c/81882
      	* doc/extend.texi (attribute ifunc): Avoid relying on ill-formed
      	code (in C++) or code that triggers warnings.
      
      From-SVN: r253076
      Martin Sebor committed
    • [demangler PATCH]: Revert and update generic lambda demangling · 7cd7dbda
      https://gcc.gnu.org/ml/gcc-patches/2017-09/msg01482.html
      	PR demangler/82195
      	* cp-demangle.c (d_name): Revert addition of 'toplevel' parm.
      	(has_return_type): Recurse for DEMANGLE_COMPONENT_LOCAL_NAME.
      	(d_encoding): Revert d_name change.  Use is_fnqual_component_type
      	to strip modifiers that do not belong.
      	(d_special_name, d_class_enum_type): Revert d_name call change.
      	(d_expresion_1): Commonize DEMANGLE_COMPONENT_UNARY building.
      	(d_local_name): Revert parsing of a function type.
      	(d_print_comp_inner): An inner LOCAL_NAME might contain a
      	TEMPLATE.
      	* testsuite/demangle-expected: Add & adjust tests
      
      From-SVN: r253075
      Nathan Sidwell committed
    • re PR testsuite/78421 (vect-strided-a-u8-i2-gap.c fails on armeb) · 65d8c94d
      2017-09-21  Tamar Christina  <tamar.christina@arm.com>
      
      	PR testsuite/78421
      	* lib/target-supports.exp (check_effective_target_vect_hw_misalign):
      	Invert arm check.
      
      From-SVN: r253073
      Tamar Christina committed
    • Rename existing insn_cost to insn_sched_cost · ffc1ded5
      haifa-sched exports an insn_cost function, but it is only used in a
      few places and specialised to scheduling.  This patch renames it to
      insn_sched_cost.
      
      
      	* haifa-sched.c: Rename insn_cost to insn_sched_cost.
      	* sched-rgn.c: Ditto.
      	* sel-sched-ir.c: Ditto.
      
      From-SVN: r253072
      Segher Boessenkool committed
    • openmp.c (gfc_match_oacc_wait): Don't restrict wait directive arguments to constant integers. · a0e27dc2
      	gcc/fortran/
      	* openmp.c (gfc_match_oacc_wait): Don't restrict wait directive
      	arguments to constant integers.
      
      	gcc/testsuite/
      	* gfortran.dg/goacc/wait.f90: New test.
      
      From-SVN: r253071
      Cesar Philippidis committed
    • toplev: read from /dev/urandom only when needed · edabe3d8
      	* toplev.h (set_random_seed): Adjust return type.
      	* toplev.c (init_local_tick): Move eager initialization of random_seed
      	to get_random_seed.  Adjust comment.
      	(init_random_seed): Inline to get_random_seed, delete.
      	(get_random_seed): Initialize random_seed lazily.
      	(set_random_seed): Do not return previous value.
      	(print_switch_value): Do not call get_random_seed.
      
      From-SVN: r253069
      Alexander Monakov committed
    • ipa: fix dumping with deleted multiversioning nodes · 9acb4592
      2017-09-21  Evgeny Kudryashov <kudryashov@ispras.ru>
      
      	* cgraph.c (delete_function_version): New, broken out from...
      	(cgraph_node::delete_function_version): ...here.  Rename to
      	cgraph_node::delete_function_version_by_decl.  Update all uses.
      	(cgraph_node::remove): Call delete_function_version.
      
      From-SVN: r253066
      Evgeny Kudryashov committed
    • re PR sanitizer/81715 (asan-stack=1 redzone allocation is too inflexible) · 765b3379
      	PR sanitizer/81715
      	* tree-inline.c (expand_call_inline): Emit clobber stmts for
      	VAR_DECLs to which addressable non-volatile parameters are mapped
      	and for id->retvar after the return value assignment.  Clear
      	id->retval and id->retbnd after inlining.
      
      	* g++.dg/tree-ssa/pr8781.C (noop): Change argument type from
      	const predicate to const predicate & to avoid UB.
      	* g++.dg/opt/pr81715.C: New test.
      
      From-SVN: r253065
      Jakub Jelinek committed
    • re PR tree-optimization/82276 (-O2: ICE: SSA corruption during RTL pass: expand;… · c94f2d84
      re PR tree-optimization/82276 (-O2: ICE: SSA corruption during RTL pass: expand; at tree-ssa-coalesce.c:1010)
      
      2017-09-21  Richard Biener  <rguenther@suse.de>
      
      	PR tree-optimization/82276
      	PR tree-optimization/82244
      	* tree-vrp.c (build_assert_expr_for): Set
      	SSA_NAME_OCCURS_IN_ABNORMAL_PHI if the variable we assert on
      	has it set.
      	(remove_range_assertions): Revert earlier change.
      
      	* gcc.dg/torture/pr82276.c: New testcase.
      
      From-SVN: r253062
      Richard Biener committed
    • PR71951: Fix unwinding with -fomit-frame-pointer · 817221cc
      As described in PR71951, if libgcc is built with -fomit-frame-pointer,
      unwinding crashes, for example while doing a backtrace.  The underlying
      reason is the Dwarf unwinder does not setup the frame pointer register
      in the initialization code.  When later unwinding a function that uses
      the frame pointer, it tries to read FP using _Unwind_GetGR, and this
      crashes if has never restored FP.  To unwind correctly the first frame
      must save and restore FP (it is unwound in a special way so that it
      uses SP instead of FP).  This is done by adding -fno-omit-frame-pointer.
      
          gcc/
      	PR target/71951
      	* config/aarch64/aarch64.h (LIBGCC2_UNWIND_ATTRIBUTE): Define.
      
      From-SVN: r253061
      Wilco Dijkstra committed
    • graphite-isl-ast-to-gimple.c (graphite_regenerate_ast_isl): Restore valid IL… · 73d1c650
      graphite-isl-ast-to-gimple.c (graphite_regenerate_ast_isl): Restore valid IL after code generation errors.
      
      2017-09-21  Richard Biener  <rguenther@suse.de>
      
      	* graphite-isl-ast-to-gimple.c (graphite_regenerate_ast_isl):
      	Restore valid IL after code generation errors.
      	* graphite.c (graphite_transform_loops): Diagnose code
      	generation issues as MSG_MISSED_OPTIMIZATION and continue
      	with processing SCOPs.
      
      From-SVN: r253060
      Richard Biener committed
    • Make more use of simplify_gen_binary · a708f4b6
      This patch replaces various places that previously used:
      
        if (GET_CODE (y) == CONST_INT)
          ... plus_constant (..., x, [-]INTVAL (y)) ...
        else
          ... gen_rtx_PLUS/MINUS (..., x, y) ...
      
      with single calls to simplify_gen_binary.  This allows
      them to handle polynomial integers as well as constants.
      
      2017-09-21  Richard Sandiford  <richard.sandiford@linaro.org>
      	    Alan Hayward  <alan.hayward@arm.com>
      	    David Sherwood  <david.sherwood@arm.com>
      
      gcc/
      	* calls.c (compute_argument_addresses): Use simplify_gen_binary
      	rather than choosing between plus_constant and gen_rtx_<CODE>.
      	* expr.c (emit_push_insn): Likewise.
      	(expand_expr_real_2): Likewise.
      
      Co-Authored-By: Alan Hayward <alan.hayward@arm.com>
      Co-Authored-By: David Sherwood <david.sherwood@arm.com>
      
      From-SVN: r253059
      Richard Sandiford committed
    • Add copy_rtx call to RTL loop unroller · 6b1237e3
      This is needed if the step is an unshared constant, like many
      (const ...)s are.  Without this patch, libgfortran would fail
      to build for SVE.
      
      2017-09-21  Richard Sandiford  <richard.sandiford@linaro.org>
      	    Alan Hayward  <alan.hayward@arm.com>
      	    David Sherwood  <david.sherwood@arm.com>
      
      gcc/
      	* loop-unroll.c (split_iv): Call copy_rtx on the step.
      
      Co-Authored-By: Alan Hayward <alan.hayward@arm.com>
      Co-Authored-By: David Sherwood <david.sherwood@arm.com>
      
      From-SVN: r253058
      Richard Sandiford committed
    • Fix unguarded uses of tree_to_uhwi · 2e89be48
      This patch uses tree_fits_uhwi_p to protect a previously unguarded
      use of tree_to_uhwi.  Previously we would ICE for variable-sized types.
      
      2017-09-20  Richard Sandiford  <richard.sandiford@linaro.org>
      	    Alan Hayward  <alan.hayward@arm.com>
      	    David Sherwood  <david.sherwood@arm.com>
      
      gcc/
      	* tree.c (find_atomic_core_type): Check tree_fits_uhwi_p before
      	calling tree_to_uhwi.
      
      Co-Authored-By: Alan Hayward <alan.hayward@arm.com>
      Co-Authored-By: David Sherwood <david.sherwood@arm.com>
      
      From-SVN: r253057
      Richard Sandiford committed