- 21 Aug, 2017 12 commits
-
-
From-SVN: r251228
Joseph Myers committed -
PR c++/81899 * pt.c (instantiate_class_template_1): BOUND_TEMPLATE_TEMPLATE_PARM is never friend-injected. PR c++/81899 * g++.dg/template/pr81899.C: New. From-SVN: r251227
Nathan Sidwell committed -
2017-08-21 Richard Biener <rguenther@suse.de> PR tree-optimization/81900 * tree-ssa-pre.c (compute_antic_aux): Properly compute changed for blocks with abnormal predecessors. (compute_antic): Do not set visited flag prematurely. * gcc.dg/torture/pr81900.c: New testcase. From-SVN: r251226
Richard Biener committed -
PR target/79883 * config/avr/avr.c (avr_set_current_function): Typo in diagnostic. From-SVN: r251223
Georg-Johann Lay committed -
From-SVN: r251222
Nathan Sidwell committed -
...so that it's possible to use TYPE_MODE in tree.h. 2017-08-21 Richard Sandiford <richard.sandiford@linaro.org> gcc/ * stor-layout.h (vector_type_mode): Move to... * tree.h (vector_type_mode): ...here. * stor-layout.c (vector_type_mode): Move to... * tree.c (vector_type_mode): ...here. Include rtl.h and regs.h. From-SVN: r251221
Richard Sandiford committed -
2017-08-21 Richard Biener <rguenther@suse.de> include/ * simple-object.h (simple_object_copy_lto_debug_sections): New function. libiberty/ * simple-object-common.h (struct simple_object_functions): Add copy_lto_debug_sections hook. * simple-object.c: Include fcntl.h. (handle_lto_debug_sections): New helper function. (simple_object_copy_lto_debug_sections): New function copying early LTO debug sections to regular debug sections in a new file. (simple_object_start_write): Handle NULL segment_name. * simple-object-coff.c (simple_object_coff_functions): Adjust for not implemented copy_lto_debug_sections hook. * simple-object-mach-o.c (simple_object_mach_o_functions): Likewise. * simple-object-xcoff.c (simple_object_xcoff_functions): Likewise. * simple-object-elf.c (SHT_NULL, SHT_SYMTAB, SHT_RELA, SHT_REL, SHT_GROUP): Add various sectopn header types. (SHF_EXCLUDE): Add flag. (Elf32_External_Sym, Elf64_External_Sym): Add symbol struct. (ELF_ST_BIND, ELF_ST_TYPE, ELF_ST_INFO): Add accessors. (STT_OBJECT, STT_FUNC, STT_TLS, STT_GNU_IFUNC): Add Symbol types. (STV_DEFAULT): Add symbol visibility. (SHN_COMMON): Add special section index name. (struct simple_object_elf_write): New. (simple_object_elf_start_write): Adjust for new private data. (simple_object_elf_write_shdr): Pass in values for all fields we write. (simple_object_elf_write_to_file): Adjust. Copy from recorded section headers if requested. (simple_object_elf_release_write): Release private data. (simple_object_elf_copy_lto_debug_sections): Copy and rename sections as denoted by PFN and all their dependences, symbols and relocations to the empty destination file. (simple_object_elf_functions): Adjust for copy_lto_debug_sections hook. gcc/ * debug.h (struct gcc_debug_hooks): Add die_ref_for_decl and register_external_die hooks. (debug_false_tree_charstarstar_uhwistar): Declare. (debug_nothing_tree_charstar_uhwi): Likewise. * debug.c (do_nothing_debug_hooks): Adjust. (debug_false_tree_charstarstar_uhwistar): New do nothing. (debug_nothing_tree_charstar_uhwi): Likewise. * dbxout.c (dbx_debug_hooks): Adjust. (xcoff_debug_hooks): Likewise. * sdbout.c (sdb_debug_hooks): Likewise. * vmsdbgout.c (vmsdbg_debug_hooks): Likewise. * dwarf2out.c (macinfo_label_base): New global. (dwarf2out_register_external_die): New function for the register_external_die hook. (dwarf2out_die_ref_for_decl): Likewise for die_ref_for_decl. (dwarf2_debug_hooks): Use them. (dwarf2_lineno_debug_hooks): Adjust. (struct die_struct): Add with_offset flag. (DEBUG_LTO_DWO_INFO_SECTION, DEBUG_LTO_INFO_SECTION, DEBUG_LTO_DWO_ABBREV_SECTION, DEBUG_LTO_ABBREV_SECTION, DEBUG_LTO_DWO_MACINFO_SECTION, DEBUG_LTO_MACINFO_SECTION, DEBUG_LTO_DWO_MACRO_SECTION, DEBUG_LTO_MACRO_SECTION, DEBUG_LTO_LINE_SECTION, DEBUG_LTO_DWO_STR_OFFSETS_SECTION, DEBUG_LTO_STR_DWO_SECTION, DEBUG_STR_LTO_SECTION): New macros defining section names for the early LTO debug variants. (reset_indirect_string): New helper. (add_AT_external_die_ref): Helper for dwarf2out_register_external_die. (print_dw_val): Add support for offsetted symbol references. (get_ultimate_context): Split out from is_cxx. (is_cxx): Use get_ultimate_context. (is_fortran): Add decl overload. (compute_comp_unit_symbol): Split out worker from compute_section_prefix. (compute_section_prefix): Call compute_comp_unit_symbol and set comdat_type_p here. (output_die): Skip DIE symbol output for the LTO added one. Handle DIE symbol references with offset. (output_comp_unit): Guard section name mangling properly. For LTO debug sections emit a symbol at the section beginning which we use to refer to its DIEs. (add_abstract_origin_attribute): For DIEs registered via dwarf2out_register_external_die directly refer to the early DIE rather than indirectly through the shadow one we created. Remove obsolete call to dwarf2out_abstract_function for non-function/block origins. (gen_array_type_die): When generating early LTO debug do not emit DW_AT_string_length. (gen_formal_parameter_die): Do not re-create DIEs for PARM_DECLs late when in LTO. As suggested place a gcc_unreachable for the DECL_ABSTRACT_P case. (gen_subprogram_die): Avoid another specification DIE for early built declarations/definitions for the late LTO case. (gen_variable_die): Add type references for late duplicated VLA dies when in late LTO. (gen_inlined_subroutine_die): Do not call dwarf2out_abstract_function, we have the abstract instance already. (process_scope_var): Adjust decl DIE contexts in LTO which first puts them in limbo. (gen_decl_die): Do not generate type DIEs late apart from types for VLAs or for decls we do not yet have a DIE. Do not call dwarf2out_abstract_function late. (dwarf2out_early_global_decl): Make sure to create DIEs for abstract instances of a decl first. (dwarf2out_late_global_decl): Adjust comment. (output_macinfo_op): With multiple macro sections use macinfo_label_base to distinguish labels. (output_macinfo): Likewise. Update macinfo_label_base. Pass in the line info label. (note_variable_value_in_expr): When generating LTO resolve all variable values here by generating DIEs as needed. (init_sections_and_labels): Add early LTO debug flag parameter and generate different sections and names if set. Add generation counter for the labels so we can have multiple of them. (reset_dies): Helper to allow DIEs to be output multiple times. (dwarf2out_finish): When outputting DIEs to the fat part of an LTO object first reset DIEs. (dwarf2out_early_finish): Output early DIEs when generating LTO. (modified_type_die): Check for decl_ultimate_origin being self before recursing. (gen_type_die_with_usage): Likewise. (gen_typedef_die): Allow decl_ultimate_origin being self. (set_decl_abstract_flags): Remove. (set_block_abstract_flags): Likewise. (dwarf2out_abstract_function): Treat the early generated DIEs as the abstract copy and only add DW_AT_inline and DW_AT_artificial here and call set_decl_origin_self. If the DIE has an abstract origin don't do anything. * tree.c (free_lang_data): Build a dummy TRANSLATION_UNIT_DECL if we have none yet (Go fails to build one, PR78628). (variably_modified_type_p): Prevent endless recursion for Ada cyclic pointer types. * lto-streamer-in.c: Include debug.h. (dref_queue): New global. (lto_read_tree_1): Stream in DIE references. (lto_input_tree): Register DIE references. (input_function): Stream DECL_DEBUG_ARGS. * lto-streamer-out.c: Include debug.h. (lto_write_tree_1): Output DIE references. (DFS::DFS_write_tree_body): Follow DECL_ABSTRACT_ORIGIN. Force a TRANSLATION_UNIT_DECL DECL_CONTEXT for file-scope decls. (output_function): Stream DECL_DEBUG_ARGS. * tree-streamer-in.c (lto_input_ts_decl_common_tree_pointers): Stream DECL_ABSTRACT_ORIGIN. * tree-streamer-out.c (write_ts_decl_common_tree_pointers): Likewise. (write_ts_decl_minimal_tree_pointers): Force a TRANSLATION_UNIT_DECL DECL_CONTEXT for file-scope decls. * lto-streamer.h (struct dref_entry): Declare. (dref_queue): Likewise. * cfgexpand.c (pass_expand::execute): Do not call the outlining_inline_function hook here. * lto-wrapper.c (debug_obj): New global. (tool_cleanup): Unlink it if required. (debug_objcopy): New function. (run_gcc): Handle early debug sections in the IL files by extracting them to separate files, partially linkin them and feeding the result back as result to the linker. * config/darwin.h (DEBUG_LTO_INFO_SECTION, DEBUG_LTO_ABBREV_SECTION, DEBUG_LTO_MACINFO_SECTION, DEBUG_LTO_LINE_SECTION, DEBUG_STR_LTO_SECTION, DEBUG_LTO_MACRO_SECTION): Put early debug sections into a separate segment. * config/darwin.c (darwin_asm_named_section): Handle __GNU_DWARF_LTO segments. (darwin_asm_dwarf_section): Likewise. (darwin_asm_output_dwarf_offset): Likewise. * config/i386/i386.c (make_resolver_func): Set DECL_IGNORED_P. lto/ * lto.c (unify_scc): Truncate DIE reference queue for dropped SCCs. (lto_read_decls): Process TRANSLATION_UNIT_DECLs. Remove TYPE_DECL debug processing, register DIE references from prevailing SCCs with the debug machinery. (lto_section_with_id): Handle LTO debug sections. libstdc++/ * testsuite/libstdc++-prettyprinters/prettyprinters.exp: Run all tests with -flto as well if supported. testsuite/ * c-c++-common/asan/global-overflow-1.c: Adjust diagnostic location regex to handle the LTO case. * c-c++-common/asan/heap-overflow-1.c: Likewise. * c-c++-common/asan/misalign-1.c: Likewise. * c-c++-common/asan/misalign-2.c: Likewise. * c-c++-common/asan/null-deref-1.c: Likewise. * c-c++-common/asan/stack-overflow-1.c: Likewise. * c-c++-common/asan/strncpy-overflow-1.c: Likewise. * c-c++-common/asan/use-after-free-1.c: Likewise. * c-c++-common/asan/alloca_big_alignment.c: Likewise. * c-c++-common/asan/alloca_detect_custom_size.c: Likewise. * c-c++-common/asan/alloca_overflow_partial.c: Likewise. * c-c++-common/asan/alloca_overflow_right.c: Likewise. * c-c++-common/asan/alloca_underflow_left.c: Likewise. * g++.dg/asan/large-func-test-1.C: Likewise. * gfortran.dg/save_6.f90: Add -flto -g variant of save_5.f90. From-SVN: r251220
Richard Biener committed -
The read-md.c iterator callbacks previously used a void * to record the position at which the iterator value should be installed. This doesn't scale easily to the SUBREG_BYTE representation used by a later patch, so this patch replaces the void * with both an rtx and an operand number. The operand number is ignored for modes and codes. 2017-08-21 Richard Sandiford <richard.sandiford@linaro.org> Alan Hayward <alan.hayward@arm.com> David Sherwood <david.sherwood@arm.com> gcc/ * read-md.h (md_reader::record_potential_iterator_use): Replace pointer argument with an rtx and an index. * read-rtl.c (iterator_group::apply_iterator): Likewise. (apply_mode_iterator): Likewise. (apply_code_iterator): Likewise. (apply_int_iterator): Likewise. (apply_subst_iterator): Likewise. (record_iterator_use): Likewise. (record_attribute_use): Likewise. (md_reader::record_potential_iterator_use): Likewise. Update calls to record_iterator_use and apply_iterator. (iterator_use): Replace ptr with x and index. (attribute_use): Likewise. (apply_attribute_uses): Update calls to apply_iterator. (apply_iterators): Likewise. Update initialization of iterator_use. (rtx_reader::read_rtx_code): Update calls to record_iterator_use and record_potential_iterator_use. (rtx_reader::read_rtx_operand): Likewise. Co-Authored-By: Alan Hayward <alan.hayward@arm.com> Co-Authored-By: David Sherwood <david.sherwood@arm.com> From-SVN: r251219
Richard Sandiford committed -
The CONST_WIDE_INT case in const_rtx_hash_1 started the hash with the precision of the mode, but the mode is always VOIDmode. 2017-08-21 Richard Sandiford <richard.sandiford@linaro.org> Alan Hayward <alan.hayward@arm.com> David Sherwood <david.sherwood@arm.com> gcc/ * varasm.c (const_rtx_hash_1): Don't hash in the mode of a CONST_WIDE_INT. Co-Authored-By: Alan Hayward <alan.hayward@arm.com> Co-Authored-By: David Sherwood <david.sherwood@arm.com> From-SVN: r251218
Richard Sandiford committed -
re PR tree-optimization/81884 (Invalid code generation with zero size arrays or flexible array members) 2017-08-21 Richard Biener <rguenther@suse.de> PR middle-end/81884 * tree-ssa-alias.c (stmt_kills_ref_p): Handle array accesses at struct end conservatively when comparing common bases. * g++.dg/torture/pr81884.C: New testcase. From-SVN: r251217
Richard Biener committed -
2017-08-21 Richard Biener <rguenther@suse.de> * tree-ssa-loop-im.c (struct lim_aux_data): Add ref index member. (mem_ref_in_stmt): Remove. (determine_max_movement): Use ref index to get at the reference. (invariantness_dom_walker::before_dom_children): Deal with lim data already initialized. (gather_mem_refs_stmt): Initialize lim data and record ref index. From-SVN: r251216
Richard Biener committed -
From-SVN: r251215
GCC Administrator committed
-
- 20 Aug, 2017 5 commits
-
-
libstdc++/ChangeLog: PR c/81854 * src/c++98/compatibility.cc (_GLIBCXX_3_4_SYMVER): Declare alias target as a C++ function with no prototype. (_GLIBCXX_3_4_5_SYMVER): Ditto. From-SVN: r251211
Martin Sebor committed -
From-SVN: r251210
John David Anglin committed -
PR testsuite/81056 * testsuite/17_intro/names.cc: Undef 'd' and 'r' on __hpux__ From-SVN: r251208
John David Anglin committed -
re PR ipa/77732 (FAIL: gcc.dg/ipa/ipcp-cstagg-7.c scan-ipa-dump-times cp "Discovered an indirect call to a known target" 3) PR ipa/77732 * gcc.dg/ipa/ipcp-cstagg-7.c: Xfail on 32-bit hppa. From-SVN: r251206
John David Anglin committed -
From-SVN: r251205
GCC Administrator committed
-
- 19 Aug, 2017 3 commits
-
-
* config/i386/i386.h (OPTION_MASK_ISA_ROUND): Remove. (TARGET_ISA_ROUND): Ditto. (TARGET_ROUND): Ditto. * config/i386/i386.c: Substitute TARGET_ROUND with TARGET_SSE4_1. * config/i386/i386.md: Ditto. * config/i386/sse.md: Ditto. * config/i386/i386-builtin.def: Substitute OPTION_MASK_ISA_ROUND with OPTION_MASK_ISA_SSE4_1. From-SVN: r251201
Uros Bizjak committed -
PR target/81894 * doc/extend.texi (x86 Built-in Functions): Correct the name of __builtin_ia32_lzcnt_u16. From-SVN: r251197
Uros Bizjak committed -
From-SVN: r251196
GCC Administrator committed
-
- 18 Aug, 2017 12 commits
-
-
libgccjit ran into its own version of PR tree-optimization/46805 (seen with the Go frontend); this patch fixes it in the same way. gcc/jit/ChangeLog: PR tree-optimization/46805 * dummy-frontend.c (jit_langhook_parse_file): Handle vector types. gcc/testsuite/ChangeLog: PR tree-optimization/46805 * jit.dg/all-non-failing-tests.h: Add test-autovectorize.c. * jit.dg/test-autovectorize.c: New test case. From-SVN: r251192
David Malcolm committed -
The C reproducers generated by gcc_jit_context_dump_reproducer_to_file contain numerous pointer values (from %p) to ensure uniqueness of the identifiers, but this makes them less readable than they could be. This patch updates reproducer::make_identifier so that the pointer is only added if it's necessary for uniqueness. gcc/jit/ChangeLog: * jit-recording.c (class gcc::jit::reproducer): Rename field "m_identifiers" to "m_map_memento_to_identifier". Add field "m_set_identifiers" and struct hash_traits for it. (gcc::jit::reproducer::reproducer): Update for above. (convert_to_identifier): New function. (gcc::jit::reproducer::ensure_identifier_is_unique): New method. (gcc::jit::reproducer::make_identifier): Avoid appending the %p unless necessary for uniqueness. Update for field renaming. (gcc::jit::reproducer::get_identifier): Update for field renaming. From-SVN: r251191
David Malcolm committed -
gcc/ PR target/80210 * config/rs6000/rs6000.c (rs6000_activate_target_options): New function. (rs6000_set_current_function): Rewrite function to use it. gcc/testsuite/ PR target/80210 * gcc.target/powerpc/pr80210.c: New test. From-SVN: r251190
Peter Bergner committed -
PR go/81893 runtime: only use PPC GNU/Linux register code on little endian Reportedly the current code builds on little endian but not big endian. Fixes https://gcc.gnu.org/PR81893. Reviewed-on: https://go-review.googlesource.com/57110 From-SVN: r251188
Ian Lance Taylor committed -
* include/bits/hashtable_policy.h (_ReuseOrAllocNode): Remove __value_alloc_type and __value_alloc_traits typedefs. (_ReuseOrAllocNode::operator()): Call construct and destroy on the node allocator. (_Hashtable_alloc): Simplify __value_alloc_traits typedef. (_Hashtable_alloc<_NodeAlloc>::_M_allocate_node(_Args&&...)): Call construct on the node allocator. (_Hashtable_alloc<_NodeAlloc>::_M_deallocate_node(__node_type*)): Call destroy on the node allocator. From-SVN: r251187
Jonathan Wakely committed -
gcc/cp/ChangeLog: PR c++/81514 * name-lookup.c (maybe_suggest_missing_header): Convert return type from void to bool; return true iff a suggestion was offered. (suggest_alternative_in_explicit_scope): Move call to maybe_suggest_missing_header to before use of best_match, and return true if the former offers a suggestion. gcc/testsuite/ChangeLog: PR c++/81514 * g++.dg/lookup/empty.h: New file. * g++.dg/lookup/missing-std-include-2.C: Replace include of stdio.h with empty.h and a declaration of a "std::sprintf" not based on a built-in. From-SVN: r251186
David Malcolm committed -
PR libstdc++/81891 * include/bits/hashtable.h (_Hashtable(_InputIterator, _InputIterator, size_type, const _H1&, const _H2&, const _Hash&, const _Equal&, const _ExtractKey&, const allocator_type&)): Let destructor do clean up if an exception is thrown. * testsuite/23_containers/unordered_map/cons/81891.cc: New. From-SVN: r251185
Jonathan Wakely committed -
Reviewed-on: https://go-review.googlesource.com/56910 From-SVN: r251182
Ian Lance Taylor committed -
* c-parser.c (c_parser_postfix_expression): Remove unused code. Update commentary. From-SVN: r251181
Marek Polacek committed -
Add warn_if_not_aligned attribute as well as command line options: -Wif-not-aligned and -Wpacked-not-aligned. __attribute__((warn_if_not_aligned(N))) causes compiler to issue a warning if the field in a struct or union is not aligned to N: typedef unsigned long long __u64 __attribute__((aligned(4),warn_if_not_aligned(8))); struct foo { int i1; int i2; __u64 x; }; __u64 is aligned to 4 bytes. But inside struct foo, __u64 should be aligned at 8 bytes. It is used to define struct foo in such a way that struct foo has the same layout and x has the same alignment when __u64 is aligned at either 4 or 8 bytes. Since struct foo is normally aligned to 4 bytes, a warning will be issued: warning: alignment 4 of 'struct foo' is less than 8 Align struct foo to 8 bytes: struct foo { int i1; int i2; __u64 x; } __attribute__((aligned(8))); silences the warning. It also warns the field with misaligned offset: struct foo { int i1; int i2; int i3; __u64 x; } __attribute__((aligned(8))); warning: 'x' offset 12 in 'struct foo' isn't aligned to 8 This warning is controlled by -Wif-not-aligned and is enabled by default. When -Wpacked-not-aligned is used, the same warning is also issued for the field with explicitly specified alignment in a packed struct or union: struct __attribute__ ((aligned (8))) S8 { char a[8]; }; struct __attribute__ ((packed)) S { struct S8 s8; }; warning: alignment 1 of 'struct S' is less than 8 This warning is disabled by default and enabled by -Wall. gcc/ PR c/53037 * print-tree.c (print_node): Support DECL_WARN_IF_NOT_ALIGN and TYPE_WARN_IF_NOT_ALIGN. * stor-layout.c (do_type_align): Merge DECL_WARN_IF_NOT_ALIGN. (handle_warn_if_not_align): New. (place_union_field): Call handle_warn_if_not_align. (place_field): Call handle_warn_if_not_align. Copy TYPE_WARN_IF_NOT_ALIGN. (finish_builtin_struct): Copy TYPE_WARN_IF_NOT_ALIGN. (layout_type): Likewise. * tree-core.h (tree_type_common): Add warn_if_not_align. Set spare to 18. (tree_decl_common): Add warn_if_not_align. * tree.c (build_range_type_1): Copy TYPE_WARN_IF_NOT_ALIGN. * tree.h (TYPE_WARN_IF_NOT_ALIGN): New. (SET_TYPE_WARN_IF_NOT_ALIGN): Likewise. (DECL_WARN_IF_NOT_ALIGN): Likewise. (SET_DECL_WARN_IF_NOT_ALIGN): Likewise. * doc/extend.texi: Document warn_if_not_aligned attribute. * doc/invoke.texi: Document -Wif-not-aligned and -Wpacked-not-aligned. gcc/c-family/ PR c/53037 * c-attribs.c (handle_warn_if_not_aligned_attribute): New. (c_common_attribute_table): Add warn_if_not_aligned. (handle_aligned_attribute): Renamed to ... (common_handle_aligned_attribute): Remove argument, name, and add argument, warn_if_not_aligned. Handle warn_if_not_aligned. (handle_aligned_attribute): New. * c.opt: Add -Wif-not-aligned and -Wpacked-not-aligned. gcc/c/ PR c/53037 * c-decl.c (merge_decls): Also merge DECL_WARN_IF_NOT_ALIGN. (check_bitfield_type_and_width): Don't allow bit-field with warn_if_not_aligned type. gcc/cp/ PR c/53037 * decl.c (duplicate_decls): Also merge DECL_WARN_IF_NOT_ALIGN. * decl2.c (grokbitfield): Don't allow bit-field with warn_if_not_aligned type. gcc/testsuite/ PR c/53037 * c-c++-common/pr53037-5.c: New test. * g++.dg/pr53037-1.C: Likewise. * g++.dg/pr53037-2.C: Likewise. * g++.dg/pr53037-3.C: Likewise. * g++.dg/pr53037-4.C: Likewise. * gcc.dg/pr53037-1.c: Likewise. * gcc.dg/pr53037-2.c: Likewise. * gcc.dg/pr53037-3.c: Likewise. * gcc.dg/pr53037-4.c: Likewise. From-SVN: r251180
H.J. Lu committed -
Using -funwind-tables is necessary to permit Go code to correctly throw a panic through C code. This hasn't been necessary in the past as -funwind-tables is the default on x86. However, it is not the default for PPC AIX. Reviewed-on: https://go-review.googlesource.com/56650 From-SVN: r251179
Ian Lance Taylor committed -
From-SVN: r251178
GCC Administrator committed
-
- 17 Aug, 2017 8 commits
-
-
2017-08-17 Martin Liska <mliska@suse.cz> PR bootstrap/81864 * tree-loop-distribution.c (ddrs_table): Change type to pointer type. (get_data_dependence): Use it as pointer type. (distribute_loop): Likewise. From-SVN: r251165
Martin Liska committed -
2017-08-17 Bill Schmidt <wschmidt@linux.vnet.ibm.com> * config/rs6000/altivec.md (UNSPEC_VMRGOW_DIRECT): New constant. (p8_vmrgew_v4sf_direct): Generalize to p8_vmrgew_<mode>_direct. (p8_vmrgow_<mode>_direct): New define_insn. * config/rs6000/rs6000.c (altivec_expand_vec_perm_const): Properly handle endianness for vmrgew and vmrgow permute patterns. From-SVN: r251161
Bill Schmidt committed -
* cp-tree.def (TEMPLATE_TEMPLATE_PARM): Remove stale comment. * cp-tree.h (ENUM_TEMPLATE_INFO): Delete. (TYPE_TEMPLATE_INFO): Simplify. (SET_TYPE_TEMPLATE_INFO): Simplify. From-SVN: r251159
Nathan Sidwell committed -
gcc/ * config/rs6000/altivec.md (VParity): Remove TARGET_VSX_TIMODE. * config/rs6000/rs6000-cpus.def: Remove comment. (ISA_2_7_MASKS_SERVER): Delete OPTION_MASK_VSX_TIMODE; (POWERPC_MASKS): Likewise. * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): Remove unneeded use of TARGET_VSX_TIMODE. (rs6000_setup_reg_addr_masks): Change TARGET_VSX_TIMODE to TARGET_VSX. (rs6000_init_hard_regno_mode_ok): Remove unneeded uses of TARGET_VSX_TIMODE. Change use of TARGET_VSX_TIMODE to TARGET_VSX. (rs6000_option_override_internal): Remove dead code. (rs6000_legitimize_address): Change TARGET_VSX_TIMODE to TARGET_VSX. (rs6000_legitimize_reload_address): Likewise. (rs6000_legitimate_address_p): Likewise. (rs6000_opt_masks): Delete "vsx-timode". (rs6000_disable_incompatible_switches): Remove mention of -mvsx-timode from function comment. * config/rs6000/rs6000.h (MASK_VSX_TIMODE): Delete. * config/rs6000/rs6000.md (FMOVE128_GPR): Remove TARGET_VSX_TIMODE. (V16QI, V8HI, V4SI, V4SF, V2DI, V2DF, V1TI): Remove useless empty condition. * config/rs6000/rs6000.opt (mvsx-timode): Replace with stub. * config/rs6000/vector.md (VEC_IP): Remove TARGET_VSX_TIMODE. * config/rs6000/vsx.md (VSX_LE_128): Likewise. (VSX_TI): Likewise. (VSX_M): Likewise. (define_peephole2): Likewise. gcc/testsuite/ * gcc.target/powerpc/p8vector-int128-1.c: Remove use of -mvsx-timode. * gcc.target/powerpc/p9-vparity.c: Likewise. * gcc.target/powerpc/pr68805.c: Likewise. * gcc.target/powerpc/pr80098-4.c: Remove useless test case. From-SVN: r251158
Peter Bergner committed -
gcc/ChangeLog: PR c/81859 * pretty-print.c (pp_format): Use strnlen in %.*s to avoid reading past the end of an array. (test_pp_format): Add test cases. From-SVN: r251157
Martin Sebor committed -
This patch adds missing ECF_NOTHROW flags to the vectorisable integer internal functions. 2017-08-17 Richard Sandiford <richard.sandiford@linaro.org> gcc/ * internal-fn.def (CLRSB, CLZ, CTZ, FFS, PARITY, POPCOUNT): Add missing ECF_NOTHROW flags. From-SVN: r251155
Richard Sandiford committed -
* lex.c (maybe_add_lang_type_raw): BOUND_TEMPLATE_TEMPLATE_PARMs don't need lang_type. (cxx_make_type): Use maybe_add_lang_type_raw return value. * mangle.c (CLASSTYPE_TEMPLATE_ID_P): Don't rely on TYPE_LANG_SPECIFIC. From-SVN: r251154
Nathan Sidwell committed -
gcc/ PR target/72804 * config/rs6000/vsx.md (*vsx_le_permute_<mode>): Add support for operands residing in integer registers. (*vsx_le_perm_load_<mode>): Likewise. (*vsx_le_perm_store_<mode>): Likewise. (define_peephole2): Add peepholes to optimize the above. gcc/testsuite/ PR target/72804 * gcc.target/powerpc/pr72804.c: New test. From-SVN: r251153
Peter Bergner committed
-