Commit graph

173635 commits

Author SHA1 Message Date
Jakub Jelinek
601399c0df re PR middle-end/86416 ([OpenMP] Offloading - better lto1 error message if mode not supported on offloading target)
PR middle-end/86416
	* testsuite/libgomp.c/pr86416-1.c (main): Use L suffixes rather than
	q or none.
	* testsuite/libgomp.c/pr86416-2.c (main): Use Q suffixes rather than
	L or none.

From-SVN: r279552
2019-12-19 00:27:28 +01:00
Julian Brown
a6163563f2 Add OpenACC 2.6's no_create
The clause makes any device code use the local memory address for each
of the variables specified unless the given variable is already present
on the current device.

2019-12-19  Julian Brown  <julian@codesourcery.com>
            Maciej W. Rozycki  <macro@codesourcery.com>
            Tobias Burnus  <tobias@codesourcery.com>
            Thomas Schwinge  <thomas@codesourcery.com>

        gcc/
        * omp-low.c (lower_omp_target): Support GOMP_MAP_NO_ALLOC.
        * tree-pretty-print.c (dump_omp_clause): Likewise.

        gcc/c-family/
        * c-pragma.h (pragma_omp_clause): Add
        PRAGMA_OACC_CLAUSE_NO_CREATE.

        gcc/c/
        * c-parser.c (c_parser_omp_clause_name): Support no_create.
        (c_parser_oacc_data_clause): Likewise.
        (c_parser_oacc_all_clauses): Likewise.
        (OACC_DATA_CLAUSE_MASK, OACC_KERNELS_CLAUSE_MASK)
        (OACC_PARALLEL_CLAUSE_MASK, OACC_SERIAL_CLAUSE_MASK): Add
        PRAGMA_OACC_CLAUSE_NO_CREATE.
        * c-typeck.c (handle_omp_array_sections): Support
        GOMP_MAP_NO_ALLOC.

        gcc/cp/
        * parser.c (cp_parser_omp_clause_name): Support no_create.
        (cp_parser_oacc_data_clause): Likewise.
        (cp_parser_oacc_all_clauses): Likewise.
        (OACC_DATA_CLAUSE_MASK, OACC_KERNELS_CLAUSE_MASK)
        (OACC_PARALLEL_CLAUSE_MASK): Add PRAGMA_OACC_CLAUSE_NO_CREATE.
        * semantics.c (handle_omp_array_sections): Support no_create.

        gcc/fortran/
        * gfortran.h (gfc_omp_map_op): Add OMP_MAP_NO_ALLOC.
        * openmp.c (omp_mask2): Add OMP_CLAUSE_NO_CREATE.
        (gfc_match_omp_clauses): Support no_create.
        (OACC_PARALLEL_CLAUSES, OACC_KERNELS_CLAUSES)
        (OACC_DATA_CLAUSES): Add OMP_CLAUSE_NO_CREATE.
        * trans-openmp.c (gfc_trans_omp_clauses_1): Support
        OMP_MAP_NO_ALLOC.

        gcc/testsuite/
        * gfortran.dg/goacc/common-block-1.f90: Add no_create-clause tests.
        * gfortran.dg/goacc/common-block-1.f90: Likewise.
        * gfortran.dg/goacc/data-clauses.f95: Likewise.
        * gfortran.dg/goacc/data-tree.f95: Likewise.
        * gfortran.dg/goacc/kernels-tree.f95: Likewise.
        * gfortran.dg/goacc/parallel-tree.f95: Likewise.

        include/
        * gomp-constants.h (gomp_map_kind): Support GOMP_MAP_NO_ALLOC.

        libgomp/
        * target.c (gomp_map_vars_async): Support GOMP_MAP_NO_ALLOC.
        * testsuite/libgomp.oacc-c-c++-common/no_create-1.c: New test.
        * testsuite/libgomp.oacc-c-c++-common/no_create-2.c: New test.
        * testsuite/libgomp.oacc-c-c++-common/no_create-3.c: New test.
        * testsuite/libgomp.oacc-c-c++-common/no_create-4.c: New test.
        * testsuite/libgomp.oacc-c-c++-common/no_create-5.c: New test.
        * testsuite/libgomp.oacc-fortran/no_create-1.f90: New test.
        * testsuite/libgomp.oacc-fortran/no_create-2.f90: New test.
        * testsuite/libgomp.oacc-fortran/no_create-3.F90: New test.

Reviewed-by: Thomas Schwinge <thomas@codesourcery.com>

Co-Authored-By: Maciej W. Rozycki <macro@codesourcery.com>
Co-Authored-By: Thomas Schwinge <thomas@codesourcery.com>
Co-Authored-By: Tobias Burnus <tobias@codesourcery.com>

From-SVN: r279551
2019-12-19 00:10:08 +01:00
Eric Botcazou
11b8091fb3 * ira.c (ira): Use simple LRA algorithm when not optimizing.
From-SVN: r279550
2019-12-18 23:03:23 +00:00
Paolo Carlini
d3769410c6 typeck.c (cxx_sizeof_or_alignof_type): Add location_t parameter and use it throughout.
/gcc/cp
2019-12-18  Paolo Carlini  <paolo.carlini@oracle.com>

	* typeck.c (cxx_sizeof_or_alignof_type): Add location_t parameter
	and use it throughout.
	(cxx_sizeof_expr): Likewise.
	(cxx_alignof_expr): Likewise.
	(cxx_sizeof_or_alignof_expr): Likewise.
	(cxx_alignas_expr): Update call.
	* decl.c (fold_sizeof_expr): Likewise.
	* pt.c (tsubst_copy): Likewise.
	(tsubst_copy_and_build): Likewise.
	* except.c (build_throw): Add location_t parameter and use it.
	(expand_end_catch_block): Update call.
	* parser.c (cp_parser_unary_expression): Update
	cxx_sizeof_or_alignof_type and cxx_sizeof_or_alignof_expr calls,
	pass the compound location.
	(cp_parser_throw_expression): Likewise pass the combined location
	to build_throw.
	* cp-tree.h: Update declarations.

	* semantics.c (finish_handler_parms): Use DECL_SOURCE_LOCATION.
	* decl2.c (check_classfn): Likewise.

	* except.c (is_admissible_throw_operand_or_catch_parameter):
	Exploit cp_expr_loc_or_input_loc in one place.

	* except.c (create_try_catch_expr): Remove, unused.

/libcc1
2019-12-18  Paolo Carlini  <paolo.carlini@oracle.com>

	* libcp1plugin.cc (plugin_build_unary_expr): Update build_throw
	and cxx_sizeof_or_alignof_expr calls.
	(plugin_build_unary_type_expr): Likewise for
	cxx_sizeof_or_alignof_type.

/gcc/testsuite
2019-12-18  Paolo Carlini  <paolo.carlini@oracle.com>

	* g++.dg/diagnostic/alignof2.C: New.
	* g++.dg/diagnostic/alignof3.C: Likewise.
	* g++.dg/diagnostic/incomplete-type-1.C: Likewise.
	* g++.dg/warn/Wcatch-value-3b.C: Likewise.
	* g++.dg/cpp0x/alignof3.C: Check location(s) too.
	* g++.dg/cpp1z/decomp-bitfield1.C: Likewise.
	* g++.dg/cpp1z/has-unique-obj-representations2.C: Likewise.
	* g++.dg/expr/sizeof3.C: Likewise.
	* g++.dg/ext/flexary6.C: Likewise.
	* g++.dg/ext/vla4.C: Likewise.
	* g++.dg/template/sizeof11.C: Likewise.
	* g++.dg/warn/Wcatch-value-1.C: Likewise.
	* g++.dg/warn/Wcatch-value-2.C: Likewise.
	* g++.dg/warn/Wcatch-value-3.C: Likewise.
	* g++.old-deja/g++.brendan/sizeof1.C: Likewise.
	* g++.old-deja/g++.brendan/sizeof3.C: Likewise.
	* g++.old-deja/g++.brendan/sizeof4.C: Likewise.
	* g++.old-deja/g++.eh/ctor1.C: Likewise.
	* g++.old-deja/g++.jason/ambig1.C: Likewise.
	* g++.old-deja/g++.other/sizeof4.C: Likewise.

From-SVN: r279543
2019-12-18 19:23:01 +00:00
Peter Bergner
a7389ce5d4 Fix POWER dfp test case target tests.
PR bootstrap/92661
	* gcc.target/powerpc/pr92661.c: New test.
	* gcc.target/powerpc/dfp-dd.c: Add dg-require-effective-target hard_dfp.
	Remove unneeded powerpc_fprs test.
	* gcc.target/powerpc/dfp-td.c: Likewise.
	* gcc.target/powerpc/dfp-dd-2.c: Add dg-require-effective-target dfp.
	* gcc.target/powerpc/dfp-td-2.c: Likewise.
	* gcc.target/powerpc/dfp-td-3.c: Likewise.
	* gcc.target/powerpc/dfp/dfp.exp: Remove rs6000-*-* and
	powerpc*-*-darwin* target tests.  Add check_effective_target_dfp test.
	* gcc.target/powerpc/dfp/dtstsfi-0.c: Remove unneeded target test.
	Remove unneeded dg-skip-if.
	* gcc.target/powerpc/dfp/dtstsfi-1.c: Likewise.
	* gcc.target/powerpc/dfp/dtstsfi-10.c: Likewise.
	* gcc.target/powerpc/dfp/dtstsfi-11.c: Likewise.
	* gcc.target/powerpc/dfp/dtstsfi-12.c: Likewise.
	* gcc.target/powerpc/dfp/dtstsfi-13.c: Likewise.
	* gcc.target/powerpc/dfp/dtstsfi-14.c: Likewise.
	* gcc.target/powerpc/dfp/dtstsfi-15.c: Likewise.
	* gcc.target/powerpc/dfp/dtstsfi-16.c: Likewise.
	* gcc.target/powerpc/dfp/dtstsfi-17.c: Likewise.
	* gcc.target/powerpc/dfp/dtstsfi-18.c: Likewise.
	* gcc.target/powerpc/dfp/dtstsfi-19.c: Likewise.
	* gcc.target/powerpc/dfp/dtstsfi-2.c: Likewise.
	* gcc.target/powerpc/dfp/dtstsfi-20.c: Likewise.
	* gcc.target/powerpc/dfp/dtstsfi-21.c: Likewise.
	* gcc.target/powerpc/dfp/dtstsfi-22.c: Likewise.
	* gcc.target/powerpc/dfp/dtstsfi-23.c: Likewise.
	* gcc.target/powerpc/dfp/dtstsfi-24.c: Likewise.
	* gcc.target/powerpc/dfp/dtstsfi-25.c: Likewise.
	* gcc.target/powerpc/dfp/dtstsfi-26.c: Likewise.
	* gcc.target/powerpc/dfp/dtstsfi-27.c: Likewise.
	* gcc.target/powerpc/dfp/dtstsfi-28.c: Likewise.
	* gcc.target/powerpc/dfp/dtstsfi-29.c: Likewise.
	* gcc.target/powerpc/dfp/dtstsfi-3.c: Likewise.
	* gcc.target/powerpc/dfp/dtstsfi-30.c: Likewise.
	* gcc.target/powerpc/dfp/dtstsfi-31.c: Likewise.
	* gcc.target/powerpc/dfp/dtstsfi-32.c: Likewise.
	* gcc.target/powerpc/dfp/dtstsfi-33.c: Likewise.
	* gcc.target/powerpc/dfp/dtstsfi-34.c: Likewise.
	* gcc.target/powerpc/dfp/dtstsfi-35.c: Likewise.
	* gcc.target/powerpc/dfp/dtstsfi-36.c: Likewise.
	* gcc.target/powerpc/dfp/dtstsfi-37.c: Likewise.
	* gcc.target/powerpc/dfp/dtstsfi-38.c: Likewise.
	* gcc.target/powerpc/dfp/dtstsfi-39.c: Likewise.
	* gcc.target/powerpc/dfp/dtstsfi-4.c: Likewise.
	* gcc.target/powerpc/dfp/dtstsfi-40.c: Likewise.
	* gcc.target/powerpc/dfp/dtstsfi-41.c: Likewise.
	* gcc.target/powerpc/dfp/dtstsfi-42.c: Likewise.
	* gcc.target/powerpc/dfp/dtstsfi-43.c: Likewise.
	* gcc.target/powerpc/dfp/dtstsfi-44.c: Likewise.
	* gcc.target/powerpc/dfp/dtstsfi-45.c: Likewise.
	* gcc.target/powerpc/dfp/dtstsfi-46.c: Likewise.
	* gcc.target/powerpc/dfp/dtstsfi-47.c: Likewise.
	* gcc.target/powerpc/dfp/dtstsfi-48.c: Likewise.
	* gcc.target/powerpc/dfp/dtstsfi-49.c: Likewise.
	* gcc.target/powerpc/dfp/dtstsfi-5.c: Likewise.
	* gcc.target/powerpc/dfp/dtstsfi-50.c: Likewise.
	* gcc.target/powerpc/dfp/dtstsfi-51.c: Likewise.
	* gcc.target/powerpc/dfp/dtstsfi-52.c: Likewise.
	* gcc.target/powerpc/dfp/dtstsfi-53.c: Likewise.
	* gcc.target/powerpc/dfp/dtstsfi-54.c: Likewise.
	* gcc.target/powerpc/dfp/dtstsfi-55.c: Likewise.
	* gcc.target/powerpc/dfp/dtstsfi-56.c: Likewise.
	* gcc.target/powerpc/dfp/dtstsfi-57.c: Likewise.
	* gcc.target/powerpc/dfp/dtstsfi-58.c: Likewise.
	* gcc.target/powerpc/dfp/dtstsfi-59.c: Likewise.
	* gcc.target/powerpc/dfp/dtstsfi-6.c: Likewise.
	* gcc.target/powerpc/dfp/dtstsfi-60.c: Likewise.
	* gcc.target/powerpc/dfp/dtstsfi-61.c: Likewise.
	* gcc.target/powerpc/dfp/dtstsfi-62.c: Likewise.
	* gcc.target/powerpc/dfp/dtstsfi-63.c: Likewise.
	* gcc.target/powerpc/dfp/dtstsfi-64.c: Likewise.
	* gcc.target/powerpc/dfp/dtstsfi-65.c: Likewise.
	* gcc.target/powerpc/dfp/dtstsfi-66.c: Likewise.
	* gcc.target/powerpc/dfp/dtstsfi-67.c: Likewise.
	* gcc.target/powerpc/dfp/dtstsfi-68.c: Likewise.
	* gcc.target/powerpc/dfp/dtstsfi-69.c: Likewise.
	* gcc.target/powerpc/dfp/dtstsfi-7.c: Likewise.
	* gcc.target/powerpc/dfp/dtstsfi-70.c: Likewise.
	* gcc.target/powerpc/dfp/dtstsfi-71.c: Likewise.
	* gcc.target/powerpc/dfp/dtstsfi-72.c: Likewise.
	* gcc.target/powerpc/dfp/dtstsfi-73.c: Likewise.
	* gcc.target/powerpc/dfp/dtstsfi-74.c: Likewise.
	* gcc.target/powerpc/dfp/dtstsfi-75.c: Likewise.
	* gcc.target/powerpc/dfp/dtstsfi-76.c: Likewise.
	* gcc.target/powerpc/dfp/dtstsfi-77.c: Likewise.
	* gcc.target/powerpc/dfp/dtstsfi-78.c: Likewise.
	* gcc.target/powerpc/dfp/dtstsfi-79.c: Likewise.
	* gcc.target/powerpc/dfp/dtstsfi-8.c: Likewise.
	* gcc.target/powerpc/dfp/dtstsfi-9.c: Likewise.

From-SVN: r279542
2019-12-18 12:46:05 -06:00
David Malcolm
6dd0c82021 Drop unused member from cpp_string_location_reader (PR preprocessor/92982)
libcpp/ChangeLog:
	PR preprocessor/92982
	* charset.c
	(cpp_string_location_reader::cpp_string_location_reader): Delete
	initialization of m_line_table.
	* include/cpplib.h (cpp_string_location_reader::m_line_table):
	Delete unused member.

From-SVN: r279541
2019-12-18 17:26:01 +00:00
Thomas Schwinge
77ce555548 [OpenACC] Refactor 'goacc_enter_data' so that it can be called from 'goacc_insert_pointer', "present" case, and simplify
No functional changes.

	libgomp/
	* oacc-mem.c (goacc_enter_data): Refactor, so that it can be
	called...
	(goacc_insert_pointer): ... from here, "present" case.
	(goacc_insert_pointer): Inline function into...
	(GOACC_enter_exit_data): ... here, and simplify.

From-SVN: r279540
2019-12-18 18:02:37 +01:00
Thomas Schwinge
9444a299fa [OpenACC] Refactor 'goacc_enter_data' so that it can be called from 'goacc_insert_pointer', "not present" case
No functional changes.

	libgomp/
	* oacc-mem.c (goacc_enter_data): Refactor, so that it can be
	called...
	(goacc_insert_pointer): ... from here, "not present" case.

From-SVN: r279539
2019-12-18 18:02:27 +01:00
Thomas Schwinge
5031b6199f [OpenACC] Refactor 'goacc_remove_pointer' interface
No functional changes.

	libgomp/
	* oacc-mem.c (goacc_remove_pointer): Refactor interface.  Adjust
	all users.

From-SVN: r279538
2019-12-18 18:02:18 +01:00
Thomas Schwinge
1a79b5788d [OpenACC] Refactor 'GOACC_enter_exit_data' to call 'goacc_enter_data', 'goacc_exit_data'
No functional changes.

	libgomp/
	* oacc-mem.c (GOACC_enter_exit_data): Refactor code to call
	'goacc_enter_data', 'goacc_exit_data'.

From-SVN: r279537
2019-12-18 18:02:10 +01:00
Thomas Schwinge
34cfe31e1d [OpenACC] Refactor 'delete_copyout' into 'goacc_exit_data'
Change 'FLAG_COPYOUT', 'FLAG_FINALIZE' into the usual map kind.

No functional changes.

	libgomp/
	* oacc-mem.c (delete_copyout): Refactor into...
	(goacc_exit_data): ... this.  Adjust all users.

From-SVN: r279536
2019-12-18 18:02:00 +01:00
Thomas Schwinge
aaf0e9d708 [OpenACC] Refactor 'present_create_copy' into 'goacc_enter_data'
Every caller passes in 'FLAG_PRESENT', 'FLAG_CREATE'.  Change the remaining
'FLAG_COPY' into the usual map kind.

No functional changes.

	libgomp/
	* oacc-mem.c (present_create_copy): Refactor into...
	(goacc_enter_data): ... this.  Adjust all users.

From-SVN: r279535
2019-12-18 18:01:51 +01:00
Thomas Schwinge
83d1d065df Assert in 'libgomp/target.c:gomp_unmap_vars_internal' that we're not unmapping 'tgt' while it's still in use
libgomp/
	* target.c (gomp_unmap_vars_internal): Add a safeguard to
	'gomp_remove_var'.

From-SVN: r279534
2019-12-18 18:01:33 +01:00
Thomas Schwinge
cc3f11f5f5 [OpenACC] In 'libgomp/target.c:gomp_to_device_kind_p', handle 'GOMP_MAP_FORCE_FROM' like 'GOMP_MAP_FROM'
Fix oversight from r254194 "Coalesce host to device transfers in libgomp".

	libgomp/
	* target.c (gomp_to_device_kind_p): Handle 'GOMP_MAP_FORCE_FROM'
	like 'GOMP_MAP_FROM'.

From-SVN: r279533
2019-12-18 18:01:22 +01:00
Thomas Schwinge
ddb25eb9ca [PR92726, PR92970, PR92984] [OpenACC] Clarify 'acc_delete' etc. for 'NULL'-in, non-present data, or size zero
PR92970 "OpenACC 2.5: 'acc_delete' etc. on non-present data is a no-op" is an
actual bug fix, and the other ones are fall-out, currently undefined behavior.

	libgomp/
	PR libgomp/92726
	PR libgomp/92970
	PR libgomp/92984
	* oacc-mem.c (delete_copyout): No-op behavior if 'lookup_host'
	fails.
	(GOACC_enter_exit_data): Simplify accordingly.
	* testsuite/libgomp.oacc-c-c++-common/pr92970-1.c: New file,
	subsuming...
	* testsuite/libgomp.oacc-c-c++-common/lib-17.c: ... this file...
	* testsuite/libgomp.oacc-c-c++-common/lib-18.c: ..., and this
	file.
	* testsuite/libgomp.oacc-c-c++-common/pr92984-1.c: New file,
	subsuming...
	* testsuite/libgomp.oacc-c-c++-common/lib-21.c: ... this file...
	* testsuite/libgomp.oacc-c-c++-common/lib-29.c: ..., and this
	file.
	* testsuite/libgomp.oacc-c-c++-common/pr92726-1.c: New file,
	subsuming...
	* testsuite/libgomp.oacc-c-c++-common/lib-28.c: ... this file.

From-SVN: r279532
2019-12-18 18:01:11 +01:00
Thomas Schwinge
32128577ae [OpenACC] Elaborate/simplify 'exit data' 'finalize' handling
No functional changes.

	gcc/
	* gimplify.c (gimplify_omp_target_update): Elaborate 'exit data'
	'finalize' handling.
	gcc/testsuite/
	* c-c++-common/goacc/finalize-1.c: Extend.
	* gfortran.dg/goacc/finalize-1.f: Likewise.
	libgomp/
	* oacc-mem.c (GOACC_enter_exit_data): Simplify 'exit data'
	'finalize' handling.

From-SVN: r279531
2019-12-18 18:00:51 +01:00
Thomas Schwinge
ba40277f6a [PR92848] [OpenACC] Use 'GOMP_MAP_VARS_ENTER_DATA' for dynamic data lifetimes
libgomp/
	PR libgomp/92848
	* oacc-mem.c (acc_map_data, present_create_copy)
	(goacc_insert_pointer): Use 'GOMP_MAP_VARS_ENTER_DATA'.
	(acc_unmap_data, delete_copyout, goacc_remove_pointer): Adjust.
	* testsuite/libgomp.oacc-c-c++-common/lib-50.c: Remove.
	* testsuite/libgomp.oacc-c-c++-common/pr92848-1-d-a.c: New file
	* testsuite/libgomp.oacc-c-c++-common/pr92848-1-d-p.c: Likewise.
	* testsuite/libgomp.oacc-c-c++-common/pr92848-1-r-a.c: Likewise.
	* testsuite/libgomp.oacc-c-c++-common/pr92848-1-r-p.c: Likewise.
	* testsuite/libgomp.oacc-c-c++-common/subset-subarray-mappings-1-r-p.c:
	Remove "XFAIL"s.

From-SVN: r279530
2019-12-18 18:00:39 +01:00
Thomas Schwinge
6278b54922 Make 'libgomp/target.c:gomp_unmap_tgt' 'static' again
This got changed to 'attribute_hidden' in r271128, but it's not actually used
outside of 'libgomp/target.c'.

	libgomp/
	* target.c (gomp_unmap_tgt): Make it 'static'.
	* libgomp.h (gomp_unmap_tgt): Remove.

From-SVN: r279529
2019-12-18 18:00:28 +01:00
Tobias Burnus
c80c9e26de PR 86416 – improve lto1 diagnostic if a mode does not exist
PR middle-end/86416
        *  Makefile.in (CFLAGS-lto-streamer-in.o): Pass target_noncanonical on.
        * lto-streamer-in.c (lto_input_mode_table): Improve unsupported-mode
        diagnostic.

        PR middle-end/86416
        * testsuite/libgomp.c/pr86416-1.c: New.
        * testsuite/libgomp.c/pr86416-2.c: New.

From-SVN: r279528
2019-12-18 17:51:08 +01:00
Harald Anlauf
6573d760cd re PR fortran/70853 (ICE on pointing to null, in gfc_add_block_to_block, at fortran/trans.c:1599)
2019-12-18  Harald Anlauf  <anlauf@gmx.de>

	PR fortran/70853
	* trans-expr.c (gfc_trans_pointer_assignment): Reject bounds
	remapping if pointer target is NULL().

	PR fortran/70853
	* gfortran.dg/pr70853.f90: New test.

From-SVN: r279527
2019-12-18 16:34:06 +00:00
Wilco Dijkstra
e986ce3bd6 [AArch64] Fixup core tunings
Several tuning settings in cores.def are not consistent.
Set the tuning for Cortex-A76AE and Cortex-A77 to neoversen1 so
it is the same as for Cortex-A76 and Neoverse N1.
Set the tuning for Neoverse E1 to cortexa73 so it's the same as for
Cortex-A65. Set the scheduler for Cortex-A65 and Cortex-A65AE to
cortexa53.

    gcc/
	* config/aarch64/aarch64-cores.def: 
	("cortex-a76ae"): Use neoversen1 tuning.
	("cortex-a77"): Likewise.
	("cortex-a65"): Use cortexa53 scheduler.
	("cortex-a65ae"): Likewise.
	("neoverse-e1"): Use cortexa73 tuning.

From-SVN: r279526
2019-12-18 16:11:52 +00:00
Martin Jambor
8bda7ce8ec IPA-CP: Remove bogus static keyword (PR 92971)
2019-12-18  Martin Jambor  <mjambor@suse.cz>

	PR ipa/92971
	* ipa-cp.c (cgraph_edge_brings_all_agg_vals_for_node): Fix
          definition of values, release memory on exit.

	testsuite/
	* gcc.dg/ipa/ipcp-agg-12.c: New test.

From-SVN: r279525
2019-12-18 17:08:09 +01:00
Georg-Johann Lay
15ef05444f * config/avr/avr-mcus.def: Typo.
From-SVN: r279524
2019-12-18 16:02:00 +00:00
Jan Hubicka
c7ac9a0c7e ipa-param-manipulation.h (get_original_index): Declare.
* ipa-param-manipulation.h (get_original_index): Declare.
	* ipa-param-manipulation.c (ipa_param_adjustments::get_original_index):
	New member function.
	* ipa-prop.c (ipcp_get_parm_bits): New function.
	* ipa-prop.h (ipcp_get_parm_bits): Declare.
	* tree-ssa-ccp.c: Include cgraph.h, alloc-pool.h, symbol-summary.h,
	ipa-utils.h and ipa-prop.h
	(get_default_value): Use ipcp_get_parm_bits.

	* gcc.dg/ipa/ipa-bit-cp.c: New testcase.
	* gcc.dg/ipa/ipa-bit-cp-1.c: New testcase.
	* gcc.dg/ipa/ipa-bit-cp-2.c: New testcase.

Co-Authored-By: Martin Jambor <mjambor@suse.cz>

From-SVN: r279523
2019-12-18 13:21:51 +00:00
Jason Merrill
1ad431f95c PR c++/12333 - X::~X() with implicit this->.
this->X::~X() is handled by finish_class_member_access_expr and its
lookup_destructor subroutine; let's use it in cp_parser_lookup_name for the
case where this-> is implicit.

I tried replacing the other destructor code here with just the call to
lookup_destructor, but that regressed handling of naming the destructor
outside a non-static member function.

	* parser.c (cp_parser_lookup_name): Use lookup_destructor.
	* typeck.c (lookup_destructor): No longer static.

From-SVN: r279522
2019-12-18 07:44:34 -05:00
Andrew Stubbs
542803c9ad Fix vect/pr65947-8.c testcase for amdgcn.
2019-12-18  Andrew Stubbs  <ams@codesourcery.com>

	gcc/testsuite/
	* gcc.dg/vect/pr65947-8.c: Change pass conditions for amdgcn.

From-SVN: r279521
2019-12-18 11:47:26 +00:00
Jakub Jelinek
5afa32b898 re PR lto/92972 (gcc/lto-wrapper.c:443: identical branches ?)
PR lto/92972
	* lto-wrapper.c (merge_and_complain): Use just "-fno-pie" instead of
	big ? "-fno-pie" : "-fno-pie".  Formatting fixes.  Fix comment typo.

From-SVN: r279520
2019-12-18 12:15:43 +01:00
Eric Botcazou
e3371908b3 trans.c (Pragma_to_gnu): Push a diagnostics state for pragma Warnings (Off) before turning off all the...
* gcc-interface/trans.c (Pragma_to_gnu) <Pragma_Warnings>: Push a
	diagnostics state for pragma Warnings (Off) before turning off all
	the warnings and only pop it for pragma Warnings (On).

From-SVN: r279519
2019-12-18 09:51:14 +00:00
Justin Squirek
d4a45898bc [Ada] Missing accessibility check on access discriminants
2019-12-18  Justin Squirek  <squirek@adacore.com>

gcc/ada/

	* sem_ch6.adb (Analyze_Function_Return): Modify handling of
	extended return statements to check accessibility of access
	discriminants.
	(Check_Aggregate_Accessibility): Removed.
	(Check_Return_Obj_Accessibility): Added to centralize checking
	of return aggregates and subtype indications in the case of an
	extended return statement.

From-SVN: r279518
2019-12-18 07:16:22 +00:00
Arnaud Charlet
c7e3d0694b [Ada] Fix uninitialized out parameter in s-regpat.adb
2019-12-18  Arnaud Charlet  <charlet@adacore.com>

gcc/ada/

	* libgnat/s-regpat.adb (Parse_Literal, Parse_Piece): Ensure
	Expr_Flags is always fully initialized.

From-SVN: r279517
2019-12-18 07:16:17 +00:00
Arnaud Charlet
19f0436b8f [Ada] Atomic aspect on formal generic params now supported in Ada 202x mode
2019-12-18  Arnaud Charlet  <charlet@adacore.com>

gcc/ada/

	* libgnat/s-atopar.ads, libgnat/s-atopex.ads (Atomic_Type): Can
	now be marked Atomic. This requires marking the unit Ada 202x.

From-SVN: r279516
2019-12-18 07:16:12 +00:00
Arnaud Charlet
5815f92a08 [Ada] Simplify Big_Integer and Big_Real interface
2019-12-18  Arnaud Charlet  <charlet@adacore.com>

gcc/ada/

	* libgnat/a-nbnbin.ads, libgnat/a-nbnbin.adb,
	libgnat/a-nbnbre.ads, libgnat/a-nbnbre.adb: Replace
	Optional_Big_* types by a simple check and exception raise in
	Get_Bignum.
	(Set_Bignum): Arg should be 'out' and not 'in out'.
	(Invalid_Big_Integer, No_Big_Real): Removed.
	(Is_Valid): Now convention Intrinsic.

From-SVN: r279515
2019-12-18 07:15:52 +00:00
Piotr Trojanek
16b5491430 [Ada] Fix three-letter typos like "sss" in comments and docs
2019-12-18  Piotr Trojanek  <trojanek@adacore.com>

gcc/ada/

	* doc/gnat_rm/implementation_defined_pragmas.rst,
	doc/gnat_rm/obsolescent_features.rst,
	doc/gnat_ugn/gnat_and_program_execution.rst, exp_attr.adb,
	exp_ch9.adb, init.c, libgnat/s-valrea.adb, par-ch6.adb,
	sem_attr.adb, sem_ch4.adb, sem_util.ads: Fix trivial typos.
	* gnat_rm.texi, gnat_ugn.texi: Regenerate.

From-SVN: r279514
2019-12-18 07:15:22 +00:00
Gary Dismukes
a760d14246 [Ada] Missing accessibility actuals on calls to interface conversion functions
2019-12-18  Gary Dismukes  <dismukes@adacore.com>

gcc/ada/

	* sem_res.adb (Resolve_Type_Conversion): Add handling for access
	types with designated operand and target types that are
	referenced in places that have a limited view of an interface
	type by retrieving the nonlimited view when it exists.  Add ???
	comments related to missing limited_with_clause handling for
	Target (in the non-access case).

From-SVN: r279513
2019-12-18 07:14:59 +00:00
Ed Schonberg
64c6e3673a [Ada] AI12-0282: shared variable control aspects on formal types
2019-12-18  Ed Schonberg  <schonberg@adacore.com>

gcc/ada/

	* par-ch12.adb (P_Formal_Derived_Type_Definition): In Ada_2020
	the keyword WITH can indicate the start of aspect specifications
	and not a private type extension.
	* sem_ch12.adb (Analyze_Formal_Type): Indicate that it is a
	first subtype.
	(Instantiate_Type): New procedure
	Check_Shared_Variable_Control_Aspects to verify matching rules
	between formal and actual types. Note that an array type with
	aspect Atomic_Components is considered compatible with an array
	type whose component type is Atomic, even though the array types
	do not carry the same aspect.
	* sem_ch13.adb (Analyze_One_Aspect): Allow shared variable
	control aspects to appear on formal types.
	(Rep_Item_Too_Early): Exclude aspects on formal types.
	* sem_prag.adb (Mark_Type): Handle properly pragmas that come
	from aspects on formal types.
	(Analyze_Pragma, case Atomic_Components): Handle formal types.

From-SVN: r279512
2019-12-18 07:14:54 +00:00
Eric Botcazou
2b0451b772 [Ada] Minor housekeeping work in Create_Standard
2019-12-18  Eric Botcazou  <ebotcazou@adacore.com>

gcc/ada/

	* cstand.adb (Create_Standard): Remove duplicate line and
	adjust.

From-SVN: r279511
2019-12-18 07:14:49 +00:00
Javier Miranda
1198a9351f [Ada] Reserving switch d_K for known problem isssues detection
2019-12-18  Javier Miranda  <miranda@adacore.com>

gcc/ada/

	* debug.adb: Document -gnatd_K as a reserved switch for the
	detection of known problem issues of previous releases.

From-SVN: r279510
2019-12-18 07:14:44 +00:00
Ghjuvan Lacambre
fa1072e725 [Ada] Reject aspect specifications on number constants
2019-12-18  Ghjuvan Lacambre  <lacambre@adacore.com>

gcc/ada/

	* par-ch13.adb: Check if declarations allow aspect
	specifications.

From-SVN: r279509
2019-12-18 07:14:39 +00:00
Piotr Trojanek
057aa8d8b7 [Ada] Einfo: fix typo in comment
2019-12-18  Piotr Trojanek  <trojanek@adacore.com>

gcc/ada/

	* einfo.ads (Is_Ghost_Entity): Fix typo in comment.

From-SVN: r279508
2019-12-18 07:14:28 +00:00
Eric Botcazou
3a4425fd9a [Ada] Do not propagate Object_Size onto Size for composite types
2019-12-18  Eric Botcazou  <ebotcazou@adacore.com>

gcc/ada/

	* layout.adb (Layout_Type): In the case of composite types, do
	not copy the Esize onto the RM_Size if the latter is not set.
	* gcc-interface/decl.c (gnat_to_gnu_entity) <E_Record_Type>:
	Also cap the alignment if an Object_Size clause has been
	specified.  Pass VAR_DECL in the call to validate_size for the
	Esize of a type.
	(validate_size): Be prepared to give an error on an Object_Size
	clause.

From-SVN: r279507
2019-12-18 07:14:23 +00:00
Eric Botcazou
c846eedd56 [Ada] Document the introduction of the Object_Size attribute in Ada 2020
2019-12-18  Eric Botcazou  <ebotcazou@adacore.com>

gcc/ada/

	* einfo.ads (Handling of Type'Size Value): Add references to the
	introduction of Object_Size in Ada 2020.
	* sem_eval.adb (Subtypes_Statically_Match): Likewise.

From-SVN: r279506
2019-12-18 07:14:18 +00:00
Bob Duff
af552cd02f [Ada] Wrong error on hidden must-override primitive
2019-12-18  Bob Duff  <duff@adacore.com>

gcc/ada/

	* sem_ch3.adb (Derive_Subprogram): Do not set the
	Requires_Overriding flag in the above-mentioned case.

From-SVN: r279505
2019-12-18 07:14:13 +00:00
Bob Duff
4f691cb20d [Ada] Bad "already use-visible" warning re: use in private part
2019-12-18  Bob Duff  <duff@adacore.com>

gcc/ada/

	* sem_ch8.adb (Note_Redundant_Use): It was already checking for
	a use clause in the visible part of the child. Add an additional
	check for a use clause in the context clause of the child.

From-SVN: r279504
2019-12-18 07:14:07 +00:00
GCC Administrator
63fdce8543 Daily bump.
From-SVN: r279483
2019-12-18 00:16:49 +00:00
Martin Sebor
e8f1ade269 PR c++/61339 - add warning for mismatch between struct and class
gcc/c-family/ChangeLog:

	PR c++/61339
	* c.opt (-Wmismatched-tags, -Wredundant-tags): New options.

gcc/cp/ChangeLog:

	PR c++/61339
	* parser.c (cp_parser_maybe_warn_enum_key): New function.
	(class_decl_loc_t): New class.
	(cp_parser_elaborated_type_specifier): Call
	cp_parser_maybe_warn_enum_key.
	(cp_parser_class_head): Call cp_parser_check_class_key.
	(cp_parser_check_class_key): Add arguments.  Call class_decl_loc_t::add.
	(c_parse_file): Call class_decl_loc_t::diag_mismatched_tags.

gcc/testsuite/ChangeLog:

	PR c++/61339
	* g++.dg/warn/Wmismatched-tags.C: New test.
	* g++.dg/warn/Wredundant-tags.C: New test.
	* g++.dg/pch/Wmismatched-tags.C: New test.
	* g++.dg/pch/Wmismatched-tags.Hs: New test header.

gcc/ChangeLog:

	PR c++/61339
	* doc/invoke.texi (-Wmismatched-tags, -Wredundant-tags): Document
	new C++ options.

From-SVN: r279480
2019-12-17 16:53:07 -07:00
Michael Meissner
54ba911fd1 Generate PADDI to add large constants if -mcpu=future.
2019-12-12  Michael Meissner  <meissner@linux.ibm.com>

	* config/rs6000/predicates.md (add_operand): Allow eI constants.
	* config/rs6000/rs6000.md (add<mode>3): Add alternative to
	generate PADDI for 34-bit constants if -mcpu=future.

From-SVN: r279476
2019-12-17 22:21:35 +00:00
Michael Meissner
ef759fd121 Use PLI to load up 32-bit SImode constants if -mcpu=future.
2019-12-17  Michael Meissner  <meissner@linux.ibm.com>

	* config/rs6000/rs6000.md (movsi_internal1): Add alternative to
	use PLI to load up 32-bit constants if -mcpu=future.

From-SVN: r279475
2019-12-17 22:16:40 +00:00
Michael Meissner
a50e038893 Use PLI to load up large constants if -mcpu=future.
2019-12-17  Michael Meissner  <meissner@linux.ibm.com>

	* config/rs6000/rs6000.c (num_insns_constant_gpr): Return 1 if the
	constant can be loaded with PLI if -mcpu=future.
	* config/rs6000/rs6000.md (movdi_internal64): Add alternative to
	use PLI to load up 34-bit constants if -mcpu=future.

From-SVN: r279474
2019-12-17 22:11:55 +00:00
Jason Merrill
4f05d85a22 PR c++/79592 - missing explanation of invalid constexpr.
We changed months back to use the pre-generic form for constexpr evaluation,
but explain_invalid_constexpr_fn was still using DECL_SAVED_TREE.  This
mostly works, but misses some issues due to folding.  So with this patch we
save the pre-generic form of constexpr functions even when we know they
can't produce a constant result.

	* constexpr.c (register_constexpr_fundef): Do store the body of a
	template instantiation that is not potentially constant.
	(explain_invalid_constexpr_fn): Look it up.
	(cxx_eval_call_expression): Check fundef->result.

From-SVN: r279473
2019-12-17 16:46:40 -05:00
Jason Merrill
9c7b2b0ba8 PR c++/92576 - redeclaration of variable template.
The variable templates patch way back when forgot to add handling here.  The
simplest answer seems to be recursing to the underlying declaration.

	* decl.c (redeclaration_error_message): Recurse for variable
	templates.

From-SVN: r279472
2019-12-17 16:46:11 -05:00