- 21 Aug, 2017 4 commits
-
-
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 16 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 -
PR middle-end/81814 * fold-const.c (operand_equal_for_comparison_p): Remove code that used to mimic what shorten_compare did. Change the return type to bool. (fold_cond_expr_with_comparison): Update call to operand_equal_for_comparison_p. (fold_ternary_loc): Likewise. * gcc.dg/torture/pr81814.c: New test. From-SVN: r251152
Marek Polacek committed -
2017-08-17 Richard Biener <rguenther@suse.de> PR ada/81878 * Makefile.in (CXX_LFLAGS): Remove. (TOOLS_FLAGS_TO_PASS_NATIVE): Pass $(CXX) as CXX. (TOOLS_FLAGS_TO_PASS_RE): Likewise. From-SVN: r251150
Richard Biener committed -
This patch changes patterns in aarch64-simd.md to replace movi v0.4s, 0 str q0, [x0, 16] With: stp xzr, xzr, [x0, 16] When we are storing zeros to vectors like this: void f(uint32x4_t *p) { uint32x4_t x = { 0, 0, 0, 0}; p[1] = x; } gcc/ 2017-08-17 Jackson Woodruff <jackson.woodruff@arm.com> * aarch64-simd.md (mov<mode>): No longer force zero immediate into register. (*aarch64_simd_mov<mode>): Add new case for stp using zero immediate. gcc/testsuite/ 2017-08-17 Jackson Woodruff <jackson.woodruff@arm.com> * gcc.target/aarch64/simd/vect_str_zero.c: New testcase. From-SVN: r251149
Jackson Woodruff committed -
* cp-tree.h (struct lang_type): Remove template_info field. (CLASSTYPE_TEMPLATE_INFO): Use TYPE_LANG_SLOT_1. (TEMPLATE_TEMPLATE_PARM_TEMPLATE_INFO): Likewise. From-SVN: r251148
Nathan Sidwell committed -
From-SVN: r251147
H.J. Lu committed -
tree-ssa-structalias.c (solve_graph): When propagating to successors update the graphs succ edges and avoid duplicate... 2017-08-17 Richard Biener <rguenther@suse.de> * tree-ssa-structalias.c (solve_graph): When propagating to successors update the graphs succ edges and avoid duplicate work. From-SVN: r251146
Richard Biener committed -
2017-08-17 Maxim Ostapenko <m.ostapenko@samsung.com> PR target/81861 * config/i386/i386.c (ix86_option_override_internal): Save target specific options after ix86_stack_protector_guard_reg was changed. From-SVN: r251145
Maxim Ostapenko committed -
2017-08-17 Tom de Vries <tom@codesourcery.com> * gcc.dg/ipa/pr81696.c: Require effective target nonlocal_goto. From-SVN: r251144
Tom de Vries committed
-