- 02 Nov, 2016 13 commits
-
-
2016-11-02 Richard Biener <rguenther@suse.de> PR tree-optimization/78035 PR tree-optimization/77964 * gimple-pretty-print.c (pp_points_to_solution): Print vars_contains_interposable. * tree-ssa-alias.c: Include varasm.h. (ptrs_compare_unequal): Check vars_contains_interposable and decl_binds_to_current_def_p. (dump_points_to_solution): Dump vars_contains_interposable. * tree-ssa-alias.h (struct pt_solution): Add vars_contains_interposable flag. * tree-ssa-structalias.c: Include varasm.h. (set_uids_in_ptset): Record whether vars contains a not decl_binds_to_current_def_p variable in vars_contains_interposable. (ipa_escaped_pt): Update initializer. * gcc.target/i386/pr78035.c: New testcase. From-SVN: r241776
Richard Biener committed -
2016-11-02 Richard Biener <rguenther@suse.de> PR tree-optimization/78047 * tree-ssa-structalias.c (push_fields_onto_fieldstack): Initialize fake field at offset zero conservatively regarding to may_have_pointers. From-SVN: r241775
Richard Biener committed -
tree-vrp.c (evrp_dom_walker::before_dom_children): Call infer_value_range on stmt ops and update value-ranges. 2016-11-02 Richard Biener <rguenther@suse.de> * tree-vrp.c (evrp_dom_walker::before_dom_children): Call infer_value_range on stmt ops and update value-ranges. Dump visited stmts and blocks. (evrp_dom_walker::push_value_range): Dump changes. (evrp_dom_walker::pop_value_range): Likewise. (evrp_dom_walker::try_find_new_range): Avoid noop changes. * gcc.dg/tree-ssa/vrp111.c: New testcase. * gcc.dg/tree-ssa/pr20702.c: Disable EVRP. * gcc.dg/tree-ssa/pr21086.c: Likewise. * gcc.dg/tree-ssa/pr58480.c: Likewise. * gcc.dg/tree-ssa/vrp08.c: Likewise. From-SVN: r241774
Richard Biener committed -
gcc/ChangeLog: 2016-11-01 Trevor Saunders <tbsaunde+gcc@tbsaunde.org> * emit-rtl.c (prev_nonnote_insn_bb): Change argument type to rtx_insn *. * rtl.h (prev_nonnote_insn_bb): Adjust prototype. From-SVN: r241773
Trevor Saunders committed -
gcc/ChangeLog: 2016-11-01 Trevor Saunders <tbsaunde+gcc@tbsaunde.org> * cfgrtl.c (delete_insn_chain): Change argument type to rtx_insn * and adjust for that. * cfgrtl.h (delete_insn_chain): Adjust prototype. From-SVN: r241772
Trevor Saunders committed -
gcc/ChangeLog: 2016-11-01 Trevor Saunders <tbsaunde+gcc@tbsaunde.org> * config/rl78/rl78.c (gen-and_emit_move): Change argument type to rtx_insn *. (transcode_memory_rtx): Likewise. (move_to_acc): Likewise. (move_from_acc): Likewise. (move_acc_to_reg): Likewise. (move_to_x): Likewise. (move_to_hl): Likewise. (move_to_de): Likewise. * config/rs6000/rs6000.c (emit_frame_save): Likewise. (rs6000_emit_savres_rtx): Likewise. (rs6000_emit_prologue): Likewise. * reorg.c (update_reg_unused_notes): Likewise. * rtl.h (remove_note): Adjust prototype. * rtlanal.c (remove_note): Make argument type rtx_insn *. From-SVN: r241771
Trevor Saunders committed -
gcc/ChangeLog: 2016-11-01 Trevor Saunders <tbsaunde+gcc@tbsaunde.org> * config/alpha/alpha.c (alpha_legitimize_address_1): Split up variables so some can be rtx_insn *. (alpha_emit_xfloating_libcall): Likewise. * config/mips/mips.c (mips_call_tls_get_addr): Likewise. (mips_legitimize_tls_address): Likewise. * optabs.c (expand_binop): Likewise. * reload1.c (gen_reload): Likewise. From-SVN: r241770
Trevor Saunders committed -
gcc/ChangeLog: 2016-11-01 Trevor Saunders <tbsaunde+gcc@tbsaunde.org> * reorg.c (relax_delay_slots): Split up the trial variable. From-SVN: r241769
Trevor Saunders committed -
gcc/ChangeLog: 2016-11-01 Trevor Saunders <tbsaunde+gcc@tbsaunde.org> * config/arc/arc.c (arc_emit_call_tls_get_addr): Make the type of variables rtx_insn *. * config/arm/arm.c (arm_call_tls_get_addr): Likewise. (legitimize_tls_address): Likewise. * config/bfin/bfin.c (hwloop_optimize): Likewise. (bfin_gen_bundles): Likewise. * config/c6x/c6x.c (reorg_split_calls): Likewise. (c6x_reorg): Likewise. * config/frv/frv.c (frv_reorder_packet): Likewise. * config/i386/i386.c (ix86_split_idivmod): Likewise. * config/ia64/ia64.c (ia64_expand_compare): Likewise. * config/m32c/m32c.c (m32c_prepare_shift): Likewise. * config/mn10300/mn10300.c: Likewise. * config/rl78/rl78.c: Likewise. * config/s390/s390.c (s390_fix_long_loop_prediction): Likewise. * config/sh/sh-mem.cc (sh_expand_cmpstr): Likewise. (sh_expand_cmpnstr): Likewise. (sh_expand_strlen): Likewise. (sh_expand_setmem): Likewise. * config/sh/sh.md: Likewise. * emit-rtl.c (emit_pattern_before): Likewise. * except.c: Likewise. * final.c: Likewise. * jump.c: Likewise. From-SVN: r241768
Trevor Saunders committed -
2016-11-01 Josh Conner <joshconner@google.com> * MAINTAINERS (Write After Approval): Update email address, From-SVN: r241767
Josh Conner committed -
* c-cppbuiltin.c (c_cpp_builtins): Update __cpp_inheriting_constructors. From-SVN: r241766
Jason Merrill committed -
gcc/c-family/ * c.opt (-fnew-inheriting-ctors): New. * c-opts.c: Default to on for ABI 11+. gcc/cp/ * call.c (enum rejection_reason_code): Add rr_inherited_ctor. (inherited_ctor_rejection): New. (add_function_candidate): Reject inherited ctors for copying. (enforce_access): Use strip_inheriting_ctors. (print_z_candidate): Likewise. Handle rr_inherited_ctor. (convert_like_real): Avoid copying inheriting ctor parameters. (build_over_call): Likewise. A base ctor inheriting from vbase has no parms. Sorry about varargs. (joust): A local constructor beats inherited with the same convs. * class.c (add_method): Handle hiding inheriting ctors. (one_inherited_ctor): Handle new semantics. (add_implicitly_declared_members): Pass using_decl down. (build_clone): A base ctor inheriting from vbase has no parms. * cp-tree.h (DECL_INHERITED_CTOR): Store this instead of the base. (SET_DECL_INHERITED_CTOR): Likewise. (DECL_INHERITED_CTOR_BASE): Adjust. * constexpr.c: Adjust. * error.c (dump_function_decl): Decorate inheriting ctors. * init.c (emit_mem_initializers): Suppress access control in inheriting ctor. * mangle.c (write_special_name_constructor): Handle new inheriting ctor mangling. * method.c (strip_inheriting_ctors, inherited_ctor_binfo) (ctor_omit_inherited_parms, binfo_inherited_from): New. (synthesized_method_walk): Use binfo_inherited_from. Suppress access control in inheriting ctor. (deduce_inheriting_ctor): Deleted if ambiguous ctor inheritance. (maybe_explain_implicit_delete): Explain ambigous ctor inheritance. (add_one_base_init, do_build_copy_constructor): Adjust. (locate_fn_flags, explain_implicit_non_constexpr): Adjust. (implicitly_declare_fn): Adjust. (get_inherited_ctor): Remove. * name-lookup.c (do_class_using_decl): Check for indirect ctor inheritance. * optimize.c (cdtor_comdat_group): Adjust for new mangling. (maybe_clone_body): Handle omitted parms in base clone. (maybe_thunk_body): Don't thunk if base clone omits parms. * pt.c (tsubst_decl): Adjust. (instantiate_template_1): Suppress access control in inheriting ctor. (fn_type_unification): Do deduction with inherited ctor. * tree.c (special_function_p): Adjust. gcc/ * tree-inline.c (copy_tree_body_r): Only copy the taken branch of a COND_EXPR with constant condition. libiberty/ * cp-demangle.c (d_ctor_dtor_name): Handle inheriting constructor. From-SVN: r241765
Jason Merrill committed -
From-SVN: r241764
GCC Administrator committed
-
- 01 Nov, 2016 24 commits
-
-
From-SVN: r241761
David Edelsohn committed -
When a symbol cannot be demangled in ada_demangle a new demangled VEC will be allocated without deleting the demangled VEC already in use. Running testsuite/test-demangle under valgrind will show the leak for this entry in testsuite/demangle-expected: # Elaborated flag (not demangled) --format=gnat x_E <x_E> 11 bytes in 1 blocks are definitely lost in loss record 1 of 1 at 0x4C27BE3: malloc (vg_replace_malloc.c:299) by 0x413FE7: xmalloc (xmalloc.c:148) by 0x4025EC: ada_demangle (cplus-dem.c:930) by 0x402C59: cplus_demangle (cplus-dem.c:892) by 0x400FEC: main (test-demangle.c:317) libiberty/ChangeLog: * cplus-dem.c (ada_demangle): Initialize demangled to NULL and XDELETEVEC demangled when unknown. From-SVN: r241760
Mark Wielaard committed -
* dwarf2out.c (gen_variable_die): Remove again origin_die variable and its initialization. From-SVN: r241759
Jakub Jelinek committed -
* dwarf2out.c (output_rnglists): Wrap basebuf, len in HAVE_AS_LEB128. From-SVN: r241758
Rainer Orth committed -
From Andreas Schwab. Reviewed-on: https://go-review.googlesource.com/32537 From-SVN: r241757
Ian Lance Taylor committed -
2016-11-01 Thomas Koenig <tkoenig@gcc.gnu.org> PR fortran/78178 * match.c (match_simple_where): Fill in locus for assigment in simple WHERE statement. 2016-11-01 Thomas Koenig <tkoenig@gcc.gnu.org> PR fortran/69544 * gfortran.dg/where_6.f90: New test. From-SVN: r241756
Thomas Koenig committed -
dwarf2out.c (add_name_and_src_coords_attributes): Add NO_LINKAGE_NAME argument, don't call add_linkage_name if it is true. * dwarf2out.c (add_name_and_src_coords_attributes): Add NO_LINKAGE_NAME argument, don't call add_linkage_name if it is true. (gen_variable_die): For C++ inline static data members, consider the initial call when old_die is NULL to be declaration and call add_name_and_src_coords_attributes in that case with true as NO_LINKAGE_NAME. Add DW_AT_inline attribute if needed. (gen_member_die): For C++ inline static data members, emit a definition DIE right away in DW_TAG_compile_unit context. cp/ * cp-objcp-common.c (cp_decl_dwarf_attribute): Handle DW_AT_inline. testsuite/ * g++.dg/debug/dwarf2/inline-var-1.C: New test. From-SVN: r241753
Jakub Jelinek committed -
PR target/78166 * config/pa/pa.md: Add new shift/add patterns to handle (plus (mult (reg) (mem_shadd_operand)) (reg)) source operand. From-SVN: r241749
John David Anglin committed -
It started failing after the following commit: 32e90dc6a0cda45 ("PR rtl-optimization/61047"). The change that made xtensa backend go ICE looks completely unrelated, and indeed, the issue is caused by the side effect of compute_frame_size() function call hidden in the INITIAL_ELIMINATION_OFFSET macro. This call updates the value of the xtensa_current_frame_size static variable, used in "return" instruction predicate. Prior to the change the value of xtensa_current_frame_size was set to 0 after the end of epilogue generation, which enabled the "return" instruction for the CALL0 ABI, but after the change the additional INITIAL_ELIMINATION_OFFSET calls make xtensa_current_frame_size non-zero and "return" pattern unavailable. Get rid of the global xtensa_current_frame_size and xtensa_callee_save_size variables by moving them into the machine_function structure. Implement predicate for the "return" pattern as a function. Don't communicate completion of epilogue generation through zeroing of xtensa_current_frame_size, add explicit epilogue_done variable to the machine_function structure. Don't update stack frame layout after the completion of reload. 2016-11-01 Max Filippov <jcmvbkbc@gmail.com> gcc/ * config/xtensa/xtensa-protos.h (xtensa_use_return_instruction_p): New prototype. * config/xtensa/xtensa.c (xtensa_current_frame_size, xtensa_callee_save_size): Remove. (struct machine_function): Add new fields: current_frame_size, callee_save_size, frame_laid_out and epilogue_done. (compute_frame_size, xtensa_expand_prologue, xtensa_expand_epilogue): Replace xtensa_callee_save_size with cfun->machine->callee_save_size and xtensa_current_frame_size with cfun->machine->current_frame_size. (compute_frame_size): Update cfun->machine->frame_laid_out and don't update frame layout after reload completion. (xtensa_expand_epilogue): Set cfun->machine->epilogue_done instead of zeroing xtensa_current_frame_size. (xtensa_use_return_instruction_p): New function. * config/xtensa/xtensa.h (xtensa_current_frame_size): Remove declaration. (INITIAL_ELIMINATION_OFFSET): Use return value of compute_frame_size instead of xtensa_current_frame_size value. * config/xtensa/xtensa.md ("return" pattern): Use new predicate function xtensa_use_return_instruction_p instead of inline code. From-SVN: r241748
Max Filippov committed -
* tree.h (BLOCK_IN_COLD_SECTION_P): Define. * final.c (final_scan_insn): Set BLOCK_IN_COLD_SECTION_P. * dwarf2out.c (rnglist_idx): New variable. (struct dw_ranges): Add label, idx and maybe_new_sec fields. (DEBUG_RNGLISTS_SECTION): Define. (ranges_base_label): New variable. (size_of_die) <case dw_val_class_range_list>: If using DW_FORM_rnglistx, count size of uleb128 of range list index. (value_format) <case dw_val_class_range_list>: For -gdwarf-5 -gsplit-dwarf return DW_FORM_rnglistx. (output_range_list_offset): Handle -gdwarf-5 .debug_rnglists offsets. Multiply dwarf < 5 offsets by 2 * DWARF_ADDR_SIZE. (add_ranges_num): Remove useless prototype. Don't multiply by 2 * DWARF2_ADDR_SIZE. Add maybe_new_sec argument, adjust for new fields added to dw_ranges struct. (add_ranges): Add maybe_new_sec argument and pass it through to add_ranges_num. (note_rnglist_head): New function. (add_ranges_by_labels): Pass true as maybe_new_sec to add_ranges_num, call note_rnglist_head on the head of the list. (output_ranges): Add function comment. Switch to .debug_ranges section here and emit .Ldebug_ranges0 label. (index_rnglists, output_rnglists): New functions. (gen_subprogram_die): Formatting fixes. (add_high_low_attributes): Don't divide offsets by 2 * DWARF2_ADDR_SIZE. Call note_rnglist_head on the first list element or when pointing into the middle of a list. Pass true as second argument to add_ranges on the first block fragment after cold/hot section switch. (init_sections_and_labels): For -gdwarf-5 use .debug_rnglists section instead of .debug_ranges. Initialize ranges_base_label if -gdwarf-5 -gsplit-dwarf. (dwarf2out_finish): For -gdwarf-5 -gsplit-dwarf call index_rnglists and add DW_AT_rnglists_base attr. Don't switch to dwarf_ranges_section here or emit .Ldebug_ranges0 label. Call output_rnglists for -gdwarf-5. (dwarf2out_c_finalize): Clear rnglist_idx. From-SVN: r241747
Jakub Jelinek committed -
* hashtab.h: Use standard GPLv3 with runtime exception boilerplate. From-SVN: r241746
Jakub Jelinek committed -
2016-11-01 Thomas Koenig <tkoenig@gcc.gnu.org> PR fortran/69544 * match.c (gfc_match_where): Fill in locus for assigment in simple WHERE statement. 2016-11-01 Thomas Koenig <tkoenig@gcc.gnu.org> PR fortran/69544 * gfortran.dg/where_5.f90: New test. From-SVN: r241745
Thomas Koenig committed -
* gcc/combine.c (simplify_compare_const): Add gcc_fallthrough. From-SVN: r241744
Fritz Reese committed -
When using cgo -gccgo calls to C.GoString, C.GoStringN, and C.GoBytes are turned into calls to __go_byte_array_to_string and __go_string_to_byte_array. Those functions were removed when the string code was copied from Go 1.7, but we still need them for cgo. While cgo should be updated, old versions will exist for some time. Reviewed-on: https://go-review.googlesource.com/32474 From-SVN: r241743
Ian Lance Taylor committed -
Use mvifdiff and stamp files to track whether a .gox file has changed. When package A depends on package B, and we rebuild package B, only rebuild package A if package B's .gox file changes. This is safe because when package A imports package B it only reads package B's .gox file. This means that changes that do not affect export information will not cause dependent packages to be recompiled. Reviewed-on: https://go-review.googlesource.com/32476 From-SVN: r241742
Ian Lance Taylor committed -
Suggested by Ralph Corderoy. Reviewed-on: https://go-review.googlesource.com/32414 From-SVN: r241741
Ian Lance Taylor committed -
PR go/78145 compiler: don't put print/println constants into temporaries It's not necessary, and it breaks setting their type to int64/uint64 when appropriate. This fixes GCC PR 78145. Reviewed-on: https://go-review.googlesource.com/32475 From-SVN: r241740
Ian Lance Taylor committed -
From-SVN: r241739
Jason Merrill committed -
From-SVN: r241737
Joseph Myers committed -
gcc/ 2016-09-30 Bilyan Borisov <bilyan.borisov@arm.com> Tamar Christina <tamar.christina@arm.com> * config/arm/arm-c.c (arm_cpu_builtins): New macro definition. * config/arm/arm_neon.h (vmaxnm_f32): New intrinsinc. (vmaxnmq_f32): Likewise. (vminnm_f32): Likewise. (vminnmq_f32): Likewise. * config/arm/arm_neon_builtins.def (vmaxnm): New builtin. (vminnm): Likewise. * config/arm/neon.md (neon_<fmaxmin_op><mode>, VCVTF): New expander. gcc/testsuite/ 2016-09-30 Bilyan Borisov <bilyan.borisov@arm.com> * gcc.target/arm/simd/vmaxnm_f32_1.c: New. * gcc.target/arm/simd/vmaxnmq_f32_1.c: Likewise. * gcc.target/arm/simd/vminnm_f32_1.c: Likewise. * gcc.target/arm/simd/vminnmq_f32_1.c: Likewise. Co-Authored-By: Tamar Christina <tamar.christina@arm.com> From-SVN: r241736
Bilyan Borisov committed -
From-SVN: r241734
Eric Botcazou committed -
* lib/target-supports.exp: Normalize order of i?86 and x86_64 targets. Whitespace fixes. (check_effective_target_vect_cmdline_needed): Check is-effective-target ia32 for x86 targets. (check_effective_target_vect_simd_clones): Simplify condition. (check_effective_target_vect_double): Ditto. (check_effective_target_vect_aligned_arrays): Check is-effective-target ia32 for x86 targets. Simplify condition. (check_effective_target_vect_multiple_sizes): Simplify condition. (check_effective_target_sqrt_insn): Add i?86-*-* target. (check_effective_target_sync_int_128): Simplify condition. (check_effective_target_sync_int_128_runtime): Ditto. (check_effective_target_sync_long_long_runtime): Ditto. (check_effective_target_divmod): Add i?86-*-* target. From-SVN: r241733
Uros Bizjak committed -
vsx.md (VSX_EXTRACT_FL): New iterator for all binary floating point types supported by the hardware... [gcc] 2016-10-31 Michael Meissner <meissner@linux.vnet.ibm.com> * config/rs6000/vsx.md (VSX_EXTRACT_FL): New iterator for all binary floating point types supported by the hardware except for double. (vsx_xvcvsxwdp_df): Provide scalar result alternative to the vector instruction for optimizing extracting a SImode from a V4SImode vector and converting it to floating point. (vsx_xvcvuxwdp_df): Likewise. (vsx_extract_si): On ISA 3.0, allow extract target and temporary registers to be any VSX register. Move stores to the end of the constraints. (vsx_extract_si_<uns>float_df): New combiner pattern and splitter to optimize extracting a SImode from a V4SImode vector and converting it to a binary floating point type supported by the hardware. Use the vector converts instead of extracting the element, sign extending it, and then converting it to double. Other floating point types than double first convert to double, then the double is converted to that type. (vsx_extract_si_<uns>float_<mode>): Likewise. [gcc/testsuite] 2016-10-31 Michael Meissner <meissner@linux.vnet.ibm.com> * gcc.target/powerpc/vsx-extract-4.c: New test. * gcc.target/powerpc/vsx-extract-5.c: Likewise. From-SVN: r241731
Michael Meissner committed -
From-SVN: r241730
GCC Administrator committed
-
- 31 Oct, 2016 3 commits
-
-
driver-aarch64.c (host_detect_local_cpu): Rewrite handling of part num to handle the case where multiple implementers... 2016-10-31 Andrew Pinski <apinski@cavium.com> * config/aarch64/driver-aarch64.c (host_detect_local_cpu): Rewrite handling of part num to handle the case where multiple implementers share the same part num. From-SVN: r241726
Andrew Pinski committed -
* dwarf2out.c (DWARF_COMPILE_UNIT_HEADER_SIZE): Adjust for -gdwarf-5. (DWARF_COMDAT_TYPE_UNIT_HEADER_SIZE): Likewise. Co-Authored-By: Jakub Jelinek <jakub@redhat.com> From-SVN: r241725
Jan Kratochvil committed -
* dwarf2out.c (dwarf_AT): Handle DW_AT_dwo_name. (use_debug_types): Adjust comment for DWARF5 DW_UT_type units. (new_die): Handle DW_TAG_skeleton_unit like DW_TAG_compile_unit. (is_cu_die, is_unit_die): Likewise. (should_move_die_to_comdat, break_out_comdat_types): Adjust comments for DWARF5 DW_UT_type units. (output_compilation_unit_header): Add UT argument, output start of DWARF5 .debug_info section header. (output_comp_unit): Add dwo_id argument. Adjust output_compilation_unit_header caller, for DW_UT_split_compile emit dwo_id field, otherwise padding1. Emit padding2 field. (add_top_level_skeleton_die_attrs): Add DW_AT_dwo_name rather than DW_AT_GNU_dwo_name attr for -gdwarf-5. (output_skeleton_debug_sections): Add dwo_id argument, for -gdwarf-5 emit DWARF 5 DW_UT_skeleton header. (output_comdat_type_unit): For -gdwarf-5 emit .debug_info DW_UT_type or DW_UT_split_type units rather than .debug_types. (dwarf2out_finish): Use DW_TAG_skeleton_unit rather than DW_TAG_compile_unit for skeleton unit die. Don't add DW_AT_GNU_dwo_id attributes for -gdwarf-5, instead pass checksum address to output_comp_unit and output_skeleton_debug_sections. From-SVN: r241724
Jakub Jelinek committed
-