Reinstate dump_generic_expr_loc
[gcc.git] / gcc / ChangeLog
index e5567914e8f3ebab72899501997cc085e35932c3..64ed2f7e954d0324ea8e4fbe3b25c7a29ccb5e1b 100644 (file)
@@ -1,3 +1,314 @@
+2018-07-02  David Malcolm  <dmalcolm@redhat.com>
+
+       * dumpfile.c (dump_generic_expr_loc): Undo removal of this
+       function in r262149, changing "loc" param from source_location to
+       const dump_location_t &.
+       * dumpfile.h (dump_generic_expr_loc): Undo removal of this
+       declaration, as above.
+
+2018-07-01  Paul Koning  <ni1d@arrl.net>
+
+       * common/config/pdp11/pdp11-common.c (pdp11_handle_option): Handle
+       -munit-asm, -mgnu-asm, -mdec-asm.
+       * config/pdp11/pdp11-protos.h (pdp11_gen_int_label): New.
+       (pdp11_output_labelref): New.
+       (pdp11_output_def): New.
+       (pdp11_output_addr_vec_elt): New.
+       * config/pdp11/pdp11.c: Use tab between opcode and operands.  Use
+       %# and %@ format codes.
+       (pdp11_option_override): New.
+       (TARGET_ASM_FILE_START_FILE_DIRECTIVE): Define.
+       (pdp11_output_ident): New.
+       (pdp11_asm_named_section): New.
+       (pdp11_asm_init_sections): New.
+       (pdp11_file_start): New.
+       (pdp11_file_end): New.
+       (output_ascii): Use .ascii/.asciz for -mdec-asm.
+       (pdp11_asm_print_operand): Update %# and %$ for -mdec-asm.  Add
+       %o, like %c but octal.
+       (pdp11_option_override): New.
+       * config/pdp11/pdp11.h (TEXT_SECTION_ASM_OP): Update for
+       -mdec-asm.
+       (DATA_SECTION_ASM_OP): Ditto.
+       (READONLY_DATA_SECTION_ASM_OP): New.
+       (IS_ASM_LOGICAL_LINE_SEPARATOR): New.
+       (ASM_GENERATE_INTERNAL_LABEL): Use new function.
+       (ASM_OUTPUT_LABELREF): Ditto.
+       (ASM_OUTPUT_DEF): Ditto.
+       (ASM_OUTPUT_EXTERNAL): New.
+       (ASM_OUTPUT_SOURCE_FILENAME): New.
+       (ASM_OUTPUT_ADDR_VEC_ELT): Use new function.
+       (ASM_OUTPUT_SKIP): Update for -mdec-asm.
+       * config/pdp11/pdp11.md: Use tab between opcode and operands.  Use
+       %# and %@ format codes.
+       * config/pdp11/pdp11.opt (mgnu-asm): New.
+       (mdec-asm): Conflicts with -mgnu-asm and -munix-asm.
+       (munix-asm): Conflicts with -mdec-asm and -mgnu-asm.
+       * doc/invoke.txt (PDP-11 Options): Add -mgnu-asm.
+
+2018-07-01  Aldy Hernandez  <aldyh@redhat.com>
+
+       * tree-ssa-threadupdate.c (mark_threaded_blocks): Avoid
+       dereferencing path[] beyond its length.
+       (debug_path): New.
+       (debug_all_paths): New.
+       (rewire_first_differing_edge): New.
+       (adjust_paths_after_duplication): New.
+       (duplicate_thread_path): Call adjust_paths_after_duplication.
+       Add new argument.
+       (thread_through_all_blocks): Add new argument to
+       duplicate_thread_path.
+
+2018-06-30  Jim Wilson  <jimw@sifive.com>
+
+       * config/riscv/predicates.md (p2m1_shift_operand): New.
+       (high_mask_shift_operand): New.
+       * config/riscv/riscv.md (lshrsi3_zero_extend_3+1): New combiner
+       pattern using p2m1_shift_operand.
+       (lshsi3_zero_extend_3+2): New combiner pattern using
+       high_mask_shift_operand.
+
+2018-06-30  Richard Sandiford  <richard.sandiford@arm.com>
+
+       * tree-vect-patterns.c (vect_get_external_def_edge): New function,
+       split out from...
+       (vect_recog_rotate_pattern): ...here.
+       (vect_convert_input): Try to insert casts of invariants in the
+       preheader.
+       * tree-vect-loop-manip.c (vect_loop_versioning): Don't require the
+       preheader to be empty.
+
+2018-06-30  Richard Sandiford  <richard.sandiford@arm.com>
+
+       * tree-vect-patterns.c (append_pattern_def_seq): Take an optional
+       vector type.  If given, install it in the new statement's
+       STMT_VINFO_VECTYPE.
+       (vect_element_precision): New function.
+       (vect_unpromoted_value): New struct.
+       (vect_unpromoted_value::vect_unpromoted_value): New function.
+       (vect_unpromoted_value::set_op): Likewise.
+       (vect_look_through_possible_promotion): Likewise.
+       (vect_joust_widened_integer, vect_joust_widened_type): Likewise.
+       (vect_widened_op_tree, vect_convert_input): Likewise.
+       (vect_convert_inputs, vect_convert_output): Likewise.
+       (vect_recog_dot_prod_pattern): Use vect_look_through_possible_promotion
+       to handle the optional cast of the multiplication result and
+       vect_widened_op_tree to detect the widened multiplication itself.
+       Do not require the input and output of promotion casts to have
+       the same sign, but base the signedness of the operation on the
+       input rather than the result.  If the pattern includes two
+       promotions, check that those promotions have the same sign.
+       Do not restrict the MULT_EXPR handling to a double-width result;
+       handle quadruple-width results and wider.  Use vect_convert_inputs
+       to convert the inputs to the common type.
+       (vect_recog_sad_pattern):  Use vect_look_through_possible_promotion
+       to handle the optional cast of the ABS result.  Also allow a sign
+       change or a sign extension between the ABS and MINUS.
+       Use vect_widened_op_tree to detect the widened subtraction and use
+       vect_convert_inputs to convert the inputs to the common type.
+       (vect_handle_widen_op_by_const): Delete.
+       (vect_recog_widen_op_pattern): New function.
+       (vect_recog_widen_mult_pattern): Use it.
+       (vect_recog_widen_shift_pattern): Likewise.
+       (vect_recog_widen_sum_pattern): Use
+       vect_look_through_possible_promotion to handle the promoted
+       PLUS_EXPR operand.
+
+2018-06-30  Richard Sandiford  <richard.sandiford@arm.com>
+
+       * gimple-iterator.c (gsi_for_stmt): Add a new overload that takes
+       the containing gimple_seq *.
+       * gimple-iterator.h (gsi_for_stmt): Declare it.
+       * tree-vect-patterns.c (vect_recog_dot_prod_pattern)
+       (vect_recog_sad_pattern, vect_recog_widen_sum_pattern)
+       (vect_recog_widen_shift_pattern, vect_recog_rotate_pattern)
+       (vect_recog_vector_vector_shift_pattern, vect_recog_divmod_pattern)
+       (vect_recog_mask_conversion_pattern): Remove STMT_VINFO_IN_PATTERN_P
+       checks.
+       (vect_init_pattern_stmt, vect_set_pattern_stmt): New functions,
+       split out from...
+       (vect_mark_pattern_stmts): ...here.  Handle cases in which the
+       statement being replaced is part of an existing pattern
+       definition sequence, inserting the new pattern statements before
+       the original one.
+       (vect_pattern_recog_1): Don't return a bool.  If the statement
+       is already part of a pattern, instead apply pattern matching
+       to the pattern definition statements.  Don't clear the
+       STMT_VINFO_RELATED_STMT if is_pattern_stmt_p.
+       (vect_pattern_recog): Don't break after the first match;
+       continue processing the pattern definition statements instead.
+       Don't bail out for STMT_VINFO_IN_PATTERN_P here.
+
+2018-06-30  Richard Sandiford  <richard.sandiford@arm.com>
+
+       * tree-vect-patterns.c (vect_reassociating_reduction_p): New function.
+       (vect_recog_dot_prod_pattern, vect_recog_sad_pattern)
+       (vect_recog_widen_sum_pattern): Use it.
+
+2018-06-30  Richard Sandiford  <richard.sandiford@arm.com>
+
+       * tree-vect-loop.c (vectorizable_reduction): Assert that the
+       phi is not a pattern statement and has not been replaced by
+       a pattern statement.
+       * tree-vect-patterns.c (type_conversion_p): Don't check
+       STMT_VINFO_IN_PATTERN_P.
+       (vect_recog_vector_vector_shift_pattern): Likewise.
+       (vect_recog_dot_prod_pattern): Expect vect_is_simple_use to return
+       the pattern statement rather than the original statement; check
+       directly for a WIDEN_MULT_EXPR here.
+       * tree-vect-slp.c (vect_get_and_check_slp_defs): Expect
+       vect_is_simple_use to return the pattern statement rather
+       than the original statement; use is_pattern_stmt_p to check
+       for such a pattern statement.
+       * tree-vect-stmts.c (process_use): Expect vect_is_simple_use
+       to return the pattern statement rather than the original statement;
+       don't do the same transformation here.
+       (vect_is_simple_use): If the defining statement has been replaced
+       by a pattern statement, return the pattern statement instead.
+       Remove the corresponding (local) transformation from the vectype
+       overload.
+
+2018-06-30  Richard Sandiford  <richard.sandiford@arm.com>
+
+       * tree-vectorizer.h (vect_is_simple_use): Move the gimple ** to the
+       end and default to null.
+       * tree-vect-loop.c (vect_create_epilog_for_reduction)
+       (vectorizable_reduction): Update calls accordingly, dropping the
+       gimple ** argument if the passed-back statement isn't needed.
+       * tree-vect-patterns.c (vect_get_internal_def, type_conversion_p)
+       (vect_recog_rotate_pattern): Likewise.
+       (vect_recog_mask_conversion_pattern): Likewise.
+       * tree-vect-slp.c (vect_get_and_check_slp_defs): Likewise.
+       (vect_mask_constant_operand_p): Likewise.
+       * tree-vect-stmts.c (is_simple_and_all_uses_invariant, process_use):
+       (vect_model_simple_cost, vect_get_vec_def_for_operand): Likewise.
+       (get_group_load_store_type, get_load_store_type): Likewise.
+       (vect_check_load_store_mask, vect_check_store_rhs): Likewise.
+       (vectorizable_call, vectorizable_simd_clone_call): Likewise.
+       (vectorizable_conversion, vectorizable_assignment): Likewise.
+       (vectorizable_shift, vectorizable_operation): Likewise.
+       (vectorizable_store, vect_is_simple_cond): Likewise.
+       (vectorizable_condition, vectorizable_comparison): Likewise.
+       (get_same_sized_vectype, vect_get_mask_type_for_stmt): Likewise.
+       (vect_is_simple_use): Rename the def_stmt argument to def_stmt_out
+       and move it to the end.  Cope with null def_stmt_outs.
+
+2018-06-30  Bernd Edlinger  <bernd.edlinger@hotmail.de>
+
+       * Makefile.in (FLAGS_TO_PASS): Add RANLIB_FOR_TARGET.
+
+2018-06-29  Jeff Law  <law@redhat.com>
+
+       * config/v850/v850.c (v850_legitimate_address_p): Handle large
+       displacements for TARGET_V850E2V3 and newer.
+       (TARGET_LRA_P): Remove.  Defaults to LRA now.
+       * config/v850/v850.md (sign23byte_load): Remove.
+       (unsign23byte_load, sign23hword_load, unsign23hword_load): Likewise.
+       (23word_load, 23byte_store, 23hword_store, 23word_store): Likewise.
+
+2018-06-29  Martin Liska  <mliska@suse.cz>
+
+       PR lto/85759
+       * coverage.c (coverage_init): Mangle full path name.
+       * doc/invoke.texi: Document the change.
+       * gcov-io.c (mangle_path): New.
+       * gcov-io.h (mangle_path): Likewise.
+       * gcov.c (mangle_name): Use mangle_path for path mangling.
+
+2018-06-29  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
+
+       * config/arm/arm.c (output_move_double): Don't allow STRD instructions
+       if starting source register is not even.
+
+2018-06-29  Martin Liska  <mliska@suse.cz>
+
+        PR tree-optimization/86263
+       * tree-switch-conversion.c (switch_decision_tree::try_switch_expansion):
+        Make edge redirection.
+
+2018-06-29  David Malcolm  <dmalcolm@redhat.com>
+
+       * dumpfile.c (dump_loc): Add indentation based on scope depth.
+       (dump_scope_depth): New variable.
+       (get_dump_scope_depth): New function.
+       (dump_begin_scope): New function.
+       (dump_end_scope): New function.
+       * dumpfile.h (get_dump_scope_depth): New declaration.
+       (dump_begin_scope): New declaration.
+       (dump_end_scope): New declaration.
+       (class auto_dump_scope): New class.
+       (AUTO_DUMP_SCOPE): New macro.
+       * tree-vectorizer.h (DUMP_VECT_SCOPE): Reimplement in terms of
+       AUTO_DUMP_SCOPE.
+
+2018-06-29  Richard Biener  <rguenther@suse.de>
+
+       * tree-vect-data-refs.c (vect_analyze_data_ref_dependences): Assert
+       compute_all_dependences succeeds.
+       * tree-vect-loop.c (vect_get_datarefs_in_loop): Fail early if we
+       exceed --param loop-max-datarefs-for-datadeps.
+
+2018-06-29  Jakub Jelinek  <jakub@redhat.com>
+
+       * config/rs6000/t-rs6000: Append rs6000-modes.h to TM_H.
+
+2018-06-28  Uros Bizjak  <ubizjak@gmail.com>
+
+       PR target/86348
+       * config/i386/sse.md (*vec_extractv4si_0_zext_sse4): Use
+       alternative 0 in preferred_for_speed attribute.
+
+2018-06-28  Paul Koning  <ni1d@arrl.net>
+
+       * config/pdp11/pdp11-protos.h (pdp11_shift_length): New function.
+       * config/pdp11/pdp11.c (pdp11_shift_length): New function.
+       * config/pdp11/pdp11.h (ADJUST_INSN_LENGTH): Remove.
+       * config/pdp11/pdp11.md: Correct "length" attribute calculation
+       for shift insn patterns.
+
+2018-06-28  David Malcolm  <dmalcolm@redhat.com>
+
+       * cgraph.c (cgraph_node::get_body): Replace assignments to
+       "dump_file" with calls to set_dump_file.
+       * dumpfile.c (alt_dump_file): Make static, and group with...
+       (alt_flags): ...this definition.
+       (dumps_are_enabled): New variable.
+       (refresh_dumps_are_enabled): New function.
+       (set_dump_file): New function.
+       (set_alt_dump_file): New function.
+       (gcc::dump_manager::dump_start): Replace assignments to
+       "dump_file" and "alt_dump_file" with calls to set_dump_file and
+       set_alt_dump_file.
+       (gcc::dump_manager::dump_finish): Likewise.
+       * dumpfile.h (alt_dump_file): Delete decl.
+       (dumps_are_enabled): New variable decl.
+       (set_dump_file): New function decl.
+       (dump_enabled_p): Rewrite in terms of new "dumps_are_enabled"
+       global.
+       * tree-nested.c (lower_nested_functions): Replace assignments to
+       "dump_file" with calls to set_dump_file.
+
+2018-06-28  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * tree-cfg.c (verify_gimple_in_cfg): Call verify_location on the
+       goto_locus of each outgoing edge of each basic block.
+
+2018-06-28  Richard Biener  <rguenther@suse.de>
+
+       * dwarf2out.c (decl_scope_table): Remove.
+       (push_decl_scope): Likewise.
+       (pop_decl_scope): Likewise.
+       (gen_type_die_for_member): Do not call push/pop_decl_scope.
+       (gen_struct_or_union_type_die): Likewise.
+       (gen_tagged_type_die): Likewise.
+       (dwarf2out_init): Do not initialize decl_scope_table.
+       (dwarf2out_c_finalize): Do not free it.
+
+2018-06-28  Richard Biener  <rguenther@suse.de>
+
+       * dwarf2out.c (gen_subprogram_die): Use is_unit_die when
+       deciding whether to not re-use a DIE.
+
 2018-06-28  Richard Biener  <rguenther@suse.de>
 
        * dwarf2out.c (gen_subprogram_die): Always re-use DIEs with an