1. 13 Nov, 2018 22 commits
    • [ARC] Refurbish and improve prologue/epilogue functions. · 90b48013
      Reimplement how prologue and epilogue is emitted to accomodate
      enter/leave instructions, as well as improving the size of the
      existing techinques.
      
      The following modifications are added:
      
      - millicode thunk calls can be now selected regardless of the
        optimization level. However they are enabled for size optimizations
        by default.  Also, the millicode optimization is turned off when we
        compile for long jumps.
      
      - the compiler is able to use enter/leave instructions for prologue
        and epilogue. As these instructions are not ABI compatible we gurad
        them under a switch (i.e., -mcode-density-frame). When this option
        is on, the compiler will try emitting enter/leave instructions, if
        not, then millicode thunk calls (if enabled), and latter the regular
        push/pop instructions.
      
      - The prologue/epilogue is now optimized to use pointer walks, hence
        improving the chance to have push_s/pop_s instructions emitted. It
        also tries to combine the stack adjustments with load/store
        operations.
      
      gcc/
      xxxxx-xx-xx  Claudiu Zissulescu  <claziss@synopsys.com>
      
              * common/config/arc/arc-common.c (arc_option_optimization_table):
              Millicode optimization is default on for size optimizations.
              * config/arc/arc-protos.h (arc_check_multi): New function.
              * config/arc/arc.c (RTX_OK_FOR_OFFSET_P): Rearange.
              (ENTER_LEAVE_START_REG): Define.
              (ENTER_LEAVE_END_REG): Likewise.
              (arc_override_options): Disable millicode when long calls option
              is on.
              (arc_frame_info): Change it from int to bool.
              (arc_compute_frame_size): Clean up.
              (arc_save_restore): Remove.
              (frame_save_reg): New function.
              (frame_restore_reg): Likewise.
              (arc_enter_leave_p): Likewise.
              (arc_save_callee_saves): Likewise.
              (arc_restore_callee_saves): Likewise.
              (arc_save_callee_enter): Likewise.
              (arc_restore_callee_leave): Likewise.
              (arc_save_callee_milli): Likewise.
              (arc_restore_callee_milli): Likewise.
              (arc_expand_prologue): Reimplement to emit enter/leave
              instructions.
              (arc_expand_epilogue): Likewise.
              (arc_check_multi): New function.
              * config/arc/arc.md (push_multi_fp): New pattern.
              (push_multi_fp_blink): Likewise.
              (pop_multi_fp): Likewise.
              (pop_multi_fp_blink): Likewise.
              (pop_multi_fp_ret): Likewise.
              (pop_multi_fp_blink_ret): Likewise.
              * config/arc/arc.opt (mmillicode): Update option.
              (mcode-density-frame): New option.
              * config/arc/predicates.md (push_multi_operand): New predicate.
              (pop_multi_operand): Likewise.
              * doc/invoke.texi (ARC): Update ARC options information.
      
      gcc/testsuite
      xxxxx-xx-xx  Claudiu Zissulescu  <claziss@synopsys.com>
      
              * gcc.target/arc/firq-1.c: Update test.
              * gcc.target/arc/firq-3.c: Likewise.
              * gcc.target/arc/firq-4.c: Likewise.
              * gcc.target/arc/interrupt-6.c: Likewise.
      
      From-SVN: r266065
      Claudiu Zissulescu committed
    • [ARC] Add peephole rules to combine store/loads into double store/loads · 8fa2c211
      Simple peephole rules which combines multiple ld/st instructions into
      64-bit load/store instructions. It only works for architectures which
      are having double load/store option on.
      
      gcc/
      	Claudiu Zissulescu  <claziss@synopsys.com>
      
      	* config/arc/arc-protos.h (gen_operands_ldd_std): Add.
      	* config/arc/arc.c (operands_ok_ldd_std): New function.
      	(mem_ok_for_ldd_std): Likewise.
      	(gen_operands_ldd_std): Likewise.
      	* config/arc/arc.md: Add peephole2 rules for std/ldd.
      
      From-SVN: r266064
      Claudiu Zissulescu committed
    • toplev.c (output_stack_usage): Turn test on flag_stack_usage into test on stack_usage_file. · 2cc2582c
      	* toplev.c (output_stack_usage): Turn test on flag_stack_usage into
      	test on stack_usage_file.
      	(lang_dependent_init): Do not open the .su file if generating LTO.
      
      From-SVN: r266063
      Eric Botcazou committed
    • re PR rtl-optimization/87918 (ICE in simplify_binary_operation, at… · 6bddea17
      re PR rtl-optimization/87918 (ICE in simplify_binary_operation, at simplify-rtx.c:2153 since r264688)
      
      	PR rtl-optimization/87918
      	* simplify-rtx.c (simplify_merge_mask): For COMPARISON_P, use
      	simplify_gen_relational rather than simplify_gen_binary.
      
      	* gcc.target/i386/pr87918.c: New test.
      
      From-SVN: r266062
      Jakub Jelinek committed
    • tree-ssanames.h (set_range_info): Use value_range_base. · 9384a5af
      2018-11-13  Richard Biener  <rguenther@suse.de>
      
      	* tree-ssanames.h (set_range_info): Use value_range_base.
      	(get_range_info): Likewise.
      	* tree-ssanames.c (set_range_info): Likewise.
      	(get_range_info): Likewise.
      	* tree-vrp.c (value_range_base::union_helper): Split
      	out common parts of value_range[_base]::union_.
      	(value_range_base::union_): Update.
      	(value_range::union_): Likewise.
      	(determine_value_range_1): Use value_range_base.
      	(determine_value_range): Likewise.
      	* tree-vrp.h (value_range_base::union_helper): Move ...
      	(value_range::union_helper): ... from here.
      
      From-SVN: r266061
      Richard Biener committed
    • linux-unwind.h (_sig_ucontext_t): Remove. · b2a71af6
      2018-11-13  Xianmiao Qu  <xianmiao_qu@c-sky.com>
      
      	libgcc/
      	* config/csky/linux-unwind.h (_sig_ucontext_t): Remove.
      	(csky_fallback_frame_state): Modify the check of the 
      	instructions to adapt to changes in the kernel
      
      From-SVN: r266060
      Xianmiao Qu committed
    • misc.c (gnat_init_gcc_eh): Set -fnon-call-exceptions for the runtime on platforms where... · 77ece7f5
      	* gcc-interface/misc.c (gnat_init_gcc_eh): Set -fnon-call-exceptions
      	for the runtime on platforms where System.Machine_Overflow is true.
      
      From-SVN: r266057
      Eric Botcazou committed
    • Implement P0315R4, Lambdas in unevaluated contexts. · 0c1e0d63
      When lambdas were added in C++11 they were banned from unevaluated contexts
      as a way to avoid needing to deal with them in mangling or SFINAE.  This
      proposal avoids that with a more narrow proposal: lambdas never compare as
      equivalent (so we don't need to mangle them), and substitution failures
      within a lambda are hard errors.  Lambdas appearing in places that types
      couldn't previously have been declared introduces various complications; in
      particular, it seems likely to mean types with no linkage being used more
      broadly, risking ODR violations.  I want to follow up this patch with some
      related diagnostics.
      
      	* decl2.c (min_vis_expr_r): Handle LAMBDA_EXPR.
      	* mangle.c (write_expression): Handle LAMBDA_EXPR.
      	* parser.c (cp_parser_lambda_expression): Allow lambdas in
      	unevaluated context.  Start the tentative firewall sooner.
      	(cp_parser_lambda_body): Use cp_evaluated.
      	* pt.c (iterative_hash_template_arg): Handle LAMBDA_EXPR.
      	(tsubst_function_decl): Substitute a lambda even if it isn't
      	dependent.
      	(tsubst_lambda_expr): Use cp_evaluated.  Always complain.
      	(tsubst_copy_and_build) [LAMBDA_EXPR]: Do nothing if tf_partial.
      	* semantics.c (begin_class_definition): Allow in template parm list.
      	* tree.c (strip_typedefs_expr): Pass through LAMBDA_EXPR.
      	(cp_tree_equal): Handle LAMBDA_EXPR.
      
      From-SVN: r266056
      Jason Merrill committed
    • Avoid double substitution with complete explicit template arguments. · 7d119905
      Previously, when we got a function template with explicit arguments for all
      of the template parameters, we still did "deduction", which of course
      couldn't deduce anything, but did other deduction-time checking of
      non-dependent conversions and such.  This broke down with the unevaluated
      lambdas patch (to follow): substituting into the lambda multiple times, once
      to get the function type for deduction and then again to generate the actual
      decl, doesn't work, since different substitutions of a lambda produce
      different types.  I believe that skipping the initial substitution when we
      have all the arguments is still conformant, and produces better diagnostics
      for some testcases.
      
      	* pt.c (fn_type_unification): If we have a full set of explicit
      	arguments, go straight to substitution.
      
      From-SVN: r266055
      Jason Merrill committed
    • decl2.c (min_vis_expr_r, [...]): New. · 7c23c87c
      	* decl2.c (min_vis_expr_r, expr_visibility): New.
      
      We weren't properly constraining visibility based on names that appear in
      the mangled representation of expressions.  This was made more obvious
      by the upcoming unevaluated lambdas patch.
      
      	(min_vis_r): Call expr_visibility.
      	(constrain_visibility_for_template): Likewise.
      
      From-SVN: r266054
      Jason Merrill committed
    • Implement P0722R3, destroying operator delete. · a6bb6b07
      A destroying operator delete takes responsibility for calling the destructor
      for the object it is deleting; this is intended to be useful for sized
      delete of a class allocated with a trailing buffer, where the compiler can't
      know the size of the allocation, and so would pass the wrong size to the
      non-destroying sized operator delete.
      
      gcc/c-family/
      	* c-cppbuiltin.c (c_cpp_builtins): Define
      	__cpp_impl_destroying_delete.
      gcc/cp/
      	* call.c (std_destroying_delete_t_p, destroying_delete_p): New.
      	(aligned_deallocation_fn_p, usual_deallocation_fn_p): Use
      	destroying_delete_p.
      	(build_op_delete_call): Handle destroying delete.
      	* decl2.c (coerce_delete_type): Handle destroying delete.
      	* init.c (build_delete): Don't call dtor with destroying delete.
      	* optimize.c (build_delete_destructor_body): Likewise.
      libstdc++-v3/
      	* libsupc++/new (std::destroying_delete_t): New.
      
      From-SVN: r266053
      Jason Merrill committed
    • Implement P0780R2, pack expansion in lambda init-capture. · 7de37c97
      Mostly this was straightforward; the tricky bit was finding, in the
      instantiation, the set of capture proxies built when instantiating the
      init-capture.  The comment in lookup_init_capture_pack goes into detail.
      
      	* parser.c (cp_parser_lambda_introducer): Parse pack init-capture.
      	* pt.c (tsubst_pack_expansion): Handle init-capture packs.
      	(lookup_init_capture_pack): New.
      	(tsubst_expr) [DECL_EXPR]: Use it.
      	(tsubst_lambda_expr): Remember field pack expansions for
      	init-captures.
      
      From-SVN: r266052
      Jason Merrill committed
    • cp-tree.h (struct cp_evaluated): New. · 16e723e6
      	* cp-tree.h (struct cp_evaluated): New.
      
      This patch simplifies the saving/clearing/restoring of
      cp_unevaluated_operand and c_inhibit_evaluation_warnings in the presence of
      mid-block returns.
      
      	* init.c (get_nsdmi): Use it.
      	* parser.c (cp_parser_enclosed_template_argument_list): Use it.
      	* pt.c (coerce_template_parms, tsubst_aggr_type): Use it.
      
      From-SVN: r266051
      Jason Merrill committed
    • Change __cpp_explicit_bool to __cpp_conditional_explicit. · e4bd6d5e
      People objected to the old macro name as unclear, so it was changed.
      
      	* c-cppbuiltin.c (c_cpp_builtins): Change __cpp_explicit_bool to
      	__cpp_conditional_explicit.
      
      From-SVN: r266050
      Jason Merrill committed
    • [RS6000] secondary_reload and find_replacement · 7877f4e0
      This patch removes a call only necessary when using reload.  It also
      corrects a PRE_DEC address offset.
      
      	* config/rs6000/rs6000.c (rs6000_secondary_reload_inner): Negate
      	offset for PRE_DEC.
      	(rs6000_secondary_reload_gpr): Don't call find_replacement.
      
      From-SVN: r266049
      Alan Modra committed
    • re PR middle-end/59634 (Documentation (info/man page): lack of information for… · c6459f2d
      re PR middle-end/59634 (Documentation (info/man page): lack of information for cache size parameters (--param))
      
      2018-11-13  Sandra Loosemore  <sandra@codesourcery.com>
      
      	PR middle-end/59634
      
      	gcc/
      	* doc/invoke.texi (Optimize Options): Clarify that the
      	l1-cache-line-size, l1-cache-size, and l2-cache-size parameters
      	apply to data cache size.
      
      From-SVN: r266048
      Sandra Loosemore committed
    • [RS6000] Comment fixes · 620f2b17
      	* config/rs6000/rs6000.c (rs6000_emit_prologue): Comment fix.
      
      From-SVN: r266047
      Alan Modra committed
    • [RS6000] Rotate testcase · 21edd5af
      The testcase exercises one of the rotate patterns.
      
      gcc/
      	* config/rs6000/predicates.md (logical_const_operand),
      	(logical_operand): Correct comment.
      gcc/testsuite/
      	* gcc.target/powerpc/rotmask.c: New.
      
      From-SVN: r266046
      Alan Modra committed
    • [RS6000] Hide insn not needing to be public · ee0d2718
      	* config/rs6000/rs6000.md (addsi3_high): Prefix with '*'.
      
      From-SVN: r266045
      Alan Modra committed
    • [RS6000] Ignore "c", "l" and "h" for register preference · ab950374
      This catches a few places where move insn patterns don't slightly
      disparage CTR, LR and VRSAVE regs.  Also fixes the doc for the rs6000
      h constraint, and removes an r->cl alternative covered by r->h.
      
      	* gcc/doc/md.texi (Machine Constraints): Correct rs6000 h constraint
      	description.
      	* config/rs6000/rs6000.md (movsi_internal1): Delete MT%0 case
      	covered by alternative.
      	(movcc_internal1): Ignore h for register preference.
      	(mov<mode>_hardfloat64): Likewise.
      	(mov<mode>_softfloat): Ignore c, l, h for register preference.
      
      From-SVN: r266044
      Alan Modra committed
    • re PR preprocessor/47823 (#pragma once is documented in a weird spot) · 37e5eefb
      2018-11-12  Sandra Loosemore  <sandra@codesourcery.com>
      
      	PR preprocessor/47823
      
      	gcc/
      	* doc/cpp.texi (Alternatives to Wrapper #ifndef): Move #pragma once
      	documentation to...
      	(Pragmas): ...here.  
      	* doc/extend.texi (Pragmas): Note additional pragmas documented
      	in the CPP manual.
      
      From-SVN: r266043
      Sandra Loosemore committed
    • Daily bump. · 85177e10
      From-SVN: r266042
      GCC Administrator committed
  2. 12 Nov, 2018 17 commits
    • re PR target/86677 (popcount builtin detection is breaking some kernel build) · 06a6b46a
      gcc/ChangeLog:
      
      2018-11-13  Kugan Vivekanandarajah  <kuganv@linaro.org>
      
      	PR middle-end/86677
      	PR middle-end/87528
      	* tree-scalar-evolution.c (expression_expensive_p): Make BUILTIN POPCOUNT
      	as expensive when backend does not define it.
      
      gcc/testsuite/ChangeLog:
      
      2018-11-13  Kugan Vivekanandarajah  <kuganv@linaro.org>
      
      	PR middle-end/86677
      	PR middle-end/87528
      	* g++.dg/tree-ssa/pr86544.C: Run only for target supporting popcount
      	pattern.
      	* gcc.dg/tree-ssa/popcount.c: Likewise.
      	* gcc.dg/tree-ssa/popcount2.c: Likewise.
      	* gcc.dg/tree-ssa/popcount3.c: Likewise.
      	* gcc.target/aarch64/popcount4.c: New test.
      	* lib/target-supports.exp (check_effective_target_popcountl): New.
      
      From-SVN: r266039
      Kugan Vivekanandarajah committed
    • MIPS: Default to --with-llsc for the R5900 Linux target as well · 240ae287
      The Linux kernel requires and emulates LL and SC for the R5900 too.  The
      special --without-llsc default for the R5900 is therefore not applicable
      in that case.
      
      Reviewed-by: Maciej W. Rozycki <macro@linux-mips.org>
      
      2018-11-12  Fredrik Noring  <noring@nocrew.org>
      
      	gcc/
      	* config.gcc: Update with-llsc defaults for MIPS r5900.
      
      From-SVN: r266038
      Fredrik Noring committed
    • Instrument only selected files (PR gcov-profile/87442). · e18240ff
      2018-11-12  Martin Liska  <mliska@suse.cz>
      
      	PR gcov-profile/87442
      	* common.opt: Add -fprofile-filter-files and -fprofile-exclude-files
      	options.
      	* doc/invoke.texi: Document them.
      	* tree-profile.c (parse_profile_filter): New.
      	(parse_profile_file_filtering): Likewise.
      	(release_profile_file_filtering): Likewise.
      	(include_source_file_for_profile): Likewise.
      	(tree_profiling): Filter source files based on the
      	newly added options.
      2018-11-12  Martin Liska  <mliska@suse.cz>
      
      	PR gcov-profile/87442
      	* gcc.dg/profile-filtering-1.c: New test.
      	* gcc.dg/profile-filtering-2.c: New test.
      
      From-SVN: r266037
      Martin Liska committed
    • Fix documentation of __builtin_cpu_is and __builtin_cpu_supports for x86. · e375da43
      2018-11-12  Martin Liska  <mliska@suse.cz>
      
      	PR target/87903
      	* doc/extend.texi: Add missing values for __builtin_cpu_is and
      	__builtin_cpu_supports for x86 target.
      
      From-SVN: r266036
      Martin Liska committed
    • re PR middle-end/21110 (incorrect documentat for high and lo_sum RTL operators) · 52ed66ec
      2018-11-12  Sandra Loosemore  <sandra@codesourcery.com>
      
      	PR middle-end/21110
      
      	gcc/
      	* doc/rtl.texi (Constants): Clarify that mode of "high" doesn't
      	have to be Pmode.
      	(Arithmetic): Likewise for "lo_sum".
      
      From-SVN: r266035
      Sandra Loosemore committed
    • PR c/81824 - Warn for missing attributes with function aliases · 6f59f36b
      gcc/testsuite/ChangeLog:
      	* gcc.dg/Wattribute-alias.c: Require ifunc support.
      
      From-SVN: r266034
      Martin Sebor committed
    • [PR87815]Don't generate shift sequence for load replacement in DSE when the mode… · e6575643
      [PR87815]Don't generate shift sequence for load replacement in DSE when the mode size is not compile-time constant
      
      The patch adds a check if the gap is compile-time constant.
      
      This happens when dse decides to replace the load with previous store value.
      The problem is that, shift sequence could not accept compile-time non-constant
      mode operand.
      
      gcc/
      
      2018-11-12  Renlin Li  <renlin.li@arm.com>
      
      	PR target/87815
      	* dse.c (get_stored_val): Add check for compile-time
      	constantness of gap.
      
      gcc/testsuite/
      
      2018-11-12  Renlin Li  <renlin.li@arm.com>
      
      	PR target/87815
      	* gcc.target/aarch64/sve/pr87815.c: New.
      
      From-SVN: r266033
      Renlin Li committed
    • PR libstdc++/87963 fix build for 64-bit mingw · d5cc6de1
      	PR libstdc++/87963
      	* src/c++17/memory_resource.cc (chunk::_M_bytes): Change type from
      	unsigned to uint32_t.
      	(chunk): Fix static assertion for 64-bit targets that aren't LP64.
      	(bigblock::all_ones): Fix undefined shift.
      
      From-SVN: r266032
      Jonathan Wakely committed
    • [GCC, ARM] Enable armv8.5-a and add +sb and +predres for previous ARMv8-a in ARM · ae78a89f
      This patch adds -march=armv8.5-a to the Arm backend.
      Armv8.5-A also adds two new security features:
      - Speculation Barrier instruction
      - Execution and Data Prediction Restriction Instructions
      These are made optional to all older Armv8-A versions. Thus we are adding two
      new options "+sb" and "+predres" to all older Armv8-A. These are passed on to
      the assembler and have no code generation effects and have already gone in the
      trunk of binutils.
      
      *** gcc/ChangeLog ***
      
      2018-11-12  Sudakshina Das  <sudi.das@arm.com>
      
      	* config/arm/arm-cpus.in (armv8_5, sb, predres): New features.
      	(ARMv8_5a): New fgroup.
      	(armv8.5-a): New arch.
      	(armv8-a, armv8.1-a, armv8.2-a, armv8.3-a, armv8.4-a): New options
      	sb and predres.
      	* config/arm/arm-tables.opt: Regenerate.
      	* config/arm/t-aprofile: Add matching rules for -march=armv8.5-a
      	* config/arm/t-arm-elf (all_v8_archs): Add armv8.5-a.
      	* config/arm/t-multilib (v8_5_a_simd_variants): New variable.
      	Add matching rules for -march=armv8.5-a and extensions.
      	* doc/invoke.texi (ARM options): Document -march=armv8.5-a.
      	Add sb and predres to all armv8-a except armv8.5-a.
      
      *** gcc/testsuite/ChangeLog ***
      
      2018-11-12  Sudakshina Das  <sudi.das@arm.com>
      
      	* gcc.target/arm/multilib.exp: Add some -march=armv8.5-a
      	combination tests.
      
      From-SVN: r266031
      Sudakshina Das committed
    • 2018-11=12 Richard Biener <rguenther@suse.de> · 27922d51
      	* tree-vrp.h (value_range[_base]::set): Make public.  Provide
      	overload for single value.
      	(value_range[_base]::set_nonnull): New.
      	(value_range[_base]::set_null): Likewise.
      	(value_range): Document bitmap copying behavior, mark
      	copy constructor and assignment operator deleted.
      	(value_range::move): New.
      	(value_range::set_and_canonicalize): Default bitmap to zero.
      	(set_value_range_to_nonnull): Remove.
      	(set_value_range_to_null): Likewise.
      	(set_value_range): Likewise.
      	(set_value_range_to_value): Likewise.
      	(extract_range_from_unary_expr): Work on value_range_base.
      	(extract_range_from_binary_expr_1): Likewise.  Rename to...
      	(extract_range_from_binary_expr): ... this.
      	* tree-vrp.c (value_range::update): Clear equiv bitmap
      	if required.
      	(value_range::move): New, move equiv bitmap.
      	(value_range_base::set_undefined): Avoid assignment.
      	(value_range::set_undefined): Likewise.
      	(value_range_base::set_varying): Likewise.
      	(value_range::set_varying): Likewise.
      	(set_value_range): Remove.
      	(value_range_base::set): New overload for value.
      	(value_range::set): Likewise.
      	(set_value_range_to_nonnull): Remove.
      	(value_range_base::set_nonnull): New.
      	(value_range::set_nonnull): Likewise.
      	(set_value_range_to_null): Remove.
      	(value_range_base::set_null): New.
      	(value_range::set_null): Likewise.
      	(range_is_null): Work on value_range_base.
      	(range_is_nonnull): Likewise.
      	(ranges_from_anti_range): Likewise.
      	(extract_range_into_wide_ints): Likewise.
      	(extract_range_from_multiplicative_op): Likewise.
      	(extract_range_from_binary_expr): Likewise.  Update for API changes.
      	(extract_range_from_unary_expr): Likewise.  Remove OBJ_TYPE_REF
      	handling.
      	(value_range::intersect_helper): Avoid copy and assignment.
      	(value_range::union_helper): Likewise.
      	(determine_value_range_1): Adjust.
      	* gimple-ssa-evrp-analyze.c (evrp_range_analyzer::try_find_new_range):
      	Avoid assignment by using move.
      	(evrp_range_analyzer::record_ranges_from_stmt): Avoid assignment.
      	* tree-ssa-threadedge.c (record_temporary_equivalences_from_phis):
      	Likewise.
      	* tree-ssanames.c (get_range_info): Likewise.
      	* vr-values.h (vr_values::get_vr_for_comparison): Adjust API.
      	* vr-values.c (vr_values::get_value_range): Adjust.
      	(vr_values::update_value_range): Likewise.
      	(symbolic_range_based_on_p): Work on value_range_base.
      	(vr_values::extract_range_from_binary_expr): Use value_range_base.
      	(vr_values::extract_range_from_unary_expr): Likewise.
      	(vr_values::extract_range_from_cond_expr): Avoid assignment.
      	(vr_values::extract_range_from_comparison): Adjust.
      	(vr_values::check_for_binary_op_overflow): Use value_range_base.
      	(vr_values::extract_range_basic): Adjust.
      	(vr_values::adjust_range_with_scev): Likewise.
      	(vr_values::vrp_visit_assignment_or_call): Likewise.
      	(vr_values::get_vr_for_comparison): Change API to avoid
      	assignment and copy construction.
      	(vr_values::compare_name_with_value): Adjust accordingly.
      	(vr_values::compare_names): Likewise.
      	(vr_values::extract_range_from_phi_node): Avoid assignment and
      	bogus in-place modify of equiv bitmap.
      	(vr_values::simplify_bit_ops_using_ranges): Use value_range_base.
      	* ipa-prop.c (ipa_compute_jump_functions_for_edge): Adjust
      	for extract_range_from_unary_expr API change.
      	* ipa-cp.c (ipa_vr_operation_and_type_effects): Likewise.
      
      From-SVN: r266030
      Richard Biener committed
    • tree-vrp.h (value_range_base::symbolic_p, [...]): Move from value_range. · c49eeac3
      2018-11-12  Richard Biener  <rguenther@suse.de>
      
      	* tree-vrp.h (value_range_base::symbolic_p,
      	value_range_base::constant_p, value_range_base::zero_p,
      	value_range_base::singleton_p): Move from value_range.
      	(value_range::dump): Add.
      	* gimple-ssa-evrp-analyze.c
      	(evrp_range_analyzer::record_ranges_from_phis): Use set_varying.
      	* ipa-cp.c (ipcp_vr_lattice::print): Use dump_value_range.
      	* tree-ssa-threadedge.c (record_temporary_equivalences_from_phis):
      	Use set_varying.
      	* tree-vrp.c (value_range::symbolic_p): Move to value_range_base.
      	(value_range::constant_p): Likewise.
      	(value_range::singleton_p): Likewise.
      	(value_range_base::dump): Add.
      	(set_value_range_to_undefined): Remove.
      	(set_value_range_to_varying): Likewise.
      	(range_int_cst_p): Take value_range_base argument.
      	(range_int_cst_singleton_p): Likewise.
      	(value_range_constant_singleton): Likewise.
      	(vrp_set_zero_nonzero_bits): Likewise.
      	(extract_range_from_multiplicative_op): Use set_varying.
      	(extract_range_from_binary_expr_1): Likewise. Use set_undefined.
      	(extract_range_from_unary_expr): Likewise.
      	(dump_value_range_base): Change to overload of dump_value_range.
      	(vrp_prop::vrp_initialize): Use set_varying and set_undefined.
      	(vrp_prop::visit_stmt): Likewise.
      	(value_range::intersect_helper): Likewise.
      	(value_range::union_helper): Likewise.
      	(determine_value_range_1): Likewise.
      
      From-SVN: r266028
      Richard Biener committed
    • tree-vrp.c (set_value_range_to_nonnull): Clear equiv. · bdfac905
      2018-11-12  Richard Biener  <rguenther@suse.de>
      
      	* tree-vrp.c (set_value_range_to_nonnull): Clear equiv.
      	(set_value_range_to_null): Likewise.
      	* vr-values.c (vr_values::extract_range_from_comparison):
      	Clear equiv for constant singleton ranges.
      
      From-SVN: r266027
      Richard Biener committed
    • sse.md: Combine VFIXUPIMM* patterns · 682abf8d
      2018-11-12 Wei Xiao <wei3.xiao@intel.com>
      
              * config/i386/sse.md: Combine VFIXUPIMM* patterns
              (<avx512>_fixupimm<mode>_maskz<round_saeonly_expand_name>): Update.
              (<avx512>_fixupimm<mode><sd_maskz_name><round_saeonly_name>): Update.
              (<avx512>_fixupimm<mode>_mask<round_saeonly_name>): Remove.
              (avx512f_sfixupimm<mode>_maskz<round_saeonly_expand_name>): Update.
              (avx512f_sfixupimm<mode><sd_maskz_name><round_saeonly_name>): Update.
              (avx512f_sfixupimm<mode>_mask<round_saeonly_name>): Remove.
      
      From-SVN: r266026
      Wei Xiao committed
    • re PR c/69502 (attribute aligned reduces alignment contrary to documentation) · 8f64958b
      2018-11-11  Sandra Loosemore  <sandra@codesourcery.com>
      
      	PR c/69502
      
      	gcc/
      	* doc/extend.texi (Common Type Attributes): For the align type
      	attribute, copy language about decreasing alignment from the
      	corresponding variable attribute.
      
      From-SVN: r266025
      Sandra Loosemore committed
    • csky.md (*fpuv2_nmulsf3_1, [...]): Handle -frounding-math. · 31fad58f
      2018-11-11  Xianmiao Qu  <xianmiao_qu@c-sky.com>
      
      	gcc/
      	* config/csky/csky.md (*fpuv2_nmulsf3_1, *fpuv2_nmuldf3_1): Handle
      	-frounding-math.
      
      	gcc/testsuite
      	* gcc.target/csky/fnmul-1.c: New.
      	* gcc.target/csky/fnmul-2.c: New.
      	* gcc.target/csky/fnmul-3.c: New.
      	* gcc.target/csky/fnmul-4.c: New.
      
      From-SVN: r266024
      Xianmiao Qu committed
    • Daily bump. · 9510b563
      From-SVN: r266023
      GCC Administrator committed
  3. 11 Nov, 2018 1 commit