- 01 Dec, 2018 7 commits
-
-
PR c++/79629 * g++.dg/other/error35.C: New test. From-SVN: r266712
Marek Polacek committed -
PR c++/83856 * g++.dg/cpp1y/lambda-generic-83856.C: New test. From-SVN: r266711
Marek Polacek committed -
* parser.c (CP_PARSER_FLAGS_TYPENAME_OPTIONAL): New enumerator. (cp_parser_type_name): Remove declaration. (cp_parser_postfix_expression): Pass CP_PARSER_FLAGS_TYPENAME_OPTIONAL to cp_parser_type_id. (cp_parser_new_type_id): Pass CP_PARSER_FLAGS_TYPENAME_OPTIONAL to cp_parser_type_specifier_seq. (cp_parser_lambda_declarator_opt): Pass CP_PARSER_FLAGS_TYPENAME_OPTIONAL to cp_parser_parameter_declaration_clause. (cp_parser_condition): Pass CP_PARSER_FLAGS_NONE to cp_parser_declarator. (cp_parser_simple_declaration): Pass CP_PARSER_FLAGS_NONE to cp_parser_init_declarator. (cp_parser_conversion_type_id): Pass CP_PARSER_FLAGS_NONE to cp_parser_type_specifier_seq. (cp_parser_default_type_template_argument): Pass CP_PARSER_FLAGS_TYPENAME_OPTIONAL to cp_parser_type_id. (cp_parser_template_parameter): Pass CP_PARSER_FLAGS_TYPENAME_OPTIONAL to cp_parser_parameter_declaration. (cp_parser_explicit_instantiation): Pass CP_PARSER_FLAGS_NONE to cp_parser_declarator. (cp_parser_simple_type_specifier): Adjust call to cp_parser_type_name to relay if we should treat the typename keyword as optional. Maybe call cp_parser_make_typename_type is parsing a template-id and it's not a TYPE_DECL. (cp_parser_type_name): Remove unused function. (cp_parser_enum_specifier): Pass to CP_PARSER_FLAGS_NONE cp_parser_type_specifier_seq. (cp_parser_alias_declaration): Pass CP_PARSER_FLAGS_TYPENAME_OPTIONAL to cp_parser_type_id. (cp_parser_init_declarator): New parameter. Pass it down to cp_parser_declarator. (cp_parser_declarator): New parameter. Pass CP_PARSER_FLAGS_NONE to cp_parser_declarator. Pass the new parameter to cp_parser_direct_declarator. (cp_parser_direct_declarator): New parameter. Pass it to cp_parser_parameter_declaration_clause and cp_parser_declarator. (cp_parser_declarator_id): (cp_parser_type_id_1): New parameter. Pass it to cp_parser_type_specifier_seq. Adjust call to cp_parser_declarator. (cp_parser_type_id): New parameter. Pass it to cp_parser_type_id_1. (cp_parser_template_type_arg): Pass CP_PARSER_FLAGS_NONE to cp_parser_type_id_1. (cp_parser_trailing_type_id): Pass CP_PARSER_FLAGS_TYPENAME_OPTIONAL to cp_parser_type_id_1. (cp_parser_type_specifier_seq): New parameter. (function_being_declared_is_template_p): (cp_parser_parameter_declaration_clause): New parameter. Pass it to cp_parser_parameter_declaration_list. (cp_parser_parameter_declaration_list): New parameter. Pass it to cp_parser_parameter_declaration. (cp_parser_parameter_declaration): New parameter. Pass it to cp_parser_decl_specifier_seq. Pass CP_PARSER_FLAGS_NONE to cp_parser_declarator. (cp_parser_member_declaration): Adjust call to cp_parser_decl_specifier_seq to also include CP_PARSER_FLAGS_TYPENAME_OPTIONAL. Pass CP_PARSER_FLAGS_TYPENAME_OPTIONAL to cp_parser_declarator. (cp_parser_exception_declaration): Pass CP_PARSER_FLAGS_NONE to cp_parser_type_specifier_seq and cp_parser_declarator. (cp_parser_requirement_parameter_list): Pass CP_PARSER_FLAGS_NONE to cp_parser_parameter_declaration_clause. (cp_parser_constructor_declarator_p): Resolve the TYPENAME_TYPE. (cp_parser_single_declaration): Pass CP_PARSER_FLAGS_TYPENAME_OPTIONAL to cp_parser_decl_specifier_seq and cp_parser_init_declarator. (cp_parser_cache_defarg): Pass CP_PARSER_FLAGS_NONE to cp_parser_declarator and cp_parser_parameter_declaration_list. (cp_parser_objc_method_tail_params_opt): Pass CP_PARSER_FLAGS_NONE to cp_parser_parameter_declaration. (cp_parser_objc_class_ivars): Pass CP_PARSER_FLAGS_NONE to cp_parser_declarator. (cp_parser_objc_try_catch_finally_statement): Pass CP_PARSER_FLAGS_NONE to cp_parser_parameter_declaration (cp_parser_objc_struct_declaration): Pass CP_PARSER_FLAGS_NONE to cp_parser_declarator. (cp_parser_omp_for_loop_init): Pass CP_PARSER_FLAGS_NONE to cp_parser_declarator and cp_parser_type_specifier_seq. * g++.dg/cpp0x/alias-decl-43.C: Adjust dg-error. * g++.dg/cpp0x/decltype67.C: Only expect error in c++17_down. * g++.dg/cpp1z/typename1.C: New test. * g++.dg/cpp2a/typename1.C: New test. * g++.dg/cpp2a/typename10.C: New test. * g++.dg/cpp2a/typename11.C: New test. * g++.dg/cpp2a/typename2.C: New test. * g++.dg/cpp2a/typename3.C: New test. * g++.dg/cpp2a/typename4.C: New test. * g++.dg/cpp2a/typename5.C: New test. * g++.dg/cpp2a/typename6.C: New test. * g++.dg/cpp2a/typename7.C: New test. * g++.dg/cpp2a/typename8.C: New test. * g++.dg/cpp2a/typename9.C: New test. * g++.dg/diagnostic/missing-typename.C: Only run the test in c++17_down. * g++.dg/other/crash-9.C: Add template disambiguator. * g++.dg/other/nontype-1.C: Only expect error in c++17_down. * g++.dg/parse/crash13.C: Likewise. * g++.dg/parse/error36.C: Likewise. * g++.dg/parse/no-typename1.C: Likewise. * g++.dg/parse/typedef2.C: Likewise. * g++.dg/parse/typename11.C: Likewise. * g++.dg/template/crash48.C: Adjust dg-error. * g++.dg/template/dependent-name5.C: Only expect error in c++17_down. Add dg-error. * g++.dg/template/error29.C: Only expect error in c++17_down. * g++.dg/template/nested5.C: Add template disambiguator. * g++.dg/template/pr84789.C: Only expect error in c++17_down. * g++.dg/template/static30.C: Add dg-error. * g++.dg/template/typedef6.C: Adjust dg-error. * g++.dg/template/typename3.C: Only expect error in c++17_down. From-SVN: r266710
Marek Polacek committed -
From-SVN: r266709
Jeff Law committed -
PR sanitizer/88289 * asan.c (asan_redzone_buffer::flush_redzone_payload): Fix up an off-by-one for BYTES_BIG_ENDIAN. From-SVN: r266708
Jakub Jelinek committed -
PR target/54589 * combine.c (find_split_point): For invalid memory address nonobj + obj + const, if reg + obj + const is valid addressing mode, split at nonobj. Use if rather than else if for the fallback. Comment fixes. * gcc.target/i386/pr54589.c: New test. From-SVN: r266707
Jakub Jelinek committed -
From-SVN: r266705
GCC Administrator committed
-
- 30 Nov, 2018 33 commits
-
-
* coverage.c (get_coverage_counts): Use from_function_decl for precise function location. * profile-count.c (profile_count::dump): Add handling for precise profile quality. * profile.c (compute_branch_probabilities): Rely on exec_counts instead of profile_info to set profile_status of function. (branch_prob): Do not set profile_status of function based on profile_info. Done above based on exec_counts. From-SVN: r266702
Indu Bhagat committed -
PR tree-optimization/88274 * tree-ssa-reassoc.c (optimize_range_tests_xor, optimize_range_tests_diff): If type has smaller precision than corresponding mode or if it has non-standard min/max, compute everything in a standard type for the precision. From-SVN: r266701
Jakub Jelinek committed -
PR testsuite/85368 * params.def (PARAM_LOGICAL_OP_NON_SHORT_CIRCUIT): New param. * tree-ssa-ifcombine.c (ifcombine_ifandif): If --param logical-op-non-short-circuit is present, override LOGICAL_OP_NON_SHORT_CIRCUIT value from the param. * fold-const.c (fold_range_test, fold_truth_andor): Likewise. * lib/target-supports.exp (logical_op_short_circuit): Remove. * gcc.dg/builtin-bswap-7.c: Remove logical_op_short_circuit effective target, drop -mbranch-cost= options from the test and instead pass --param logical-op-non-short-circuit=0 or --param logical-op-non-short-circuit=1 depending on what the tests meant to test. * gcc.dg/pr21643.c: Likewise. * gcc.dg/tree-ssa/ssa-ifcombine-ccmp-2.c: Likewise. * gcc.dg/tree-ssa/phi-opt-11.c: Likewise. * gcc.dg/tree-ssa/ssa-ifcombine-ccmp-1.c: Likewise. * gcc.dg/tree-ssa/ssa-dom-thread-4.c: Likewise. * gcc.dg/tree-ssa/ssa-ifcombine-ccmp-3.c: Likewise. * gcc.dg/tree-ssa/ssa-thread-14.c: Likewise. * gcc.dg/tree-ssa/vrp47.c: Likewise. * gcc.dg/tree-ssa/ssa-dom-thread-11.c: Likewise. * gcc.dg/tree-ssa/ssa-dom-thread-16.c: Likewise. * gcc.dg/tree-ssa/ssa-dom-thread-14.c: Likewise. * gcc.dg/tree-ssa/ssa-ifcombine-ccmp-5.c: Likewise. * gcc.dg/tree-ssa/vrp87.c: Likewise. * gcc.dg/tree-ssa/ssa-ifcombine-ccmp-6.c: Likewise. * gcc.dg/tree-ssa/phi-opt-2.c: Likewise. * gcc.dg/tree-ssa/ssa-ifcombine-13.c: Likewise. * gcc.dg/tree-ssa/ssa-thread-11.c: Likewise. * gcc.dg/tree-ssa/ssa-ifcombine-ccmp-4.c: Likewise. * gcc.dg/tree-ssa/forwprop-28.c: Likewise. * gcc.dg/binop-xor1.c: Likewise. * gcc.dg/pr46309.c: Likewise. * gcc.dg/tree-ssa/ssa-dom-thread-18.c: New test. * gcc.dg/tree-ssa/reassoc-32.c: Add --param logical-op-non-short-circuit=1 to dg-options. * gcc.dg/tree-ssa/reassoc-33.c: Likewise. * gcc.dg/tree-ssa/reassoc-34.c: Likewise. * gcc.dg/tree-ssa/reassoc-35.c: Likewise. * gcc.dg/tree-ssa/reassoc-36.c: Likewise. From-SVN: r266700
Jakub Jelinek committed -
* optabs.c (expand_binop): Use "machine_mode" rather than "enum machine mode" in most recent change. From-SVN: r266698
Jeff Law committed -
PR middle-end/64242 * builtins.c (expand_builtin_longjmp): Use a temporary when restoring the frame pointer. (expand_builtin_nonlocal_goto): Likewise. * gcc.c-torture/execute/pr64242.c: New test. From-SVN: r266697
Wilco Dijkstra committed -
Consider: class t1 { public: double length () const { return m_length; } private: double m_length; }; missing-parens-fixit.C: In function 'bool test_1(const t1&)': missing-parens-fixit.C:14:15: error: invalid use of member function 'double t1::length() const' (did you forget the '()' ?) 14 | return inst.length > 0.0; | ~~~~~^~~~~~ This patch adds a fix-it hint for the case where the member function takes no parameters, suggesting the addition of the parentheses: 14 | return inst.length > 0.0; | ~~~~~^~~~~~ | () so that an IDE can potentially apply the fix. gcc/cp/ChangeLog: * typeck2.c: Include "gcc-rich-location.h". (cxx_incomplete_type_diagnostic): When complaining about possibly missing parens, add a fix-it hint if the member function takes no additional params. gcc/ChangeLog: * diagnostic-core.h (emit_diagnostic): New decl. * diagnostic.c (emit_diagnostic): New overload, taking a rich_location *. gcc/testsuite/ChangeLog: * g++.dg/parse/missing-parens-fixit.C: New test. From-SVN: r266696
David Malcolm committed -
gcc/ChangeLog: * pretty-print.c (class selftest::test_pretty_printer): New subclass of pretty_printer. (selftest::test_prefixes_and_wrapping): New test. (selftest::pretty_print_c_tests): Call it. From-SVN: r266695
David Malcolm committed -
gcc/lto: * lto-partition.c (privatize_symbol_name_1): Keep track of non-unique symbol counters in the lto_clone_numbers hash map. (lto_promote_cross_file_statics): Allocate and free the lto_clone_numbers hash map. (lto_promote_statics_nonwpa): Free the lto_clone_numbers hash map. From-SVN: r266693
Michael Ploujnikov committed -
Based on Martin Jambour's suggestion: https://gcc.gnu.org/ml/gcc-patches/2018-09/msg00111.html gcc: * cgraph.h (clone_function_name): Add a variant that takes a tree decl. * cgraph.h (cgraph_node::create_virtual_clone): Add a new argument: num_suffix. * cgraphclones.c (cgraph_node::create_virtual_clone): Pass num_suffix to clone_function_name. (clone_function_name): Add a variant that takes a tree decl. * ipa-cp.c (create_specialized_node): Keep track of clone counters in clone_num_suffixes hash map. (ipcp_driver): Free the counter hash map. * ipa-hsa.c (process_hsa_functions): Creates at most one hsa clone per function. From-SVN: r266692
Michael Ploujnikov committed -
This is achieved by having clone_function_name assign unique clone numbers for each function independently. gcc: * cgraphclones.c: Replaced clone_fn_id_num with clone_fn_ids; hash map. (clone_function_name_numbered): Use clone_fn_ids. gcc/testsuite: * gcc.dg/independent-cloneids-1.c: New test. From-SVN: r266691
Michael Ploujnikov committed -
PR debug/85550 * g++.dg/debug/dwarf2/pr85550.C: New test. From-SVN: r266689
Jakub Jelinek committed -
Make libgomp respect the on device offset of subarrays which may arise in present data clauses. libgomp/ PR libgomp/88288 * oacc-parallel.c (GOACC_parallel_keyed): Add offset to devaddrs. * testsuite/libgomp.oacc-c-c++-common/pr88288.c: New test. Reviewed-by: Thomas Schwinge <thomas@codesourcery.com> From-SVN: r266688
Cesar Philippidis committed -
gcc/cp/ * parser.c (cp_parser_oacc_enter_exit_data): Use existing local variable. Reviewed-by: Thomas Schwinge <thomas@codesourcery.com> From-SVN: r266687
James Norris committed -
gcc/testsuite/ PR c/87924 * c-c++-common/goacc/asyncwait-5.c: Update. * gfortran.dg/goacc/asyncwait-5.f: Likewise. From-SVN: r266686
Thomas Schwinge committed -
"wait" can be deduced from "wait_list". gcc/fortran/ * gfortran.h (struct gfc_omp_clauses): Remove "wait". Adjust all users. From-SVN: r266685
Thomas Schwinge committed -
Support for this is not explicitly called for in OpenACC 2.6, but given that GCC internally decomposes "wait (1, 2)" into "wait (1) wait (2)" (similar for other clauses, too), it's reasonable to also support that syntax in the front ends -- which happens to already be the case for C, C++, and easy enough to do for Fortran. gcc/fortran/ * openmp.c (gfc_match_omp_clauses): Support multiple OpenACC wait clauses. gcc/testsuite/ * c-c++-common/goacc/asyncwait-5.c: New file. * gfortran.dg/goacc/asyncwait-5.f: Likewise. From-SVN: r266684
Thomas Schwinge committed -
This is a copy of libgomp.oacc-fortran/lib-16.f90, but does 'include "openacc_lib.h"' instead of 'use openacc'. libgomp/ * testsuite/libgomp.oacc-fortran/lib-16-2.f90: New file. From-SVN: r266683
Thomas Schwinge committed -
re PR rtl-optimization/88179 ([MIPS] pr84941.c ICE in lra_eliminate_reg_if_possible at lra-eliminations.c:1393 start with r266385) 2018-11-30 Vladimir Makarov <vmakarov@redhat.com> PR rtl-optimization/88179 * lra-constraints.c (address_eliminator::address_eliminator): Don't eleminate regs in illegitimate address. From-SVN: r266682
Vladimir Makarov committed -
gcc/testsuite/ PR target/87496 * gcc.target/powerpc/pr86324-1.c: Add dg-skip-if selector. Add -mcpu=power7 option. From-SVN: r266680
Peter Bergner committed -
From backtrace.h for backtrace_create_state: Calling this function allocates resources that can not be freed. There is no backtrace_free_state function. The state is used to cache information that is expensive to recompute. Programs are expected to call this function at most once and to save the return value for all later calls to backtrace functions. So instead of calling backtrace_create_state every time we wish to show a backtrace, do it once and store the result in a static variable. libbacktrace allows multiple threads to access the state, so no need to use TLS. Regtested on x86_64-pc-linux-gnu. libgfortran/ChangeLog: 2018-11-30 Janne Blomqvist <jb@gcc.gnu.org> PR libfortran/88137 * runtime/backtrace.c (show_backtrace): Make lbstate a static variable, initialize once. From-SVN: r266677
Janne Blomqvist committed -
2018-11-30 Edward Smith-Rowland <3dw4rd@verizon.net> Implement P0457R2 String Prefix and Suffix Checking. * include/bits/basic_string.h: Add starts_with, ends_with members. * include/std/string_view: Ditto. * testsuite/21_strings/basic_string/operations/starts_with/ char/1.cc: New test. * testsuite/21_strings/basic_string/operations/starts_with/ wchar_t/1.cc: New test. * testsuite/21_strings/basic_string/operations/ends_with/ char/1.cc: New test. * testsuite/21_strings/basic_string/operations/ends_with/ wchar_t/1.cc: New test. * testsuite/21_strings/basic_string_view/operations/starts_with/ char/1.cc: New test. * testsuite/21_strings/basic_string_view/operations/starts_with/ wchar_t/1.cc: New test. * testsuite/21_strings/basic_string_view/operations/ends_with/ char/1.cc: New test. * testsuite/21_strings/basic_string_view/operations/ends_with/ wchar_t/1.cc: New test. From-SVN: r266674
Edward Smith-Rowland committed -
From-SVN: r266673
Edward Smith-Rowland committed -
2018-11-30 Edward Smith-Rowland <3dw4rd@verizon.net> Pre-emptively support P0646R1 for std container erasure. * include/bits/erase_if.h: Accumulate and return number of erased nodes. * include/std/forward_list (): Return number of erased items. * include/std/list (): Ditto. * include/std/map (): Ditto. * include/std/set (): Ditto. * include/std/string (): Ditto. * include/std/unordered_map (): Ditto. * include/std/unordered_set (): Ditto. * include/std/vector (): Ditto. * testsuite/21_strings/basic_string/erasure.cc: Test number of erasures. * testsuite/23_containers/deque/erasure.cc: Ditto. * testsuite/23_containers/forward_list/erasure.cc: Ditto. * testsuite/23_containers/list/erasure.cc: Ditto. * testsuite/23_containers/map/erasure.cc: Ditto. * testsuite/23_containers/set/erasure.cc: Ditto. * testsuite/23_containers/unordered_map/erasure.cc: Ditto. * testsuite/23_containers/unordered_set/erasure.cc: Ditto. * testsuite/23_containers/vector/erasure.cc: Ditto. From-SVN: r266672
Edward Smith-Rowland committed -
PR preprocessor/88257 reports an ICE on gcc.dg/format/pr78304.c when compiled using g++: void test (const char *msg) { printf ("size: %" PRIu32 "\n", msg); } due to mismatching files (and line maps) between linemap_resolve_location and expand_location_to_spelling_point when PRIu32 is defined in a system header. The root cause is that expand_location_to_spelling_point stops unwinding locations when it reaches a system header, whereas linemap_resolve_location can resolve into a system header, which can lead to locations within get_substring_ranges_for_loc getting out of sync, and using the wrong line map. This patch fixes the issue by checking that the files are the same. gcc/ChangeLog: PR preprocessor/88257 * input.c (get_substring_ranges_for_loc): Fix indentation. Bulletproof against getting a different files back from linemap_resolve_location and expand_location_to_spelling_point. gcc/testsuite/ChangeLog: PR preprocessor/88257 * c-c++-common/Wformat-pr88257.c: New test. * c-c++-common/Wformat-pr88257.h: New test header. * c-c++-common/empty.h: New test header. From-SVN: r266671
David Malcolm committed -
When building libbacktrace, we typically use elf.c, and don't build pecoff.c, xcoff.c or unknown.c. Add testcases that use unused format to ensure that we also build and test those on a typical development setup. Bootstrapped and reg-tested on x86_64. 2018-11-30 Tom de Vries <tdevries@suse.de> * Makefile.am (check_PROGRAMS): Add test_elf, test_xcoff_32, test_xcoff_64, test_pecoff and test_unknown. * Makefile.in: Regenerate. * test_format.c: New file. From-SVN: r266668
Tom de Vries committed -
When building libbacktrace, we typically use mmapio.c and mmap.c, and don't build read.c and alloc.c. Add testcases that use read.c and alloc.c to ensure that we also build and test those on a typical development setup. Bootstrapped and reg-tested on x86_64. 2018-11-30 Tom de Vries <tdevries@suse.de> * Makefile.am : Add _with_alloc version for each test in check_PROGRAMS. * Makefile.in: Regenerate. From-SVN: r266667
Tom de Vries committed -
2018-11-30 Alexander Monakov <amonakov@ispras.ru> PR gcov-profile/88279 * tree-profile.c (init_ic_make_global_vars): Call decl_default_tls_model for variable and not it's type. From-SVN: r266666
Alexander Monakov committed -
gcc/ChangeLog: 2018-11-30 Sam Tebbs<sam.tebbs@arm.com> * config/arm/arm.h (TARGET_DOTPROD): Add TARGET_VFP5 constraint. gcc/testsuite/ChangeLog: 2018-11-30 Sam Tebbs<sam.tebbs@arm.com> * gcc.target/arm/neon-dotprod-restriction.c: New file. * lib/target-supports.exp (check_effective_target_arm_v8_2a_dotprod_neon_ok_nocache): Include stdint.h. From-SVN: r266665
Sam Tebbs committed -
2018-11-30 Martin Liska <mliska@suse.cz> PR sanitizer/81715 * asan.c (asan_shadow_cst): Remove, partially transform into flush_redzone_payload. (RZ_BUFFER_SIZE): New. (struct asan_redzone_buffer): New. (asan_redzone_buffer::emit_redzone_byte): Likewise. (asan_redzone_buffer::flush_redzone_payload): Likewise. (asan_redzone_buffer::flush_if_full): Likewise. (asan_emit_stack_protection): Use asan_redzone_buffer class that is responsible for proper aligned stores and flushing of shadow memory payload. * asan.h (ASAN_MIN_RED_ZONE_SIZE): New. (asan_var_and_redzone_size): Likewise. * cfgexpand.c (expand_stack_vars): Use smaller alignment (ASAN_MIN_RED_ZONE_SIZE) in order to make shadow memory for automatic variables more compact. 2018-11-30 Martin Liska <mliska@suse.cz> PR sanitizer/81715 * c-c++-common/asan/asan-stack-small.c: New test. From-SVN: r266664
Martin Liska committed -
This patch aims to prevent long sequences loading soft-float constants. For 32-bit, it makes sense to load values inline to a gpr with lis, addi, but not so much for 64-bit where a 5 insn sequence might be needed for each gpr. For TFmode in particular, a 10 insn sequence is reduced to 2 loads from memory plus 1 or 2 address setup insns. * config/rs6000/predicates.md (easy_fp_constant): Avoid long dependent insn sequences. * config/rs6000/rs6000.c (num_insns_constant): Support long double constants. * config/rs6000/rs6000.md (mov<mode>_softfloat <FMOVE128>): Adjust length attribute. From-SVN: r266663
Alan Modra committed -
This patch came about from investigating an ICE that appeared when I was retesting an old half-baked patch of mine to rs6000_rtx_costs. If a const_double is fed to rs6000_is_valid_and_mask and from there to rs6000_is_valid_mask where INTVAL is used, gcc will ICE. The num_insns_constant ICE was introduced with git commit f337168d97. However, the code was buggy before that. There was no point in testing for a mask since the mask predicates only handle const_int. In fact, I don't think the function ever handled floating point constants that might match a load of minus one and mask. It does now. I've added a few comments regarding splitters so the next person looking at this code can see how this works. The patch also extracts code out of num_insns_constant that needed to handle multiple gprs for DFmode constants in 32-bit mode, to a function that handles multiple gprs a little more generally. I don't think there is any need for anything but the 32-bit DFmode case currently, but this allows for possible future uses. The CONST_WIDE_INT case is also not used currently, and needed fixing. Adding CONST_WIDE_INT_NUNITS - 1 only makes sense if the elements of the array were being shifted into a register of size larger than the element size (which is 64-bits). * config/rs6000/rs6000.c (num_insns_constant_gpr): Renamed from num_insns_constant_wide. Make static. Revise comment. (num_insns_constant_multi): New function. (num_insns_constant): Formatting. Correct CONST_WIDE_INT calculation. Simplify and extract code common to both CONST_INT and CONST_DOUBLE. Add gcc_unreachable for unhandled const_double modes. * config/rs6000/rs6000-protos.h (num_insns_const_wide): Delete. From-SVN: r266662
Alan Modra committed -
2018-11-30 Richard Biener <rguenther@suse.de> c/ * gimple-parser.c (c_parser_gimple_postfix_expression): Parse _Literal (type) { ... } as empty aggregate or vector constructor. * gcc.dg/gimplefe-34.c: New testcase. * gcc.dg/gimplefe-35.c: Likewise. From-SVN: r266661
Richard Biener committed -
2018-11-30 Martin Liska <mliska@suse.cz> PR testsuite/88265 * gfortran.dg/simd-builtins-1.f90: Restrict to 128b vectors. * gfortran.dg/simd-builtins-6.f90: Likewise. From-SVN: r266660
Martin Liska committed
-