- 29 May, 2018 40 commits
-
-
PR target/85950 * config/i386/i386.md (l<rounding_insn><MODEF:mode><SWI48:mode>2): Enable for TARGET_SSE4_1 and generate rounds{s,d} and cvtts{s,d}2si{,q} sequence. (sse4_1_round<mode>2): Use nonimmediate_operand for operand 1 predicate. testsuite/ChangeLog: PR target/85950 * gcc.target/i386/pr85950.c: New test. From-SVN: r260903
Uros Bizjak committed -
PR middle-end/85888 - New test case c-c++-common/attr-nonstring-6.c from r260541 fails with excess errors 2018-05-29 Martin Sebor <msebor@redhat.com> Richard Biener <rguenther@suse.de> PR testsuite/85888 * calls.c (get_size_range): Call determine_value_range instead of get_value_range.. * tree-vrp.h (determine_value_range): Declared new function. * tree-vrp.c (determine_value_range_1, determine_value_range): New. Co-Authored-By: Richard Biener <rguenther@suse.de> From-SVN: r260902
Martin Sebor committed -
PR c++/85883 * init.c (build_new): Handle deducing a class with new with more than one argument. * g++.dg/cpp1z/class-deduction55.C: New test. * g++.dg/cpp1z/class-deduction56.C: New test. * g++.dg/cpp1z/class-deduction57.C: New test. From-SVN: r260901
Marek Polacek committed -
* include/std/variant (__erased_dtor): Qualify call to __get. From-SVN: r260900
Jonathan Wakely committed -
PR c++/85952 * init.c (build_aggr_init): For structured binding initialized from array call mark_rvalue_use on the initializer. * g++.dg/warn/Wunused-var-33.C: New test. From-SVN: r260899
Jakub Jelinek committed -
tree-vect-data-refs.c (vect_preserves_scalar_order_p): Make sure to use non-pattern stmts for get_earlier_stmt arguments. 2018-05-29 Richard Biener <rguenther@suse.de> * tree-vect-data-refs.c (vect_preserves_scalar_order_p): Make sure to use non-pattern stmts for get_earlier_stmt arguments. * tree-vectorizer.h (get_earlier_stmt): Assert we do not get called on pattern stmts. (get_later_stmt): Likewise. From-SVN: r260896
Richard Biener committed -
2018-05-29 Martin Liska <mliska@suse.cz> PR gcov-profile/85759 * doc/gcov.texi: Document GCOV_ERROR_FILE and GCOV_EXIT_AT_ERROR env variables. 2018-05-29 Martin Liska <mliska@suse.cz> PR gcov-profile/85759 * libgcov-driver-system.c (gcov_error): Introduce usage of GCOV_EXIT_AT_ERROR env. variable. * libgcov-driver.c (merge_one_data): Print error that we overwrite a gcov file with a different timestamp. From-SVN: r260895
Martin Liska committed -
* tree-cfg.c (verify_gimple_assign_unary): Add checking for VEC_UNPACK_*_EXPR. (verify_gimple_assign_binary): Check TYPE_VECTOR_SUBPARTS for VEC_PACK_*_EXPR. From-SVN: r260894
Jakub Jelinek committed -
re PR target/85918 (Conversions to/from [unsigned] long long are not vectorized for AVX512DQ target) PR target/85918 * tree.def (VEC_UNPACK_FIX_TRUNC_HI_EXPR, VEC_UNPACK_FIX_TRUNC_LO_EXPR, VEC_PACK_FLOAT_EXPR): New tree codes. * tree-pretty-print.c (op_code_prio): Handle VEC_UNPACK_FIX_TRUNC_HI_EXPR and VEC_UNPACK_FIX_TRUNC_LO_EXPR. (dump_generic_node): Handle VEC_UNPACK_FIX_TRUNC_HI_EXPR, VEC_UNPACK_FIX_TRUNC_LO_EXPR and VEC_PACK_FLOAT_EXPR. * tree-inline.c (estimate_operator_cost): Likewise. * gimple-pretty-print.c (dump_binary_rhs): Handle VEC_PACK_FLOAT_EXPR. * fold-const.c (const_binop): Likewise. (const_unop): Handle VEC_UNPACK_FIX_TRUNC_HI_EXPR and VEC_UNPACK_FIX_TRUNC_LO_EXPR. * tree-cfg.c (verify_gimple_assign_unary): Likewise. (verify_gimple_assign_binary): Handle VEC_PACK_FLOAT_EXPR. * cfgexpand.c (expand_debug_expr): Handle VEC_UNPACK_FIX_TRUNC_HI_EXPR, VEC_UNPACK_FIX_TRUNC_LO_EXPR and VEC_PACK_FLOAT_EXPR. * expr.c (expand_expr_real_2): Likewise. * optabs.def (vec_packs_float_optab, vec_packu_float_optab, vec_unpack_sfix_trunc_hi_optab, vec_unpack_sfix_trunc_lo_optab, vec_unpack_ufix_trunc_hi_optab, vec_unpack_ufix_trunc_lo_optab): New optabs. * optabs.c (expand_widen_pattern_expr): For VEC_UNPACK_FIX_TRUNC_HI_EXPR and VEC_UNPACK_FIX_TRUNC_LO_EXPR use sign from result type rather than operand's type. (expand_binop_directly): For vec_packu_float_optab and vec_packs_float_optab allow result type to be different from operand's type. * optabs-tree.c (optab_for_tree_code): Handle VEC_UNPACK_FIX_TRUNC_HI_EXPR, VEC_UNPACK_FIX_TRUNC_LO_EXPR and VEC_PACK_FLOAT_EXPR. Formatting fixes. * tree-vect-generic.c (expand_vector_operations_1): Handle VEC_UNPACK_FIX_TRUNC_HI_EXPR, VEC_UNPACK_FIX_TRUNC_LO_EXPR and VEC_PACK_FLOAT_EXPR. * tree-vect-stmts.c (supportable_widening_operation): Handle FIX_TRUNC_EXPR. (supportable_narrowing_operation): Handle FLOAT_EXPR. * config/i386/i386.md (fixprefix, floatprefix): New code attributes. * config/i386/sse.md (*float<floatunssuffix>v2div2sf2): Rename to ... (float<floatunssuffix>v2div2sf2): ... this. Formatting fix. (vpckfloat_concat_mode, vpckfloat_temp_mode, vpckfloat_op_mode): New mode attributes. (vec_pack<floatprefix>_float_<mode>): New expander. (vunpckfixt_mode, vunpckfixt_model, vunpckfixt_extract_mode): New mode attributes. (vec_unpack_<fixprefix>fix_trunc_lo_<mode>, vec_unpack_<fixprefix>fix_trunc_hi_<mode>): New expanders. * doc/md.texi (vec_packs_float_@var{m}, vec_packu_float_@var{m}, vec_unpack_sfix_trunc_hi_@var{m}, vec_unpack_sfix_trunc_lo_@var{m}, vec_unpack_ufix_trunc_hi_@var{m}, vec_unpack_ufix_trunc_lo_@var{m}): Document. * doc/generic.texi (VEC_UNPACK_FLOAT_HI_EXPR, VEC_UNPACK_FLOAT_LO_EXPR): Fix pasto in description. (VEC_UNPACK_FIX_TRUNC_HI_EXPR, VEC_UNPACK_FIX_TRUNC_LO_EXPR, VEC_PACK_FLOAT_EXPR): Document. * gcc.target/i386/avx512dq-pr85918.c: Add -mprefer-vector-width=512 and -fno-vect-cost-model options. Add aligned(64) attribute to the arrays. Add suffix 1 to all functions and use 4 iterations rather than N. Add functions with conversions to and from float. Add new set of functions with 8 iterations and another one with 16 iterations, expect 24 vectorized loops instead of just 4. * gcc.target/i386/avx512dq-pr85918-2.c: New test. From-SVN: r260893
Jakub Jelinek committed -
2018-05-29 Richard Biener <rguenther@suse.de> * tree-vectorizer.h (struct vec_info): Add stmt_vec_infos member. (stmt_vec_info_vec): Make pointer. (init_stmt_vec_info_vec): Remove. (free_stmt_vec_info_vec): Likewise. (set_stmt_vec_info_vec): New function. (free_stmt_vec_infos): Likewise. (vinfo_for_stmt): Adjust for stmt_vec_info_vec indirection. (set_vinfo_for_stmt): Likewise. (get_earlier_stmt): Likewise. (get_later_stmt): Likewise. * tree-vectorizer.c (stmt_vec_info_vec): Make pointer. (vec_info::vec_info): Allocate stmt_vec_infos and set the global. (vec_info::~vec_info): Free stmt_vec_infos. (vectorize_loops): Set the global stmt_vec_info_vec to NULL. Remove old init_stmt_vec_info_vec/free_stmt_vec_info_vec calls. (pass_slp_vectorize::execute): Likewise. * tree-vect-stmts.c (init_stmt_vec_info_vec): Remove. (free_stmt_vec_info_vec): Likewise. (set_stmt_vec_info_vec): New function. (free_stmt_vec_infos): Likewise. * tree-vect-loop.c (_loop_vec_info::~_loop_vec_info): Set the global stmt_vec_info_vec. * tree-parloops.c (gather_scalar_reductions): Use set_stmt_vec_info_vec/free_stmt_vec_infos and maintain a local vector. From-SVN: r260892
Richard Biener committed -
2018-05-29 Richard Biener <rguenther@suse.de> * dominance.c (iterate_fix_dominators): Push/pop TV_DOMINANCE. From-SVN: r260891
Richard Biener committed -
2018-05-29 Martin Liska <mliska@suse.cz> David Malcolm <dmalcolm@redhat.com> * vec.c (test_reverse): New. (vec_c_tests): Add new test. * vec.h (vl_ptr>::reverse): New function. Co-Authored-By: David Malcolm <dmalcolm@redhat.com> From-SVN: r260890
Martin Liska committed -
This changes the wording in the documentation of the -gnatn switch to make it use "units" rather than "modules" and also adjusts the usage message. No functional changes. 2018-05-29 Eric Botcazou <ebotcazou@adacore.com> gcc/ada/ * doc/gnat_ugn/building_executable_programs_with_gnat.rst (Alphabetical List of All Switches): Replace "modules" with "units". (Subprogram Inlining Control): Likewise. * gnat_ugn.texi: Regenerate. * usage.adb (Usage): Fix description of -gnatn switch. From-SVN: r260889
Eric Botcazou committed -
2018-05-29 Arnaud Charlet <charlet@adacore.com> gcc/ada/ * gcc-interface/Makefile.in: Fix typos. From-SVN: r260888
Arnaud Charlet committed -
2018-05-29 Ed Schonberg <schonberg@adacore.com> gcc/ada/ * exp_ch7.adb (Build_Finalizer_Call): Attach to tree the reference to the finalizer procedure in the At_End handler, for use in LLVM generation. From-SVN: r260887
Ed Schonberg committed -
When a private type declaration T1 is completed with a derivation of an untagged private type that overrides the predefined equality primitive, and the full view of T2 is a derivation of another private type T2 whose full view is a tagged type, the compiler may generate code that references the wrong equality primitive when processing comparisons of objects of type T1. 2018-05-29 Javier Miranda <miranda@adacore.com> gcc/ada/ * exp_ch4.adb (Expand_N_Op_Eq, Expand_Composite_Equality): Use the new subprogram Inherits_From_Tagged_Full_View to identify more reliably untagged private types completed with a derivation of an untagged private whose full view is a tagged type. * sem_util.ads, sem_util.adb (Inherits_From_Tagged_Full_View): New subprogram. (Collect_Primitive_Operations): Handle untagged private types completed with a derivation of an untagged private type whose full view is a tagged type. In such case, collecting the list of primitives we may find two equality primitives: one associated with the untagged private and another associated with the ultimate tagged type (and we must remove from the returned list this latter one). gcc/testsuite/ * gnat.dg/equal2.adb: New testcase. From-SVN: r260886
Javier Miranda committed -
2018-05-29 Ed Schonberg <schonberg@adacore.com> gcc/ada/ * exp_unst.adb (Visit_Node): Handle statement sequences that include an At_End handler. From-SVN: r260885
Ed Schonberg committed -
The -gnatR switch outputs representation information for locally-defined types but it was skipping those defined in blocks without label, unlike those defined in named blocks. This change plugs this small hole. The following procedure: procedure P is begin declare type R is record I : Integer; end record; begin null; end; end; must now generate the following output with -gnatR: Representation information for unit P (body) -------------------------------------------- for B_1.R'Size use 32; for B_1.R'Alignment use 4; for B_1.R use record I at 0 range 0 .. 31; end record; 2018-05-29 Eric Botcazou <ebotcazou@adacore.com> gcc/ada/ * repinfo.adb (List_Entities): Also recurse into blocks without label. From-SVN: r260884
Eric Botcazou committed -
2018-05-29 Ed Schonberg <schonberg@adacore.com> gcc/ada/ * exp_ch6.adb (Expand_N_Subprogram_Body): Do not generate push/pop for exceptions if subprogram unnesting is in effect, because these branch nodes are relevant only in the presence of nested subprograms. From-SVN: r260883
Ed Schonberg committed -
This patch fixes an error in the handling of attributes Pred qnd Succ when applied to the limit values of a floating-point type. The RM mandates that such operations must raise constraint_error, but GNAT generated in most cases an infinite value, regardless of whether overflow checks were enabled. 2018-05-29 Ed Schonberg <schonberg@adacore.com> gcc/ada/ * libgnat/s-fatgen.adb (Succ, Pred): Raise Constraint_Error unconditionally when applied to the largest positive (resp. largest negative) value of a floating-point type. gcc/testsuite/ * gnat.dg/float_attributes_overflows.adb: New testcase. From-SVN: r260882
Ed Schonberg committed -
2018-05-29 Ed Schonberg <schonberg@adacore.com> gcc/ada/ * einfo.ads, einfo.adb: Clarify use of Activation_Record_Component: discriminants and exceptions are never components of such. The flag Needs_Activation_Record is set on subprogram types, not on access to them. From-SVN: r260881
Ed Schonberg committed -
2018-05-29 Ed Schonberg <schonberg@adacore.com> gcc/ada/ * sem_ch3.adb: Set scope of component of subtype. From-SVN: r260880
Ed Schonberg committed -
2018-05-29 Ed Schonberg <schonberg@adacore.com> gcc/ada/ * exp_unst.adb (Visit_Node): Exclude selected components whose prefix carry no type. Such selected components appear in unit names that are child units, both in the specification and possibly in an end label for the unit, and they do not contain any relevant uplevel references. From-SVN: r260879
Ed Schonberg committed -
2018-05-29 Arnaud Charlet <charlet@adacore.com> gcc/ada/ * libgnat/a-calend.ads, libgnat/a-calend.adb (Epoch_Offset): Make it a function. From-SVN: r260878
Arnaud Charlet committed -
Based on the Vx6 versions, using a different link spec to accomodate VxWorks 7 specificities, in particular the ability in some configurations to rely on .ctor sections to trigger constructors in kernel modules. 2018-05-29 Olivier Hainque <hainque@adacore.com> gcc/ada/ * libgnat/system-vxworks7-ppc-rtp.ads: New file. * libgnat/system-vxworks7-ppc-kernel.ads: New file. * libgnat/system-vxworks7-e500-rtp.ads: New file. * libgnat/system-vxworks7-e500-kernel.ads: New file. * libgnat/system-vxworks7-x86-rtp.ads: New file. * libgnat/system-vxworks-ppc64-kernel.ads: Rename as ... * libgnat/system-vxworks7-ppc64-kernel.ads: and adjust name of gnat-crtbe link spec to use the vx7 variant. From-SVN: r260877
Olivier Hainque committed -
Enforce a more explicit distinction of crtbegin objects holding either functions with ctor/dtor attributes or _ctors/_dtors arrays, or none of the two (no array, no attributes). Then allow/enforce different linking strategies for VxWorks 7. 2018-05-29 Olivier Hainque <hainque@adacore.com> gcc/ada/ * vx_crtbegin.inc: Use a consistent naming convention for the registration/deregistration functions across RTP or kernel. Remove the ctor/dtor attribute setting based on RTP/kernel, expect the optional attribute extension to be provided by includers instead. * vx_crtbegin.c: Mere inclusion of vx_crtbegin.inc with empty attribute extension for the registration/deregistration functions. * vx_crtbegin_attr.c: New file. Include vx_crtbegin.inc with explicit constructor/destructor attribute extensions. * vx_crtbegin_array.c: New file. Include vx_crtbegin.inc with empty attribute extensions and declare _ctors/_dtors arrays. * vx_crtbegin_auto.c: Remove. * libgnat/system-vxworks7-aarch64-rtp-smp.ads: Use vxworks7-gnat-crtbe-link.spec. * libgnat/system-vxworks7-aarch64.ads: Likewise. * libgnat/system-vxworks7-e500-rtp-smp.ads: Likewise. * libgnat/system-vxworks7-ppc-rtp-smp.ads: Likewise. * libgnat/system-vxworks7-ppc64-rtp-smp.ads: Likewise. * libgnat/system-vxworks7-x86-kernel.ads: Likewise. * libgnat/system-vxworks7-x86-rtp-smp.ads: Likewise. * libgnat/system-vxworks7-x86_64-kernel.ads: Likewise. * libgnat/system-vxworks7-x86_64-rtp-smp.ads: Likewise. From-SVN: r260876
Olivier Hainque committed -
2018-05-29 Piotr Trojanek <trojanek@adacore.com> gcc/ada/ * ali.adb: Minor reformatting. From-SVN: r260875
Piotr Trojanek committed -
2018-05-29 Joel Brobecker <brobecker@adacore.com> gcc/ada/ * doc/gnat_ugn/platform_specific_information.rst: Update package requirements for 32bit GNAT on x86_64-linux. * gnat_ugn.texi: Regenerate. From-SVN: r260874
Joel Brobecker committed -
This decouples -gnatRj from the destination, either standard output or file, so that it only toggles the format of the representation information. 2018-05-29 Eric Botcazou <ebotcazou@adacore.com> gcc/ada/ * doc/gnat_ugn/building_executable_programs_with_gnat.rst (Debugging Control): Adjust description of -gnatRj. * gnat_ugn.texi: Regenerate. * opt.ads (List_Representation_Info_To_JSON): Likewise. * repinfo.adb (List_Rep_Info): Do not automatically create a file if List_Representation_Info_To_JSON is true. * switch-c.adb (Scan_Front_End_Switches) <R>: Remove incompatibility check between -gnatRj and -gnatRs. * usage.adb (Usage): Adjust description of -gnatRj. From-SVN: r260873
Eric Botcazou committed -
Fix Normalize_Pathname to avoid a constraint error. 2018-05-29 Pascal Obry <obry@adacore.com> gcc/ada/ * libgnat/s-os_lib.adb (Normalize_Pathname): Fix handling of ".." in the root directory. gcc/testsuite/ * gnat.dg/normalize_pathname.adb: New testcase. From-SVN: r260872
Pascal Obry committed -
2018-05-29 Pascal Obry <obry@adacore.com> gcc/ada/ * libgnat/s-os_lib.adb: Minor reformatting. From-SVN: r260871
Pascal Obry committed -
2018-05-29 Doug Rupp <rupp@adacore.com> gcc/ada/ * libgnat/a-calend.adb (Epoch_Offset): Move from body to ... * libgnat/a-calend.ads (Epoch_Offset): to private part of spec * libgnat/a-calcon.ads (To_Unix_Nano_Time): New function spec. * libgnat/a-calcon.adb (To_Unix_Nano_Time): New function body. From-SVN: r260870
Doug Rupp committed -
This arranges for the Discriminant_Number of discriminants to be output by -gnatR in JSON mode. This number is referenced in symbolic expressions present for offsets and sizes, so its definition is also required for the sake of completeness. 2018-05-29 Eric Botcazou <ebotcazou@adacore.com> gcc/ada/ * repinfo.ads (JSON format): Document new pair for components. * repinfo.adb (Derived_Discriminant): New function. (List_Structural_Record_Layout): Add Outer_Ent parameter and pass it in recursive calls. If the record type is the parent of an extension, find and list the derived discriminant from the extension, if any. (List_Component_Layout): List the Discriminant_Number in JSON mode. (List_Record_Info): Adjust call to List_Structural_Record_Layout. From-SVN: r260869
Eric Botcazou committed -
This adds a new variant to the -gnatR switch, namely -gnatRj, which causes the compiler to output representation information to a file in the JSON data interchange format. It can be combined with -gnatR0/1/2/3/m (but is incompatible with -gnaRe and -gnatRs). The information output in this mode is a superset of that output in the traditional -gnatR mode, but is otherwise equivalent for the common part. 2018-05-29 Eric Botcazou <ebotcazou@adacore.com> gcc/ada/ * doc/gnat_ugn/building_executable_programs_with_gnat.rst (Alphabetical List of All Switches): Document -gnatRj. (Debugging Control): Likewise. * gnat_ugn.texi: Regenerate. * opt.ads (List_Representation_Info_To_JSON): New boolean variable. * osint-c.adb (Create_Repinfo_File): Use the .json instead of .rep extension if List_Representation_Info_To_JSON is true. * repinfo.ads: Document the JSON output format. * repinfo.adb (List_Location): New procedure. (List_Array_Info): Add support for JSON output. (List_Entities): Likewise. (Unop): Likewise. (Binop): Likewise. (Print_Expr): Likewise. (List_Linker_Section): Likewise. (List_Mechanisms): Likewise. (List_Name): Likewise. (List_Object_Info): Likewise. (List_Record_Info): Likewise. (List_Component_Layout): Likewise. Add Indent parameter. (List_Structural_Record_Layout): New procedure. (List_Attr): Add support for JSON output. (List_Type_Info): Likewise. (Write_Unknown_Val): Likewise. * switch-c.adb (Scan_Front_End_Switches) <R>: Deal with 'j'. * usage.adb (Usage): List -gnatRj. From-SVN: r260868
Eric Botcazou committed -
This extracts a worker procedure for printing the layout of a single component from List_Record_Layout so as to make the next change more readable. 2018-05-29 Eric Botcazou <ebotcazou@adacore.com> gcc/ada/ * repinfo.adb (List_Component_Layout): New procedure extracted from... (List_Record_Layout): ...here. Invoke it. From-SVN: r260867
Eric Botcazou committed -
This factors out the various cases where a marker for an unknown value is output by the -gnatR switches. No functional changes. 2018-05-29 Eric Botcazou <ebotcazou@adacore.com> gcc/ada/ * repinfo.adb (Write_Unknown_Val): New procedure. (List_GCC_Expression): Call it. (List_Record_Layout): Likewise. (Write_Val): Likewise. From-SVN: r260866
Eric Botcazou committed -
2018-05-29 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> gcc/ada/ * exp_ch4.adb (Expand_N_Op_Abs): Clear Do_Overflow_Check when inserting code to do check. From-SVN: r260865
Richard Kenner committed -
2018-05-29 Arnaud Charlet <charlet@adacore.com> gcc/ada/ * lib-writ.adb (Write_ALI): Do not use new function from s-casuti yet. This breaks build of cross compilers with older versions of GNAT, so better avoid it. From-SVN: r260864
Arnaud Charlet committed -
2018-05-29 Doug Rupp <rupp@adacore.com> gcc/ada/ * libgnarl/s-taprop.ads (Monotonic_Clock): Refine documentation to reflect reality. From-SVN: r260863
Doug Rupp committed -
2018-05-29 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> gcc/ada/ * exp_ch4.adb (Expand_N_Op_Abs): Always do range check against 'First. From-SVN: r260862
Richard Kenner committed
-