1. 23 Nov, 2017 26 commits
    • c-parser.c (c_parser_omp_declare_simd): Reject declare simd in pragma_stmt context. · 41521dee
      	* c-parser.c (c_parser_omp_declare_simd): Reject declare simd in
      	pragma_stmt context.
      
      	* gcc.dg/gomp/declare-simd-1.c (f9): Remove.
      	* gcc.dg/gomp/declare-simd-5.c: New test.
      
      From-SVN: r255116
      Jakub Jelinek committed
    • re PR fortran/81841 (THREADPRIVATE (OpenMP) wrongly rejected in BLOCK DATA) · 3b575376
      	PR fortran/81841
      	* parse.c (parse_spec): Allow ST_OMP_THREADPRIVATE inside of
      	BLOCK DATA.
      
      	* libgomp.fortran/pr81841.f90: New test.
      
      From-SVN: r255115
      Jakub Jelinek committed
    • pr65240-1.C: Add -Wno-return-type to dg-options. · 11aa5637
      	* g++.dg/pr65240-1.C: Add -Wno-return-type to dg-options.
      	* g++.dg/pr65240-2.C: Likewise.
      	* g++.dg/pr65240-3.C: Likewise.
      	* g++.dg/pr65240-4.C: Likewise.
      
      From-SVN: r255114
      Jakub Jelinek committed
    • Simplify ptr - 0 · d43177ad
      2017-11-23  Marc Glisse  <marc.glisse@inria.fr>
      
      	* match.pd (ptr-0): New transformation.
      
      From-SVN: r255113
      Marc Glisse committed
    • This patch adds support for modelling the varying costs of different addressing modes. · 612ea540
      This patch adds support for modelling the varying costs of
      different addressing modes. The generic cost table treats
      all addressing modes as having equal cost.
      
      gcc/ChangeLog:
      
      2017-11-23  Charles Baylis  <charles.baylis@linaro.org>
      
              * config/arm/arm-protos.h (enum arm_addr_mode_op): New.
              (struct addr_mode_cost_table): New.
              (struct tune_params): Add field addr_mode_costs.
              * config/arm/arm.c (generic_addr_mode_costs): New.
              (arm_slowmul_tune): Initialise addr_mode_costs field.
              (arm_fastmul_tune): Likewise.
              (arm_strongarm_tune): Likewise.
              (arm_xscale_tune): Likewise.
              (arm_9e_tune): Likewise.
              (arm_marvell_pj4_tune): Likewise.
              (arm_v6t2_tune): Likewise.
              (arm_cortex_tune): Likewise.
              (arm_cortex_a8_tune): Likewise.
              (arm_cortex_a7_tune): Likewise.
              (arm_cortex_a15_tune): Likewise.
              (arm_cortex_a35_tune): Likewise.
              (arm_cortex_a53_tune): Likewise.
              (arm_cortex_a57_tune): Likewise.
              (arm_exynosm1_tune): Likewise.
              (arm_xgene1_tune): Likewise.
              (arm_cortex_a5_tune): Likewise.
              (arm_cortex_a9_tune): Likewise.
              (arm_cortex_a12_tune): Likewise.
              (arm_cortex_a73_tune): Likewise.
              (arm_v7m_tune): Likewise.
              (arm_cortex_m7_tune): Likewise.
              (arm_v6m_tune): Likewise.
              (arm_fa726te_tune): Likewise.
              (arm_mem_costs): Use table lookup to calculate cost of addressing
              mode.
      
      From-SVN: r255112
      Charles Baylis committed
    • [ARM] Refactor costs calculation for MEM. · c138eb5c
      This patch moves the calculation of costs for MEM into a
      separate function, and reforms the calculation into two
      parts. Firstly any additional cost of the addressing mode
      is calculated, and then the cost of the memory access itself
      is added.
      
      In this patch, the calculation of the cost of the addressing
      mode is omitted, to be added in a subsequent patch.
      
      gcc/ChangeLog:
      
      <date>  Charles Baylis  <charles.baylis@linaro.org>
      
              * config/arm/arm.c (arm_mem_costs): New function.
              (arm_rtx_costs_internal): Use arm_mem_costs.
      
      gcc/testsuite/ChangeLog:
      
      <date>  Charles Baylis  <charles.baylis@linaro.org>
      
              * gcc.target/arm/addr-modes-float.c: New test.
              * gcc.target/arm/addr-modes-int.c: New test.
              * gcc.target/arm/addr-modes.h: New header.
      
      From-SVN: r255111
      Charles Baylis committed
    • re PR fortran/36313 ([F03] {MIN,MAX}{LOC,VAL} should accept character arguments) · 207180e1
      2017-11-23  Thomas Koenig  <tkoenig@gcc.gnu.org>
      
      	PR fortran/36313
      	* m4/maxloc2s.m4: Replace int for character length by
      	gfc_charlen_type.
      	* m4/minloc2s.m4: Likewise.
      	* generated./maxloc2_16_s1.c: Regenerated.
      	* generated./maxloc2_16_s4.c: Regenerated.
      	* generated./maxloc2_4_s1.c: Regenerated.
      	* generated./maxloc2_4_s4.c: Regenerated.
      	* generated./maxloc2_8_s1.c: Regenerated.
      	* generated./maxloc2_8_s4.c: Regenerated.
      	* generated./minloc2_16_s1.c: Regenerated.
      	* generated./minloc2_16_s4.c: Regenerated.
      	* generated./minloc2_4_s1.c: Regenerated.
      	* generated./minloc2_4_s4.c: Regenerated.
      	* generated./minloc2_8_s1.c: Regenerated.
      	* generated./minloc2_8_s4.c: Regenerated.
      
      From-SVN: r255109
      Thomas Koenig committed
    • Fix .debug_rnglists generation with -gdwarf-5 -gsplit-dwarf. · 3d4b2e49
      Early debug broke generation of .debug_rnglists when using both -gdwarf5
      and -gsplit-dwarf. It introduces a generation for init_sections_and_labels,
      but doesn't account for the generation of up to 4 unique ranges labels,
      two created in init_sections_and_labels and two in output_rnglists.
      Fix this by passing generation to output_rnglists and creating 4 unique
      labels per generation.
      
      Without this fix using -gdwarf-5 -gsplit-dwarf could result in:
        Error: symbol `.Ldebug_ranges2' is already defined
      
      gcc/ChangeLog:
      
             * dwarf2out.c (init_sections_and_labels): Use generation to create
             unique ranges_section_label and ranges_base_label. Return generation.
             (output_rnglists): Add generation argument. Use generation to create
             unique ranges labels.
             (dwarf2out_finish): Get generation from init_sections_and_labels
             and pass generation to output_rnglists.
      
      From-SVN: r255107
      Mark Wielaard committed
    • generic.texi (ANNOTATE_EXPR): Document 3rd operand. · ac9effed
      	* doc/generic.texi (ANNOTATE_EXPR): Document 3rd operand.
      	* cfgloop.h (struct loop): Add unroll field.
      	* function.h (struct function): Add has_unroll bitfield.
      	* gimplify.c (gimple_boolify) <ANNOTATE_EXPR>: Deal with unroll kind.
      	(gimplify_expr) <ANNOTATE_EXPR>: Propagate 3rd operand.
      	* loop-init.c (pass_loop2::gate): Return true if cfun->has_unroll.
      	(pass_rtl_unroll_loops::gate): Likewise.
      	* loop-unroll.c (decide_unrolling): Tweak note message.  Skip loops
      	for which loop->unroll==1.
      	(decide_unroll_constant_iterations): Use note for consistency and
      	take loop->unroll into account.  Return early if loop->unroll is set.
      	Fix thinko in existing test.
      	(decide_unroll_runtime_iterations): Use note for consistency and
      	take loop->unroll into account.
      	(decide_unroll_stupid): Likewise.
      	* lto-streamer-in.c (input_cfg): Read loop->unroll.
      	* lto-streamer-out.c (output_cfg): Write loop->unroll.
      	* tree-cfg.c (replace_loop_annotate_in_block) <annot_expr_unroll_kind>:
              New case.
      	(replace_loop_annotate) <annot_expr_unroll_kind>: Likewise.
      	(print_loop): Print loop->unroll if set.
      	* tree-core.h (enum annot_expr_kind): Add annot_expr_unroll_kind.
      	* tree-inline.c (copy_loops): Copy unroll and set cfun->has_unroll.
      	* tree-pretty-print.c (dump_generic_node) <annot_expr_unroll_kind>:
      	New case.
      	* tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Bail out if
      	loop->unroll is set and smaller than the trip count.  Otherwise bypass
      	entirely the heuristics if loop->unroll is set.  Remove dead note.
      	Fix off-by-one bug in other note.
      	(try_peel_loop): Bail out if loop->unroll is set.  Fix formatting.
      	(tree_unroll_loops_completely_1): Force unrolling if loop->unroll
      	is greater than 1.
      	(tree_unroll_loops_completely): Make static.
      	(pass_complete_unroll::execute): Use correct type for variable.
      	(pass_complete_unrolli::execute): Fix formatting.
      	* tree.def (ANNOTATE_EXPR): Add 3rd operand.
      ada/
      	* gcc-interface/trans.c (gnat_gimplify_stmt) <LOOP_STMT>: Pass 3rd
      	operand to ANNOTATE_EXPR and also pass unrolling hints.
      c/
      	* c-parser.c (c_parser_while_statement): Pass 3rd operand to
      	ANNOTATE_EXPR.
      	(c_parser_do_statement): Likewise.
      	(c_parser_for_statement): Likewise.
      cp/
      	* pt.c (tsubst_expr) <ANNOTATE_EXPR>: Recurse on 3rd operand.
      	* semantics.c (finish_while_stmt_cond): Pass 3rd operand to
      	ANNOTATE_EXPR.
      	(finish_do_stmt): Likewise.
      	(finish_for_cond): Likewise.
      fortran/
      	* trans-stmt.c (gfc_trans_forall_loop): Pass 3rd operand to
      	ANNOTATE_EXPR.
      
      From-SVN: r255106
      Eric Botcazou committed
    • i386.h (TARGET_PREFER_AVX256): Also enable when TARGET_PREFER_AVX128 is set. · 02a70367
      	* config/i386/i386.h (TARGET_PREFER_AVX256): Also
      	enable when TARGET_PREFER_AVX128 is set.
      
      From-SVN: r255105
      Sergey Shalnov committed
    • ipa-profile.c (ipa_propagate_frequency_1): Use count instead of frequency. · 7349698e
      	* ipa-profile.c (ipa_propagate_frequency_1): Use count instead of
      	frequency.
      	* cgraph.c (cgraph_edge::dump_edge_flags): Dump sreal frequencies.
      	(cgraph_edge::maybe_hot_p): Use sreal frequencies.
      
      From-SVN: r255104
      Jan Hubicka committed
    • ipa-fnsummary.c (record_modified_bb_info): Use sreal frequencies. · 0009a6c3
      
      	* ipa-fnsummary.c (record_modified_bb_info): Use sreal
      	frequencies. Fix estimation of aggregate parameters.
      
      	* gcc.dg/ipa/inline-1.c: Update template.
      
      From-SVN: r255103
      Jan Hubicka committed
    • cgraphclones.c (cgraph_node::create_clone): Fix updating of profile when inlining. · 8f58dbd1
      	* cgraphclones.c (cgraph_node::create_clone): Fix updating of profile
      	when inlining.
      
      From-SVN: r255102
      Jan Hubicka committed
    • [libgccjit] Wrap RETURN_NULL_IF_FAIL_NONNULL_NUMERIC_TYPE in JIT_{BEGIN,END}_STMT. · 120e92fc
      2017-11-23  Tom de Vries  <tom@codesourcery.com>
      
      	* libgccjit.c (RETURN_NULL_IF_FAIL_NONNULL_NUMERIC_TYPE): Wrap in
      	JIT_{BEGIN,END}_STMT.
      
      From-SVN: r255101
      Tom de Vries committed
    • [sh] Wrap ASM_OUTPUT_ADDR_VEC_ELT in do {} while (0) · 356db292
      2017-11-23  Tom de Vries  <tom@codesourcery.com>
      
      	* config/sh/sh.h (ASM_OUTPUT_ADDR_VEC_ELT): Wrap in "do {} while (0)".
      
      From-SVN: r255100
      Tom de Vries committed
    • [libobjc] Wrap CLASS_TABLE_HASH in do {} while (0) · 7f339ecb
      2017-11-23  Tom de Vries  <tom@codesourcery.com>
      
      	* class.c (CLASS_TABLE_HASH): Wrap in "do {} while (0)".
      
      From-SVN: r255099
      Tom de Vries committed
    • [ft32] Remove semicolon after ASM_OUTPUT_ADDR_VEC_ELT · 77abf71f
      2017-11-23  Tom de Vries  <tom@codesourcery.com>
      
      	* config/ft32/ft32.h (ASM_OUTPUT_ADDR_VEC_ELT): Remove semicolon after
      	macro.
      
      From-SVN: r255098
      Tom de Vries committed
    • re PR target/83111 ([sh] stack smashing detected in gen_udivsi3) · e7434de8
      gcc/
      	PR target/83111
      	* config/sh/sh.md (udivsi3, divsi3, sibcall_value_pcrel,
      	sibcall_value_pcrel_fdpic): Use local variable instead of
      	operands[3].
      	(calli_tbr_rel): Add missing operand 2.
      	(call_valuei_tbr_rel): Add missing operand 3.
      
      From-SVN: r255096
      Oleg Endo committed
    • re PR middle-end/82253 (ICE in convert_move, at expr.c:604) · 2145b601
      	PR middle-end/82253
      	* expr.c (expand_assignment): For CONCAT to_rtx, complex type from and
      	bitpos/bitsize covering the whole destination, use store_expr only if
      	the complex mode is the same.  Otherwise, use expand_normal and if
      	it returns CONCAT, subreg each part separately instead of trying to
      	subreg the whole result.
      
      	* gfortran.dg/pr82253.f90: New test.
      
      From-SVN: r255095
      Jakub Jelinek committed
    • re PR fortran/82814 (ICE from submodule character function) · f36a7f04
      2017-11-23  Paul Thomas  <pault@gcc.gnu.org>
      
      	PR fortran/82814
      	* trans-types.c (gfc_sym_type): If a character function result
      	is missing the charlen backend_decl, use the one from the name-
      	space procedure symbol, if present.
      
      2017-11-23  Paul Thomas  <pault@gcc.gnu.org>
      
      	PR fortran/82814
      	* gfortran.dg/submodule_31.f08: New test.
      
      From-SVN: r255094
      Paul Thomas committed
    • re PR tree-optimization/23094 (store ccp, or store copy prop misses an optimization) · d7a160a4
      2017-11-23  Richard Biener  <rguenther@suse.de>
      
      	PR tree-optimization/23094
      	* tree-ssa-sccvn.c (vuse_ssa_val): Handle VN_TOP when we
      	come here from walking over backedges in the first iteration.
      	(vn_reference_lookup_3): Skip clobbers that store the same value.
      
      	* gcc.dg/tree-ssa/ssa-fre-61.c: New testcase.
      
      From-SVN: r255093
      Richard Biener committed
    • re PR tree-optimization/81403 (wrong code at -O3) · bb9ec14d
      2017-11-23  Richard Biener  <rguenther@suse.de>
      
      	PR tree-optimization/81403
      	* tree-ssa-pre.c (get_representative_for): Add parameter specifying
      	a block we need a leader relative to.
      	(phi_translate_1): For nary processing require a leader from
      	get_representative_for given we run expression simplification
      	using match-and-simplify.  Remove previous fix.
      
      From-SVN: r255092
      Richard Biener committed
    • re PR tree-optimization/83089 (ICE: Segmentation fault (in instantiate_scev_name)) · 78bebfb2
      2017-11-23  Richard Biener  <rguenther@suse.de>
      
      	PR tree-optimization/83089
      	* gcc.dg/pr83089.c: Require pthread.
      
      From-SVN: r255091
      Richard Biener committed
    • Daily bump. · f6f28ab8
      From-SVN: r255089
      GCC Administrator committed
    • gimple-ssa-evrp-analyze.c (evrp_range_analyzer::try_find_new_range): Use new… · 3e406d33
      gimple-ssa-evrp-analyze.c (evrp_range_analyzer::try_find_new_range): Use new method allocate_value_range rather than accessing the...
      
      	* gimple-ssa-evrp-analyze.c (evrp_range_analyzer::try_find_new_range):
      	Use new method allocate_value_range rather than accessing the
      	vrp_value_range_pool data member directly.
      	* tree-vrp.c (simplify_stmt_for_jump_threading): Tweak slightly
      	to use extract_range_from_stmt method to avoid need for
      	extract_range_from_assignment method.
      	(vrp_prop::vrp_finalize): Use set_lattice_propagation_complete
      	method rather than setting values_propgated data member directly.
      	* vr-values.h (class vr_values): Privatize vrp_value_range_pool,
      	and values propagated data members and extract_range_from_assignment
      	method.  Reorder private data members to conform to standards.
      	Add new methods set_lattice_propagation_complete and
      	allocate_value_range.
      
      From-SVN: r255086
      Jeff Law committed
  2. 22 Nov, 2017 14 commits
    • * g++.dg/abi/pr68355.C: Don't expect tail call on ia32. · d057fdc8
      From-SVN: r255085
      Jakub Jelinek committed
    • re PR c++/82401 (error: qsort comparator non-negative on sorted output: 1 in… · 6c19e703
      re PR c++/82401 (error: qsort comparator non-negative on sorted output: 1 in insert_late_enum_def_bindings on an invalid code)
      
      	PR c++/82401
      	* name-lookup.c (member_name_cmp): Return 0 if a == b.
      
      	* g++.dg/cpp0x/pr82401.C: New test.
      
      From-SVN: r255084
      Jakub Jelinek committed
    • re PR rtl-optimization/83030 (ICE in create_pseudo_cfg, at dwarf2cfi.c:2840) · 52af3804
      	PR rtl-optimization/83030
      	* doc/rtl.texi (Flags in an RTL Expression): Alphabetize, add entry
      	for CROSSING_JUMP_P and mention usage of 'jump' for JUMP_INSNs.
      	(Insns): Delete entry for REG_CROSSING_JUMP in register notes.
      	* bb-reorder.c (update_crossing_jump_flags): Do not test whether the
      	CROSSING_JUMP_P flag is already set before setting it.
      	* cfgrtl.c (fixup_partition_crossing): Likewise.
      	* reorg.c (relax_delay_slots): Do not consider a CROSSING_JUMP_P insn
      	as useless.
      
      From-SVN: r255083
      Eric Botcazou committed
    • jit: update test suite for change to -Warray-bounds · d5438715
      jit.dg/test-error-array-bounds.c is a test of how libgccjit
      handles errors coming from the middle-end, using -Warray-bounds as
      an example.
      
      It started failing as of r254830 (aka 987b3316c4e7c908e3c7d2151c20971f9707ad66),
      due to that commit changing the wording of the message.
      
      This commit fixes the jit testcase by updating it to use the new
      wording.
      
      gcc/testsuite/ChangeLog:
      	PR tree-optimization/82588
      	PR tree-optimization/82583
      	* jit.dg/test-error-array-bounds.c (verify_code): Update expected
      	error message from -Warray-bounds.
      
      From-SVN: r255082
      David Malcolm committed
    • * g++.dg/graphite/pr41562.C: Add -Wno-return-type. · 1324d3f3
      From-SVN: r255081
      Jakub Jelinek committed
    • re PR libgomp/83106 (libgomp/target.c:2671:2: error: ‘strncat’ specified bound 5… · b13547d8
      re PR libgomp/83106 (libgomp/target.c:2671:2: error: ‘strncat’ specified bound 5 equals source length [-Werror=stringop-overflow=])
      
      	PR libgomp/83106
      	* target.c (gomp_target_init): Compute lengths just once and
      	use them in both malloc size and subsequent copying.
      
      From-SVN: r255080
      Jakub Jelinek committed
    • simplify-rtx.c (simplify_binary_operation_1): Handle the case where both… · 217e4393
      simplify-rtx.c (simplify_binary_operation_1): Handle the case where both arguments are using gen_const_vec_series.
      
      	* simplify-rtx.c (simplify_binary_operation_1) <case VEC_SERIES>:
      	Handle the case where both arguments are using gen_const_vec_series.
      
      From-SVN: r255079
      Jakub Jelinek committed
    • Make shift argument to eoshift0 and eoshift2 be of type index_type · a97ae559
      Test case that requires 4 GB RAM that exercises eoshift0:
      
      program main
        implicit none
        integer(1) :: line(2_8**31+10)
        line = 42
        line = eoshift(line, 2_8**31+7)
        print *, line(1:4)
        print *, line((ubound(line, 1, kind=8)-4):ubound(line, 1, kind=8))
      end program main
      
      Before patch:
      ❯ ./a.out
          0    0    0    0
          42   42   42   42   42
      
      With patch:
      ❯ ./a.out
         42   42   42    0
         0    0    0    0    0
      
      Regtested on x86_64-pc-linux-gnu.
      
      libgfortran/ChangeLog:
      
      2017-11-22  Janne Blomqvist  <jb@gcc.gnu.org>
      
              * intrinsics/eoshift0.c (eoshift0): Make shift an index_type.
              * intrinsics/eoshift2.c (eoshift2): Make shift an index_type.
      
      From-SVN: r255077
      Janne Blomqvist committed
    • C/C++: fix quoting of "aka" typedef information (PR 62170) · ce95abc4
      PR 62170 describes a problem with how the quoting in pp_format
      interacts with the "aka" information for typedefs in %qT for
      the C family of frontends, and also now for %qH and %qI in the
      C++ frontend: we print:
      
        'Py_ssize_t* {aka int*}'
         ^^^^^^^^^^^^^^^^^^^^^^ colorized as "quote"
      
      i.e.
        '[START_COLOR]Py_ssize_t* {aka int*}[END_COLOR]'
      
      when we should print:
      
        'Py_ssize_t*' {aka 'int*'}
         ^^^^^^^^^^^        ^^^^ colorized as "quote"
      
      i.e.
        '[START_COLOR]Py_ssize_t*[END_COLOR]' {aka '[START_COLOR]int*[END_COLOR]'}
      
      where the opening and closing quote characters and colorization are
      added by the 'q' handling within pp_format.
      
      This patch fixes the quoting by updating the %T handling in C and C++
      and the %H/%I handling in C++ to insert the quoting appropriately.
      It converts the "quote" param of the pp_format_decoder callback from
      bool to bool *, allowing for the %T and %H/%I handlers to write
      false back to it, to avoid printing the closing quote for the cases
      like the above where the trailing closing quote isn't needed.
      
      It introduces pp_begin_quote/pp_end_quote to simplify this.  These
      take a "bool show_color", rather than using "pp_show_color (pp)"
      since cxx_pp's pp_show_color isn't currently initialized (since
      cxx_initialize_diagnostics happens before diagnostic_color_init).
      
      gcc/c/ChangeLog:
      	PR c++/62170
      	* c-objc-common.c (c_tree_printer): Convert penultimate param from
      	bool to bool *.  Within '%T' handling, if showing an "aka", use
      	"quoted" param to add appropriate quoting.
      
      gcc/cp/ChangeLog:
      	PR c++/62170
      	* error.c (type_to_string): Add leading comment.  Add params
      	"postprocessed", "quote", and "show_color", using them to fix
      	quoting of the "aka" for types involving typedefs.
      	(arg_to_string): Update for new params to type_to_string.
      	(cxx_format_postprocessor::handle): Likewise.
      	(cp_printer): Convert penultimate param from bool to bool *.
      	Update call to type_to_string and calls to
      	defer_phase_2_of_type_diff.
      
      gcc/fortran/ChangeLog:
      	PR c++/62170
      	* error.c (gfc_notify_std): Convert "quoted" param from bool to
      	bool *.
      
      gcc/ChangeLog:
      	PR c++/62170
      	* pretty-print.c (pp_format): Move quoting implementation to
      	pp_begin_quote and pp_end_quote.  Update pp_format_decoder call
      	to pass address of "quote" local.
      	(pp_begin_quote): New function.
      	(pp_end_quote): New function.
      	* pretty-print.h (printer_fn): Convert penultimate param from bool
      	to bool *.
      	(pp_begin_quote): New decl.
      	(pp_end_quote): New decl.
      	* tree-diagnostic.c (default_tree_printer): Convert penultimate
      	param from bool to bool *.
      	* tree-diagnostic.h (default_tree_printer): Likewise.
      
      gcc/testsuite/ChangeLog:
      	PR c++/62170
      	* g++.dg/diagnostic/aka1.C: Update expected error messages to
      	reflect fixes to quoting.
      	* g++.dg/diagnostic/aka2.C: New test case.
      	* g++.dg/parse/error55.C: Update expected error messages to
      	reflect fixes to quoting.
      	* gcc.dg/diag-aka-1.c: Likewise.
      	* gcc.dg/diag-aka-2.c: New test case.
      	* gcc.dg/pr13804-1.c: Update expected error messages to reflect
      	fixes to quoting.
      	* gcc.dg/pr56980.c: Likewise.
      	* gcc.dg/pr65050.c: Likewise.
      	* gcc.dg/redecl-14.c: Likewise.
      	* gcc.dg/utf16-4.c Likewise.
      	* gcc.target/i386/sse-vect-types.c (__m128d): Likewise.
      	* obj-c++.dg/invalid-type-1.mm: Likewise.
      	* objc.dg/proto-lossage-4.m: Likewise.
      
      From-SVN: r255076
      David Malcolm committed
    • target-supports.exp (check_effective_target_bswap16): Remove · d8d9aa38
      	* lib/target-supports.exp (check_effective_target_bswap16): Remove
      	(check_effective_target_bswap32): Ditto.
      	(check_effective_target_bswap64): Ditto.
      	* gcc.dg/optimize-bswaphi-1.c: Use bswap effective
      	target instead of bswap16.
      	* gcc.dg/optimize-bswapsi-1.c: Use bswap effective
      	target instead of bswap32.
      	* gcc.dg/optimize-bswapsi-2.c: Ditto.
      	* gcc.dg/optimize-bswapsi-3.c: Ditto.
      	* gcc.dg/optimize-bswapsi-4.c: Ditto.
      	* gcc.dg/optimize-bswapsi-5.c: Ditto.
      	* gcc.dg/pr77673.c: Ditto.
      	* gcc.dg/optimize-bswapdi-1.c: Use bswap effective
      	target instead of bswap64.
      	* gcc.dg/optimize-bswapdi-2.c: Ditto.
      	* gcc.dg/optimize-bswapdi-3.c: Ditto.
      
      From-SVN: r255075
      Uros Bizjak committed
    • * gimple-ssa-evrp-analyze.c (evrp_range_analyzer::evrp_range_analyzer) · a5de02e9
      	Initialize vr_values.
      	(evrp_range_analyzer::try_find_new_range): Call methods attached to
      	vr_values via vr_values class instance rather than delegators.
      	(evrp_range_analyzer::record_ranges_from_phis): Likewise.
      	(evrp_range_analyzer::record_ranges_from_stmt): Likewise.
      	(evrp_range_analyzer::push_value_range): Likewise.
      	(evrp_range_analyzer::pop_value_range): Likewise.
      	* gimple-ssa-evrp-analyze.h (class evrp_range_analyzer): Remove
      	most delegators.  Those remaining are exposed as public interfaces.
      	Make vr_values a pointer and private.
      	(evrp_range_analyzer::~evrp_range_analyzer): Delete the attached
      	vr_values.
      	(evrp_range_analyzer::get_vr_value): New method.
      	* gimple-ssa-evrp.c (class evrp_folder): Use DISABLE_COPY_AND_ASSIGN.
      	(evrp_folder::evrp_folder): New ctor to initialize vr_values.
      	(class evrp_dom_walker): Attach evrp_folder class, initialize
      	it in the ctor.  Remove temporary delegators.
      	(evrp_dom_walker::before_dom_children): Call methods in attached
      	evrp_range_analyzer class via class instance pointer.  Use
      	free value_range_constant_singleton to remove need for
      	op_with_constant_singleton_value delegator method.  Do not
      	create a vrp_prop class instance for every call!  Narrow
      	scope of a couple variables.
      	(evrp_dom_walker::cleanup): Call methods in attached
      	evrp_range_analyzer class via class instance pointer.
      	* vr-values.h (class vr_values): Privatize many methods and
      	data members.
      
      From-SVN: r255074
      Jeff Law committed
    • Replace REDUC_*_EXPRs with internal functions. · 16d24520
      This patch replaces the REDUC_*_EXPR tree codes with internal functions.
      This is needed so that the upcoming in-order reductions can also use
      internal functions without too much complication.
      
      2017-11-22  Richard Sandiford  <richard.sandiford@linaro.org>
      
      gcc/
      	* tree.def (REDUC_MAX_EXPR, REDUC_MIN_EXPR, REDUC_PLUS_EXPR): Delete.
      	* cfgexpand.c (expand_debug_expr): Remove handling for them.
      	* expr.c (expand_expr_real_2): Likewise.
      	* fold-const.c (const_unop): Likewise.
      	* optabs-tree.c (optab_for_tree_code): Likewise.
      	* tree-cfg.c (verify_gimple_assign_unary): Likewise.
      	* tree-inline.c (estimate_operator_cost): Likewise.
      	* tree-pretty-print.c (dump_generic_node): Likewise.
      	(op_code_prio): Likewise.
      	(op_symbol_code): Likewise.
      	* internal-fn.def (DEF_INTERNAL_SIGNED_OPTAB_FN): Define.
      	(IFN_REDUC_PLUS, IFN_REDUC_MAX, IFN_REDUC_MIN): New internal functions.
      	* internal-fn.c (direct_internal_fn_optab): New function.
      	(direct_internal_fn_array, direct_internal_fn_supported_p
      	(internal_fn_expanders): Handle DEF_INTERNAL_SIGNED_OPTAB_FN.
      	* fold-const-call.c (fold_const_reduction): New function.
      	(fold_const_call): Handle CFN_REDUC_PLUS, CFN_REDUC_MAX and
      	CFN_REDUC_MIN.
      	* tree-vect-loop.c: Include internal-fn.h.
      	(reduction_code_for_scalar_code): Rename to...
      	(reduction_fn_for_scalar_code): ...this and return an internal
      	function.
      	(vect_model_reduction_cost): Take an internal_fn rather than
      	a tree_code.
      	(vect_create_epilog_for_reduction): Likewise.  Build calls rather
      	than assignments.
      	(vectorizable_reduction): Use internal functions rather than tree
      	codes for the reduction operation.  Update calls to the functions
      	above.
      	* config/aarch64/aarch64-builtins.c (aarch64_gimple_fold_builtin):
      	Use calls to internal functions rather than REDUC tree codes.
      	* config/aarch64/aarch64-simd.md: Update comment accordingly.
      
      From-SVN: r255073
      Richard Sandiford committed
    • PR 83097 Use __BYTE_ORDER__ predefined macro instead of runtime check · 5675291d
      By using the __BYTE_ORDER__ predefined macro we don't need the
      determine_endianness function anymore.
      
      Regtested on x86_64-pc-linux-gnu.
      
      libgfortran/ChangeLog:
      
      2017-11-22  Janne Blomqvist  <jb@gcc.gnu.org>
      
              PR libfortran/83097
      	* io/inquire.c (inquire_via_unit): Use __BYTE_ORDER__ predefined
      	macro.
      	* io/open.c (st_open): Likewise.
      	* io/transfer.c (data_transfer_init): Likewise.
      	* io/write.c (btoa_big): Likewise.
      	(otoa_big): Likewise.
      	(ztoa_big): Likewise.
      	* libgfortran.h (big_endian): Remove variable.
      	(GFOR_POINTER_TO_L1): Use __BYTE_ORDER__ macro.
      	* runtime/main.c (determine_endianness): Remove function.
      	(init): Remove call to determine_endianness.
      	* runtime/minimal.c: Remove setting big_endian variable.
      
      From-SVN: r255072
      Janne Blomqvist committed
    • [PATCH] Add myself as GCC maintainer · 90b415f6
      *** ChangeLog ***
      
      2017-11-22  Sudakshina Das  <sudi.das@arm.com>
      
      	* MAINTAINERS (Write After Approval): Add myself.
      
      From-SVN: r255071
      Sudakshina Das committed