]> git.ipfire.org Git - thirdparty/gcc.git/log
thirdparty/gcc.git
7 years ago2018-05-16 Richard Biener <rguenther@suse.de>
rguenth [Wed, 16 May 2018 13:02:27 +0000 (13:02 +0000)] 
2018-05-16  Richard Biener  <rguenther@suse.de>

* params.def (PARAM_DSE_MAX_ALIAS_QUERIES_PER_STORE): New param.
* doc/invoke.texi (dse-max-alias-queries-per-store): Document.
* tree-ssa-dse.c: Include tree-ssa-loop.h.
(check_name): New callback.
(dse_classify_store): Track cycles via a visited bitmap of PHI
defs and simplify handling of in-loop and across loop dead stores
and properly fail for loop-variant refs.  Handle byte-tracking with
multiple defs.  Use PARAM_DSE_MAX_ALIAS_QUERIES_PER_STORE for
limiting the walk.

* gcc.dg/tree-ssa/ssa-dse-32.c: New testcase.
* gcc.dg/tree-ssa/ssa-dse-33.c: Likewise.
* gcc.dg/uninit-pr81897-2.c: Use -fno-tree-dse.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@260288 138bc75d-0d04-0410-961f-82ee72b054a4

7 years agoHandle vector boolean types when calculating the SLP unroll factor
rsandifo [Wed, 16 May 2018 11:50:44 +0000 (11:50 +0000)] 
Handle vector boolean types when calculating the SLP unroll factor

The SLP unrolling factor is calculated by finding the smallest
scalar type for each SLP statement and taking the number of required
lanes from the vector versions of those scalar types.  E.g. for an
int32->int64 conversion, it's the vector of int32s rather than the
vector of int64s that determines the unroll factor.

We rely on tree-vect-patterns.c to replace boolean operations like:

   bool a, b, c;
   a = b & c;

with integer operations of whatever the best size is in context.
E.g. if b and c are fed by comparisons of ints, a, b and c will become
the appropriate size for an int comparison.  For most targets this means
that a, b and c will end up as int-sized themselves, but on targets like
SVE and AVX512 with packed vector booleans, they'll instead become a
small bitfield like :1, padded to a byte for memory purposes.
The SLP code would then take these scalar types and try to calculate
the vector type for them, causing the unroll factor to be much higher
than necessary.

This patch tries to make the SLP code use the same approach as the
loop vectorizer, by splitting out the code that calculates the
statement vector type and the vector type that should be used for
the number of units.

2018-05-16  Richard Sandiford  <richard.sandiford@linaro.org>

gcc/
* tree-vectorizer.h (vect_get_vector_types_for_stmt): Declare.
(vect_get_mask_type_for_stmt): Likewise.
* tree-vect-slp.c (vect_two_operations_perm_ok_p): New function,
split out from...
(vect_build_slp_tree_1): ...here.  Use vect_get_vector_types_for_stmt
to determine the statement's vector type and the vector type that
should be used for calculating nunits.  Deal with cases in which
the type has to be deferred.
(vect_slp_analyze_node_operations): Use vect_get_vector_types_for_stmt
and vect_get_mask_type_for_stmt to calculate STMT_VINFO_VECTYPE.
* tree-vect-loop.c (vect_determine_vf_for_stmt_1)
(vect_determine_vf_for_stmt): New functions, split out from...
(vect_determine_vectorization_factor): ...here.
* tree-vect-stmts.c (vect_get_vector_types_for_stmt)
(vect_get_mask_type_for_stmt): New functions, split out from
vect_determine_vectorization_factor.

gcc/testsuite/
* gcc.target/aarch64/sve/vcond_10.c: New test.
* gcc.target/aarch64/sve/vcond_10_run.c: Likewise.
* gcc.target/aarch64/sve/vcond_11.c: Likewise.
* gcc.target/aarch64/sve/vcond_11_run.c: Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@260287 138bc75d-0d04-0410-961f-82ee72b054a4

7 years ago2018-05-16 Richard Biener <rguenther@suse.de>
rguenth [Wed, 16 May 2018 10:22:52 +0000 (10:22 +0000)] 
2018-05-16  Richard Biener  <rguenther@suse.de>

* tree-cfg.c (verify_gimple_assign_ternary): Properly
verify the [VEC_]COND_EXPR embedded comparison.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@260283 138bc75d-0d04-0410-961f-82ee72b054a4

7 years agoPR tree-optimization/85753 - missing -Wrestrict on memcpy into a member array
msebor [Wed, 16 May 2018 02:30:38 +0000 (02:30 +0000)] 
PR tree-optimization/85753 - missing -Wrestrict on memcpy into a member array

gcc/ChangeLog:

PR tree-optimization/85753
* gimple-ssa-warn-restrict.c (builtin_memref::builtin_memref): Handle
RECORD_TYPE in addition to ARRAY_TYPE.

gcc/testsuite/ChangeLog:

PR tree-optimization/85753
* gcc.dg/Wrestrict-10.c: Adjust.
* gcc.dg/Wrestrict-16.c: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@260280 138bc75d-0d04-0410-961f-82ee72b054a4

7 years ago * cp-tree.h (cp_expr): Remove copy constructor.
jason [Wed, 16 May 2018 00:57:56 +0000 (00:57 +0000)] 
* cp-tree.h (cp_expr): Remove copy constructor.

* mangle.c (struct releasing_vec): Declare copy constructor.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@260279 138bc75d-0d04-0410-961f-82ee72b054a4

7 years agoDaily bump.
gccadmin [Wed, 16 May 2018 00:16:25 +0000 (00:16 +0000)] 
Daily bump.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@260277 138bc75d-0d04-0410-961f-82ee72b054a4

7 years ago * constexpr.c (cxx_eval_vec_init_1): Pass tf_none if ctx->quiet.
jason [Tue, 15 May 2018 21:56:34 +0000 (21:56 +0000)] 
* constexpr.c (cxx_eval_vec_init_1): Pass tf_none if ctx->quiet.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@260273 138bc75d-0d04-0410-961f-82ee72b054a4

7 years ago PR c++/64372 - CWG 1560, gratuitous lvalue-rvalue conversion in ?:
jason [Tue, 15 May 2018 21:56:29 +0000 (21:56 +0000)] 
PR c++/64372 - CWG 1560, gratuitous lvalue-rvalue conversion in ?:

* call.c (build_conditional_expr_1): Don't force_rvalue when one arm
is a throw-expression.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@260272 138bc75d-0d04-0410-961f-82ee72b054a4

7 years agoPR middle-end/85643 - attribute nonstring fails to squash -Wstringop-truncation warning
msebor [Tue, 15 May 2018 21:52:16 +0000 (21:52 +0000)] 
PR middle-end/85643 - attribute nonstring fails to squash -Wstringop-truncation warning

gcc/ChangeLog:

PR middle-end/85643
* calls.c (get_attr_nonstring_decl): Handle MEM_REF.

gcc/testsuite/ChangeLog:

PR middle-end/85643
* c-c++-common/attr-nonstring-7.c: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@260271 138bc75d-0d04-0410-961f-82ee72b054a4

7 years ago PR lto/85583
hubicka [Tue, 15 May 2018 16:39:43 +0000 (16:39 +0000)] 
PR lto/85583
* lto-partition.c (account_reference_p): Do not account
references from aliases; do not account refernces from
external initializers.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@260266 138bc75d-0d04-0410-961f-82ee72b054a4

7 years ago2018-05-15 Paolo Carlini <paolo.carlini@oracle.com>
paolo [Tue, 15 May 2018 16:03:56 +0000 (16:03 +0000)] 
2018-05-15  Paolo Carlini  <paolo.carlini@oracle.com>

* cp-tree.h (DECL_MAYBE_IN_CHARGE_CDTOR_P): New.
(FOR_EACH_CLONE): Update.
* decl.c (grokdeclarator): Use it.
* decl2.c (vague_linkage_p): Likewise.
* mangle.c (mangle_decl): Likewise.
* method.c (lazily_declare_fn): Likewise.
* optimize.c (can_alias_cdtor, maybe_clone_body): Likewise.
* repo.c (repo_emit_p): Likewise.
* tree.c (decl_linkage): Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@260264 138bc75d-0d04-0410-961f-82ee72b054a4

7 years agoPR libstdc++/85749 constrain seed sequences for random number engines
redi [Tue, 15 May 2018 15:36:46 +0000 (15:36 +0000)] 
PR libstdc++/85749 constrain seed sequences for random number engines

Constrain constructors and member functions of random number engines so
that functions taking seed sequences can only be called with types that
meet the seed sequence requirements.

PR libstdc++/85749
* include/bits/random.h (__detail::__is_seed_seq): New SFINAE helper.
(linear_congruential_engine, mersenne_twister_engine)
(subtract_with_carry_engine, discard_block_engine)
(independent_bits_engine, shuffle_order_engine): Use __is_seed_seq to
constrain function templates taking seed sequences.
* include/bits/random.tcc (linear_congruential_engine::seed(_Sseq&))
(mersenne_twister_engine::seed(_Sseq&))
(subtract_with_carry_engine::seed(_Sseq&)): Change return types to
match declarations.
* include/ext/random (simd_fast_mersenne_twister_engine): Use
__is_seed_seq to constrain function templates taking seed sequences.
* include/ext/random.tcc (simd_fast_mersenne_twister_engine::seed):
Change return type to match declaration.
* testsuite/26_numerics/random/discard_block_engine/cons/seed_seq2.cc:
New.
* testsuite/26_numerics/random/independent_bits_engine/cons/
seed_seq2.cc: New.
* testsuite/26_numerics/random/linear_congruential_engine/cons/
seed_seq2.cc: New.
* testsuite/26_numerics/random/mersenne_twister_engine/cons/
seed_seq2.cc: New.
* testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error lineno.
* testsuite/26_numerics/random/shuffle_order_engine/cons/seed_seq2.cc:
New.
* testsuite/26_numerics/random/subtract_with_carry_engine/cons/
seed_seq2.cc: New.
* testsuite/ext/random/simd_fast_mersenne_twister_engine/cons/
seed_seq2.cc: New.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@260263 138bc75d-0d04-0410-961f-82ee72b054a4

7 years agoPR libstdc++/83891 fix path::is_absolute() for non-POSIX targets
redi [Tue, 15 May 2018 13:50:49 +0000 (13:50 +0000)] 
PR libstdc++/83891 fix path::is_absolute() for non-POSIX targets

The correct definition seems to be has_root_directory() for all systems
we care about.

PR libstdc++/83891
* include/bits/fs_path.h (path::is_absolute()): Use same definition
for all operating systems.
* include/experimental/bits/fs_path.h (path::is_absolute()): Likewise.
* testsuite/27_io/filesystem/path/query/is_absolute.cc: New.
* testsuite/27_io/filesystem/path/query/is_relative.cc: Fix comment.
* testsuite/experimental/filesystem/path/query/is_absolute.cc: New.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@260259 138bc75d-0d04-0410-961f-82ee72b054a4

7 years agoRemove unused headers from tests
redi [Tue, 15 May 2018 12:43:44 +0000 (12:43 +0000)] 
Remove unused headers from tests

* testsuite/27_io/filesystem/path/decompose/extension.cc: Remove
unused <vector> header.
* testsuite/27_io/filesystem/path/query/empty.cc: Likewise.
* testsuite/27_io/filesystem/path/query/has_extension.cc: Likewise.
* testsuite/27_io/filesystem/path/query/has_filename.cc: Likewise.
* testsuite/27_io/filesystem/path/query/has_parent_path.cc: Likewise.
* testsuite/27_io/filesystem/path/query/has_relative_path.cc:
Likewise.
* testsuite/27_io/filesystem/path/query/has_root_directory.cc:
Likewise.
* testsuite/27_io/filesystem/path/query/has_root_name.cc: Likewise.
* testsuite/27_io/filesystem/path/query/has_root_path.cc: Likewise.
* testsuite/27_io/filesystem/path/query/has_stem.cc: Likewise.
* testsuite/27_io/filesystem/path/query/is_relative.cc: Likewise.
* testsuite/experimental/filesystem/path/decompose/extension.cc:
Likewise.
* testsuite/experimental/filesystem/path/query/empty.cc: Likewise.
* testsuite/experimental/filesystem/path/query/has_extension.cc:
Likewise.
* testsuite/experimental/filesystem/path/query/has_filename.cc:
Likewise.
* testsuite/experimental/filesystem/path/query/has_parent_path.cc:
Likewise.
* testsuite/experimental/filesystem/path/query/has_relative_path.cc:
Likewise.
* testsuite/experimental/filesystem/path/query/has_root_directory.cc:
Likewise.
* testsuite/experimental/filesystem/path/query/has_root_name.cc:
Likewise.
* testsuite/experimental/filesystem/path/query/has_root_path.cc:
Likewise.
* testsuite/experimental/filesystem/path/query/has_stem.cc: Likewise.
* testsuite/experimental/filesystem/path/query/is_relative.cc:
Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@260256 138bc75d-0d04-0410-961f-82ee72b054a4

7 years agoPR libstdc++/84159 fix appending strings to paths
redi [Tue, 15 May 2018 12:07:09 +0000 (12:07 +0000)] 
PR libstdc++/84159 fix appending strings to paths

The path::operator/=(const Source&) and path::append overloads were
still following the semantics of the Filesystem TS not C++17. Only
the path::operator/=(const path&) overload was correct.

This change adds more tests for path::operator/=(const path&) and adds
new tests to verify that the other append operations have equivalent
behaviour.

PR libstdc++/84159
* include/bits/fs_path.h (path::operator/=, path::append): Construct
temporary path before calling _M_append.
(path::_M_append): Change parameter to path and implement C++17
semantics.
* testsuite/27_io/filesystem/path/append/path.cc: Add helper function
and more examples from the standard.
* testsuite/27_io/filesystem/path/append/source.cc: New.
* testsuite/27_io/filesystem/path/decompose/filename.cc: Add comment.
* testsuite/27_io/filesystem/path/nonmember/append.cc: New.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@260255 138bc75d-0d04-0410-961f-82ee72b054a4

7 years agoQualify std::__invoke in <variant> to prevent ADL
redi [Tue, 15 May 2018 12:06:57 +0000 (12:06 +0000)] 
Qualify std::__invoke in <variant> to prevent ADL

* include/std/variant (__gen_vtable_impl::__visit_invoke): Qualify
__invoke to prevent ADL.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@260254 138bc75d-0d04-0410-961f-82ee72b054a4

7 years ago2018-05-15 Richard Biener <rguenther@suse.de>
rguenth [Tue, 15 May 2018 11:30:29 +0000 (11:30 +0000)] 
2018-05-15  Richard Biener  <rguenther@suse.de>

* tree-ssa-dse.c (dse_classify_store): Remove use_stmt parameter,
add by_clobber_p one.  Change algorithm to collect all defs
representing uses we need to walk and try reducing them to
a single one before failing.
(dse_dom_walker::dse_optimize_stmt): Adjust.

* gcc.dg/tree-ssa/ssa-dse-31.c: New testcase.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@260253 138bc75d-0d04-0410-961f-82ee72b054a4

7 years agoDWARF: Use DW_OP_addrx and DW_OP_constx for DWARF5.
mark [Tue, 15 May 2018 08:37:46 +0000 (08:37 +0000)] 
DWARF: Use DW_OP_addrx and DW_OP_constx for DWARF5.

For older DWARF and -gsplit-dwarf we want to emit DW_OP_GNU_addr_index
and DW_OP_GNU_const_index, but for DWARF5 we should use DW_OP_addrx
and DW_OP_constx.

gcc/ChangeLog:

* dwarf2out.c (dwarf_OP): Handle DW_OP_addrx and DW_OP_constx.
(size_of_loc_descr): Likewise.
(output_loc_operands): Likewise.
(output_loc_operands_raw): Likewise.
(dw_addr_op): Use dwarf_OP () for DW_OP_constx and DW_OP_addrx.
(resolve_addr_in_expr): Handle DW_OP_addrx and DW_OP_constx.
(hash_loc_operands): Likewise.
(compare_loc_operands): Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@260252 138bc75d-0d04-0410-961f-82ee72b054a4

7 years agoDWARF calculate the number of indexed addresses.
mark [Tue, 15 May 2018 08:34:29 +0000 (08:34 +0000)] 
DWARF calculate the number of indexed addresses.

The length in the .debug_addr unit header was calculated using the number
of elements in the addr_index_table. This is wrong because the entries in
the table are refcounted and only those with a refcount > 0 are actually
put in the index. Add a helper function count_index_addrs to get the
correct number of addresses in the index.

gcc/ChangeLog:

* dwarf2out.c (count_index_addrs): New function.
(dwarf2out_finish): Use count_index_addrs to calculate addrs_length.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@260251 138bc75d-0d04-0410-961f-82ee72b054a4

7 years ago2018-05-15 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
prathamesh3492 [Tue, 15 May 2018 06:07:48 +0000 (06:07 +0000)] 
2018-05-15  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>

PR tree-optimization/83648
* ipa-pure-const.c (malloc_candidate_p): Allow function with NULL
return value as malloc candidate.

testsuite/
* gcc.dg/tree-ssa/pr83648.c: New test.
* gcc.dg/tree-ssa/pr83648-2.c: Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@260250 138bc75d-0d04-0410-961f-82ee72b054a4

7 years ago2018-05-15 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
prathamesh3492 [Tue, 15 May 2018 04:44:33 +0000 (04:44 +0000)] 
2018-05-15  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>

PR ipa/85734
* ipa-pure-const.c (warn_function_malloc): Pass value of known_finite param
as true in call to suggest_attribute.

testsuite/
* gcc.dg/ipa/pr85734.c: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@260249 138bc75d-0d04-0410-961f-82ee72b054a4

7 years agoDaily bump.
gccadmin [Tue, 15 May 2018 00:16:27 +0000 (00:16 +0000)] 
Daily bump.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@260248 138bc75d-0d04-0410-961f-82ee72b054a4

7 years ago PR target/85756
ebotcazou [Mon, 14 May 2018 20:17:19 +0000 (20:17 +0000)] 
PR target/85756
* gnat.dg/opt70.adb: New test.
* gnat.dg/opt70_pkg.ad[sb]: New helper.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@260239 138bc75d-0d04-0410-961f-82ee72b054a4

7 years ago Handle TYPE_HAS_LATE_RETURN_TYPE like ref-qualifier and eh spec.
jason [Mon, 14 May 2018 20:08:11 +0000 (20:08 +0000)] 
Handle TYPE_HAS_LATE_RETURN_TYPE like ref-qualifier and eh spec.

* tree.c (build_cp_fntype_variant): New.
(build_ref_qualified_type, build_exception_variant)
(strip_typedefs, cxx_copy_lang_qualifiers): Use it.
(cxx_type_hash_eq, cp_check_qualified_type): Check
TYPE_HAS_LATE_RETURN_TYPE.
(cp_build_type_attribute_variant): Check cxx_type_hash_eq.
(cp_build_qualified_type_real): No need to preserve C++ qualifiers.
* class.c (build_clone): Use cxx_copy_lang_qualifiers.
(adjust_clone_args): Likewise.
* decl.c (grokfndecl): Add late_return_type_p parameter.  Use
build_cp_fntype_variant.
(grokdeclarator): Pass late_return_type_p to grokfndecl.
(check_function_type): Use cxx_copy_lang_qualifiers.
(static_fn_type): Use cxx_copy_lang_qualifiers.
* decl2.c (build_memfn_type, maybe_retrofit_in_chrg)
(cp_reconstruct_complex_type, coerce_new_type, coerce_delete_type)
(change_return_type): Use cxx_copy_lang_qualifiers.
* mangle.c (write_type): Use cxx_copy_lang_qualifiers.
* parser.c (cp_parser_lambda_declarator_opt): Represent an explicit
return type on the declarator like a normal trailing return type.
* pt.c (tsubst_function_type): Use build_cp_fntype_variant.
(copy_default_args_to_explicit_spec): Use cxx_copy_lang_qualifiers.
* typeck.c (merge_types): Use build_cp_fntype_variant.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@260238 138bc75d-0d04-0410-961f-82ee72b054a4

7 years agors6000: Fix -mreadonly-in-sdata documentation
segher [Mon, 14 May 2018 19:15:39 +0000 (19:15 +0000)] 
rs6000: Fix -mreadonly-in-sdata documentation

For some reason I made both an @item and an @itemx for
-mreadonly-in-sdata.  This fixes it.

* doc/invoke.texi (RS/6000 and PowerPC Options): Delete @itemx for
-mreadonly-in-sdata.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@260237 138bc75d-0d04-0410-961f-82ee72b054a4

7 years agoPR libstdc++/81256 fix exception handling in basic_filebuf::close
redi [Mon, 14 May 2018 18:57:45 +0000 (18:57 +0000)] 
PR libstdc++/81256 fix exception handling in basic_filebuf::close

PR libstdc++/81256
* include/bits/fstream.tcc (basic_filebuf::close): Do not swallow
exceptions from _M_terminate_output().
* include/std/fstream (basic_filebuf::~basic_filebuf): Swallow any
exceptions from close().
* testsuite/27_io/basic_filebuf/close/81256.cc: New.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@260236 138bc75d-0d04-0410-961f-82ee72b054a4

7 years ago[AArch64] Add combine pattern to fuse AESE/AESMC instructions
ktkachov [Mon, 14 May 2018 16:29:13 +0000 (16:29 +0000)] 
[AArch64] Add combine pattern to fuse AESE/AESMC instructions

When the AESE,AESD and AESMC, AESMC instructions are generated through the appropriate arm_neon.h intrinsics
we really want to keep them together when the AESE feeds into an AESMC and fusion is supported by the target CPU.
We have macro-fusion hooks and scheduling model forwarding paths defined to facilitate that.
It is, however, not always enough.

This patch adds another mechanism for doing that.
When we can detect during combine that the required dependency is exists (AESE -> AESMC, AESD -> AESIMC)
just keep them together with a combine pattern throughout the rest of compilation.
We won't ever want to split them.

The testcases generate 4 AESE(D) instructions in a block followed by 4 AES(I)MC instructions that
consume the corresponding results and it also adds a bunch of computations in-between so that the
AESE and AESMC instructions are not trivially back-to-back, thus exercising the compiler's ability
to bring them together.

With this patch all 4 pairs are fused whereas before a couple of fusions would be missed due to intervening
arithmetic and memory instructions.

* config/aarch64/aarch64-simd.md (*aarch64_crypto_aese_fused):
New pattern.
(aarch64_crypto_aesd_fused): Likewise.

* gcc.target/aarch64/crypto-fuse-1.c: New test.
* gcc.target/aarch64/crypto-fuse-2.c: Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@260234 138bc75d-0d04-0410-961f-82ee72b054a4

7 years agoRemove remaining uses of * in patterns
wilco [Mon, 14 May 2018 16:10:19 +0000 (16:10 +0000)] 
Remove remaining uses of * in patterns

Remove the remaining uses of '*' from aarch64.md.
Using '*' in alternatives is typically incorrect as it tells the register
allocator to ignore those alternatives.  Also add a missing '?' so we
prefer a floating point register for same-size int<->fp conversions.

    gcc/
* config/aarch64/aarch64.md (mov<mode>): Remove '*' in alternatives.
(movsi_aarch64): Likewise.
(load_pairsi): Likewise.
(load_pairdi): Likewise.
(store_pairsi): Likewise.
(store_pairdi): Likewise.
(load_pairsf): Likewise.
(load_pairdf): Likewise.
(store_pairsf): Likewise.
(store_pairdf): Likewise.
(zero_extend): Likewise.
(trunc): Swap alternatives.
(fcvt_target): Add '?' to prefer w over r.

    testsuite/
* gcc.target/aarch64/vmov_n_1.c: Update test.
* gcc.target/aarch64/vfp-1.c: Update test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@260233 138bc75d-0d04-0410-961f-82ee72b054a4

7 years ago * testsuite/ChangeLog: Add missing PR number.
uros [Mon, 14 May 2018 16:03:06 +0000 (16:03 +0000)] 
* testsuite/ChangeLog: Add missing PR number.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@260232 138bc75d-0d04-0410-961f-82ee72b054a4

7 years ago PR target/85756
uros [Mon, 14 May 2018 15:53:58 +0000 (15:53 +0000)] 
PR target/85756
* config/i386/i386.md: Disallow non-commutative arithmetics in
last twpeephole for mem {+,-,&,|,^}= x; mem != 0 after cmpelim
optimization.  Use COMMUTATIVE_ARITH_P test rather than != MINUS
in the peephole2 before it.

testsuite/ChangeLog:

* gcc.c-torture/execute/pr85756.c: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@260231 138bc75d-0d04-0410-961f-82ee72b054a4

7 years agoAdd __attribute__((malloc) to allocator and remove unused code
redi [Mon, 14 May 2018 15:35:12 +0000 (15:35 +0000)] 
Add __attribute__((malloc) to allocator and remove unused code

* include/bits/valarray_array.h (__valarray_get_memory): Remove.
(__valarray_get_storage): Call operator new directly. Remove ignored
top-level restrict qualifier and add malloc attribute instead.
(_Array<_Tp>::_Array(size_t)): Remove unused constructor.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@260230 138bc75d-0d04-0410-961f-82ee72b054a4

7 years agoPR libstdc++/67554 Do not pass null pointers to memcpy
redi [Mon, 14 May 2018 15:35:06 +0000 (15:35 +0000)] 
PR libstdc++/67554 Do not pass null pointers to memcpy

PR libstdc++/67554
* include/bits/valarray_array.h (_Array_copy_ctor<_Tp, true>)
(_Array_copier<_Tp, true>): Do not pass null pointers to memcpy.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@260229 138bc75d-0d04-0410-961f-82ee72b054a4

7 years ago2018-05-14 Paolo Carlini <paolo.carlini@oracle.com>
paolo [Mon, 14 May 2018 14:55:21 +0000 (14:55 +0000)] 
2018-05-14  Paolo Carlini  <paolo.carlini@oracle.com>

* cp-tree.h (TYPE_REF_P): New.
(TYPE_OBJ_P, TYPE_REF_OBJ_P, TYPE_REFFN_P): Update.
* call.c (build_list_conv, build_aggr_conv, standard_conversion,
direct_reference_binding, reference_binding, implicit_conversion,
add_builtin_candidate, build_user_type_conversion_1, build_op_call_1,
build_new_op_1, build_x_va_arg, conv_binds_ref_to_prvalue,
build_over_call, perform_implicit_conversion_flags,
extend_ref_init_temps, type_has_extended_temps): Use it.
* class.c (one_inheriting_sig, check_field_decls,
check_bases_and_members, find_flexarrays, finish_struct,
fixed_type_or_null): Likewise.
* constexpr.c (literal_type_p, cxx_bind_parameters_in_call,
non_const_var_error, cxx_eval_constant_expression,
potential_constant_expression_1): Likewise.
* cp-gimplify.c (omp_var_to_track, omp_cxx_notice_variable,
cp_genericize_r, cxx_omp_privatize_by_reference,
cxx_omp_const_qual_no_mutable, cxx_omp_finish_clause,
cp_fold_maybe_rvalue): Likewise.
* cp-ubsan.c (cp_ubsan_maybe_instrument_downcast): Likewise.
* cvt.c (build_up_reference, convert_to_reference,
convert_from_reference, convert_to_void, noexcept_conv_p,
fnptr_conv_p): Likewise.
* decl.c (poplevel, check_for_uninitialized_const_var,
check_initializer, initialize_local_var, cp_finish_decl,
get_tuple_decomp_init, cp_finish_decomp, grokdeclarator, copy_fn_p,
move_signature_fn_p, grok_op_properties, finish_function): Likewise.
* decl2.c (grok_array_decl, cp_reconstruct_complex_type,
decl_maybe_constant_var_p): Likewise.
* error.c (dump_type_prefix, dump_expr): Likewise.
* except.c (initialize_handler_parm, complete_ptr_ref_or_void_ptr_p,
is_admissible_throw_operand_or_catch_parameter): Likewise.
* expr.c (mark_use): Likewise.
* init.c (build_zero_init_1, build_value_init_noctor,
perform_member_init, diagnose_uninitialized_cst_or_ref_member_1,
build_new, build_delete): Likewise.
* lambda.c (build_lambda_object): Likewise.
* mangle.c (write_expression, write_template_arg): Likewise.
* method.c (forward_parm, do_build_copy_constructor,
do_build_copy_assign, build_stub_object, constructible_expr,
walk_field_subobs): Likewise.
* parser.c (cp_parser_omp_for_loop_init,
cp_parser_omp_declare_reduction_exprs,
cp_parser_omp_declare_reduction): Likewise.
* pt.c (convert_nontype_argument_function, convert_nontype_argument,
convert_template_argument, tsubst_pack_expansion,
tsubst_function_decl, tsubst_decl, tsubst, tsubst_copy_and_build,
maybe_adjust_types_for_deduction, check_cv_quals_for_unify, unify,
more_specialized_fn, invalid_nontype_parm_type_p, dependent_type_p_r,
value_dependent_expression_p, build_deduction_guide): Likewise.
* semantics.c (finish_handler_parms, finish_non_static_data_member,
finish_compound_literal, omp_privatize_field,
handle_omp_array_sections_1, handle_omp_array_sections,
cp_check_omp_declare_reduction, finish_omp_reduction_clause,
finish_omp_declare_simd_methods, cp_finish_omp_clause_depend_sink,
finish_omp_clauses, finish_decltype_type, capture_decltype,
finish_builtin_launder): Likewise.
* tree.c (lvalue_kind, cp_build_reference_type, move,
cp_build_qualified_type_real, stabilize_expr, stabilize_init): Likewise.
* typeck.c (cxx_safe_arg_type_equiv_p, build_class_member_access_expr,
cp_build_indirect_ref_1, convert_arguments, warn_for_null_address,
cp_build_addr_expr_1, maybe_warn_about_useless_cast,
build_static_cast_1, build_static_cast, build_reinterpret_cast_1,
build_const_cast_1, cp_build_c_cast, cp_build_modify_expr,
convert_for_initialization,
maybe_warn_about_returning_address_of_local, check_return_expr,
cp_type_quals, casts_away_constness, non_reference): Likewise.
* typeck2.c (cxx_readonly_error, store_init_value,
process_init_constructor_record, build_x_arrow, build_functional_cast,
add_exception_specifier): Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@260228 138bc75d-0d04-0410-961f-82ee72b054a4

7 years ago * pt.c (tsubst) [ARRAY_TYPE]: Check valid_array_size_p.
jason [Mon, 14 May 2018 14:49:45 +0000 (14:49 +0000)] 
* pt.c (tsubst) [ARRAY_TYPE]: Check valid_array_size_p.

(tsubst_copy_and_build) [NEW_EXPR]: Clear in_decl.

gcc/c-family/
* c-common.c (valid_array_size_p): Add complain parameter.
* c-common.h: ...which defaults to true.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@260227 138bc75d-0d04-0410-961f-82ee72b054a4

7 years agoPR libstdc++/82966 fix swapping of node handles
redi [Mon, 14 May 2018 14:27:54 +0000 (14:27 +0000)] 
PR libstdc++/82966 fix swapping of node handles

PR libstdc++/82966
* include/bits/node_handle.h (_Node_handle_common::_M_swap): Use value
instead of type.
* testsuite/23_containers/set/modifiers/node_swap.cc: New.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@260226 138bc75d-0d04-0410-961f-82ee72b054a4

7 years ago2018-05-14 Sebastian Peryt <sebastian.peryt@intel.com>
speryt [Mon, 14 May 2018 11:22:53 +0000 (11:22 +0000)] 
2018-05-14  Sebastian Peryt  <sebastian.peryt@intel.com>

gcc/

        * common/config/i386/i386-common.c (OPTION_MASK_ISA_CLDEMOTE_SET,
        OPTION_MASK_ISA_CLDEMOTE_UNSET): New defines.
        (ix86_handle_option): Handle -mcldemote.
        * config.gcc: New header.
        * config/i386/cldemoteintrin.h: New file.
        * config/i386/cpuid.h (bit_CLDEMOTE): New bit.
        * config/i386/driver-i386.c (host_detect_local_cpu): Detect
        -mcldemote.
        * config/i386/i386-c.c (ix86_target_macros_internal): Handle
        OPTION_MASK_ISA_CLDEMOTE.
        * config/i386/i386.c (ix86_target_string): Add -mcldemote.
        (ix86_valid_target_attribute_inner_p): Ditto.
        (enum ix86_builtins): Add IX86_BUILTIN_CLDEMOTE.
        (ix86_init_mmx_sse_builtins): Define __builtin_ia32_cldemote.
        (ix86_expand_builtin): Expand IX86_BUILTIN_CLDEMOTE.
        * config/i386/i386.h (TARGET_CLDEMOTE, TARGET_CLDEMOTE_P): New.
        * config/i386/i386.md (UNSPECV_CLDEMOTE): New.
        (cldemote): New.
        * config/i386/i386.opt: Add -mcldemote.
        * config/i386/x86intrin.h: New header.
        * doc/invoke.texi: Add -mcldemote.

gcc/testsuite/

        * gcc.target/i386/cldemote-1.c: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@260224 138bc75d-0d04-0410-961f-82ee72b054a4

7 years ago2018-05-14 Richard Biener <rguenther@suse.de>
rguenth [Mon, 14 May 2018 10:35:06 +0000 (10:35 +0000)] 
2018-05-14  Richard Biener  <rguenther@suse.de>

* doc/match-and-simplify.texi: Adjust :s documentation.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@260223 138bc75d-0d04-0410-961f-82ee72b054a4

7 years agogcc_qsort: avoid oversized memcpy temporaries
amonakov [Mon, 14 May 2018 08:51:51 +0000 (08:51 +0000)] 
gcc_qsort: avoid oversized memcpy temporaries

* sort.cc (REORDER_23): Pass the type for the temporaries instead of
intended memcpy size.
(REORDER_45): Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@260222 138bc75d-0d04-0410-961f-82ee72b054a4

7 years agoDaily bump.
gccadmin [Mon, 14 May 2018 00:16:30 +0000 (00:16 +0000)] 
Daily bump.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@260221 138bc75d-0d04-0410-961f-82ee72b054a4

7 years agoIntroduce gcc_qsort
amonakov [Sun, 13 May 2018 18:23:06 +0000 (18:23 +0000)] 
Introduce gcc_qsort

* sort.cc: New file.
* system.h [!CHECKING_P] (qsort): Redirect to gcc_qsort.
* vec.c (qsort_chk): Use gcc_qsort.
* Makefile.in (OBJS-libcommon): Add sort.o.
(build/sort.o): New target.  Use it...
(BUILD_RTL): ... here, and...
(build/gencfn-macros): ... here, and...
(build/genmatch): ... here.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@260216 138bc75d-0d04-0410-961f-82ee72b054a4

7 years ago[NDS32] Implment n15 pipeline.
jasonwucj [Sun, 13 May 2018 17:18:31 +0000 (17:18 +0000)] 
[NDS32] Implment n15 pipeline.

gcc/
* config.gcc (nds32*-*-*): Check that n15 is valid to --with-cpu.
* config/nds32/nds32-graywolf.md: New file.
* config/nds32/nds32-opts.h (nds32_cpu_type): Add CPU_GRAYWOLF.
* config/nds32/nds32-pipelines-auxiliary.c: Implementation for n15
pipeline.
* config/nds32/nds32-protos.h: More declarations for n15 pipeline.
* config/nds32/nds32-utils.c: More implementations for n15 pipeline.
* config/nds32/nds32.md (pipeline_model): Add graywolf.
* config/nds32/nds32.opt (mcpu): Support n15 pipeline cpus.
* config/nds32/pipelines.md: Include n15 settings.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@260214 138bc75d-0d04-0410-961f-82ee72b054a4

7 years ago2018-05-13 Steven G. Kargl <kargl@gcc.gnu.org>
kargl [Sun, 13 May 2018 17:18:05 +0000 (17:18 +0000)] 
2018-05-13  Steven G. Kargl  <kargl@gcc.gnu.org>

PR fortran/63529
* gfortran.texi: Clarify documentation for Cray pointer and
assumed-sized array.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@260213 138bc75d-0d04-0410-961f-82ee72b054a4

7 years ago[NDS32] Implment n12/n13 pipeline.
jasonwucj [Sun, 13 May 2018 17:10:36 +0000 (17:10 +0000)] 
[NDS32] Implment n12/n13 pipeline.

gcc/
* config.gcc (nds32*-*-*): Check that n12/n13 are valid to --with-cpu.
* config/nds32/nds32-n13.md: New file.
* config/nds32/nds32-opts.h (nds32_cpu_type): Add CPU_N12 and CPU_N13.
* config/nds32/nds32-pipelines-auxiliary.c: Implementation for n12/n13
pipeline.
* config/nds32/nds32-protos.h: More declarations for n12/n13 pipeline.
* config/nds32/nds32.md (pipeline_model): Add n13.
* config/nds32/nds32.opt (mcpu): Support n12/n13 pipeline cpus.
* config/nds32/pipelines.md: Include n13 settings.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@260212 138bc75d-0d04-0410-961f-82ee72b054a4

7 years ago2018-05-13 Paul Thomas <pault@gcc.gnu.org>
pault [Sun, 13 May 2018 17:01:16 +0000 (17:01 +0000)] 
2018-05-13  Paul Thomas  <pault@gcc.gnu.org>

PR fortran/85742
* trans-types.c (gfc_get_dtype_rank_type): Reorder evaluation
of 'size'. If the element type is a pointer use the size of the
TREE_TYPE of the type, unless it is VOID_TYPE. In this latter
case, set the size to zero.

2018-05-13  Paul Thomas  <pault@gcc.gnu.org>

PR fortran/85742
* gfortran.dg/assumed_type_9.f90 : New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@260211 138bc75d-0d04-0410-961f-82ee72b054a4

7 years ago2018-05-13 Steven G. Kargl <kargl@gcc.gnu.org>
kargl [Sun, 13 May 2018 16:33:30 +0000 (16:33 +0000)] 
2018-05-13  Steven G. Kargl  <kargl@gcc.gnu.org>

* gfortran.h: Remove prototype.
* symbol.c (gfc_new_undo_checkpoint): Remove unused function.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@260210 138bc75d-0d04-0410-961f-82ee72b054a4

7 years agoPR libstdc++/80165
ville [Sun, 13 May 2018 10:36:12 +0000 (10:36 +0000)] 
PR libstdc++/80165
* testsuite/20_util/variant/80165.cc: New.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@260209 138bc75d-0d04-0410-961f-82ee72b054a4

7 years ago[NDS32] Implment n10 pipeline.
jasonwucj [Sun, 13 May 2018 06:52:02 +0000 (06:52 +0000)] 
[NDS32] Implment n10 pipeline.

gcc/
* config.gcc (nds32*-*-*): Check that n10/d10 are valid to --with-cpu.
* config/nds32/nds32-n10.md: New file.
* config/nds32/nds32-opts.h (nds32_cpu_type): Add CPU_N10.
* config/nds32/nds32-pipelines-auxiliary.c: Implementation for n10
pipeline.
* config/nds32/nds32-protos.h: More declarations for n10 pipeline.
* config/nds32/nds32-utils.c: More implementations for n10 pipeline.
* config/nds32/nds32.md (pipeline_model): Add n10.
* config/nds32/nds32.opt (mcpu): Support n10 pipeline cpus.
* config/nds32/pipelines.md: Include n10 settings.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@260207 138bc75d-0d04-0410-961f-82ee72b054a4

7 years ago[NDS32] Add DSP extension instructions.
jasonwucj [Sun, 13 May 2018 05:41:37 +0000 (05:41 +0000)] 
[NDS32] Add DSP extension instructions.

gcc/
* config.gcc (nds32be-*-*): Handle --with-ext-dsp.
* config/nds32/constants.md (unspec_element, unspec_volatile_element):
Add enum values for DSP extension instructions.
* config/nds32/constraints.md (Iu06, IU06, CVp5, CVs5, CVs2, CVhi):
New constraints.
* config/nds32/iterators.md (shifts, shiftrt, sat_plus, all_plus,
sat_minus, all_minus, plus_minus, extend, sumax, sumin, sumin_max):
New code iterators.
(su, zs, uk, opcode, add_rsub, add_sub): New code attributes.
* config/nds32/nds32-dspext.md: New file for DSP implementation.
* config/nds32/nds32-intrinsic.c: Implementation of DSP extension.
* config/nds32/nds32-intrinsic.md: Likewise.
* config/nds32/nds32_intrinsic.h: Likewise.
* config/nds32/nds32-md-auxiliary.c: Likewise.
* config/nds32/nds32-memory-manipulation.c: Consider DSP extension.
* config/nds32/nds32-predicates.c (const_vector_to_hwint): New.
(nds32_valid_CVp5_p, nds32_valid_CVs5_p): New.
(nds32_valid_CVs2_p, nds32_valid_CVhi_p): New.
* config/nds32/nds32-protos.h: New declarations for DSP extension.
* config/nds32/nds32-utils.c (extract_mac_non_acc_rtx): New case
TYPE_DMAC in switch statement.
* config/nds32/nds32.c: New checking and implementation for DSP
extension instructions.
* config/nds32/nds32.h: Likewise.
* config/nds32/nds32.md: Likewise.
* config/nds32/nds32.opt (mhw-abs, mext-dsp): New options.
* config/nds32/predicates.md: Implement new predicates for DSP
extension.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@260206 138bc75d-0d04-0410-961f-82ee72b054a4

7 years agoDaily bump.
gccadmin [Sun, 13 May 2018 00:16:55 +0000 (00:16 +0000)] 
Daily bump.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@260205 138bc75d-0d04-0410-961f-82ee72b054a4

7 years agoDaily bump.
gccadmin [Sat, 12 May 2018 00:16:30 +0000 (00:16 +0000)] 
Daily bump.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@260194 138bc75d-0d04-0410-961f-82ee72b054a4

7 years ago2018-05-11 Michael Meissner <meissner@linux.vnet.ibm.com>
meissner [Fri, 11 May 2018 22:47:03 +0000 (22:47 +0000)] 
2018-05-11  Michael Meissner  <meissner@linux.vnet.ibm.com>

* config/rs6000/rs6000.md (mov<mode>_softfloat, FMOVE32):
Reformat alternatives and attributes so it is easier to identify
which constraints/attributes go with which instruction.
(mov<mode>_hardfloat32, FMOVE64): Likewise.
(mov<mode>_softfloat32, FMOVE64): Likewise.
(mov<mode>_hardfloat64, FMOVE64): Likewise.
(mov<mode>_softfloat64, FMOVE64): Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@260190 138bc75d-0d04-0410-961f-82ee72b054a4

7 years ago2018-05-11 Steven G. Kargl <kargl@gcc.gnu.org>
kargl [Fri, 11 May 2018 18:58:21 +0000 (18:58 +0000)] 
2018-05-11  Steven G. Kargl  <kargl@gcc.gnu.org>

PR fortran/85542
* expr.c (check_inquiry): Avoid NULL pointer dereference.

2018-05-11  Steven G. Kargl  <kargl@gcc.gnu.org>

PR fortran/85542
* gfortran.dg/pr85542.f90: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@260182 138bc75d-0d04-0410-961f-82ee72b054a4

7 years ago...and actually resture the *new* testcase.
emsr [Fri, 11 May 2018 17:38:26 +0000 (17:38 +0000)] 
...and actually resture the *new* testcase.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@260172 138bc75d-0d04-0410-961f-82ee72b054a4

7 years agoRestore the testcase that was clobbered by the recent PR83140 patches.
emsr [Fri, 11 May 2018 16:58:46 +0000 (16:58 +0000)] 
Restore the testcase that was clobbered by the recent PR83140 patches.
* libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions
/02_assoc_legendre/check_value.cc

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@260168 138bc75d-0d04-0410-961f-82ee72b054a4

7 years agogcc/ChangeLog:
kelvin [Fri, 11 May 2018 16:53:38 +0000 (16:53 +0000)] 
gcc/ChangeLog:

2018-05-11  Kelvin Nilsen  <kelvin@gcc.gnu.org>

* doc/extend.texi (PowerPC Built-in Functions): Rename this
subsection.
(Basic PowerPC Built-in Functions): The new name of the
subsection previously known as "PowerPC Built-in Functions".
(Basic PowerPC Built-in Functions Available on all Configurations):
New subsubsection.
(Basic PowerPC Built-in Functions Available on ISA 2.05): Likewise.
(Basic PowerPC Built-in Functions Available on ISA 2.06): Likewise.
(Basic PowerPC Built-in Functions Available on ISA 2.07): Likewise.
(Basic PowerPC Built-in Functions Available on ISA 3.0): Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@260167 138bc75d-0d04-0410-961f-82ee72b054a4

7 years agoCheck is_single_const in intersect_with_plats
jamborm [Fri, 11 May 2018 15:55:15 +0000 (15:55 +0000)] 
Check is_single_const in intersect_with_plats

2018-05-11  Martin Jambor  <mjambor@suse.cz>

PR ipa/85655
* ipa-cp.c (intersect_with_plats): Check that the lattice contains
single const.

testsuite/
* g++.dg/lto/pr85655_0.C: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@260165 138bc75d-0d04-0410-961f-82ee72b054a4

7 years ago[arm] PR target/85733 Restore be8 linking behaviour for ARMv6-M and products deriving...
rearnsha [Fri, 11 May 2018 13:29:41 +0000 (13:29 +0000)] 
[arm] PR target/85733 Restore be8 linking behaviour for ARMv6-M and products deriving from its capabilities

My patch last year to automate passing the be8 flag to the linker had
a nasty flaw in that I forgot entirely that the ARMv6-M architecture
did not derive its capabilities directly from the ARMv6 capability
list, but was a new group of capabilities (since it needs to leave out
the ARM -- notm -- feature bit).  The feature list defined was thus
missing the be8 bit.  Furthermore, any product derived from that
feature group consequently lacked the be8 feature as well and this
included all ARMv7 and ARMv8 parts.

The fix is embarrassingly simple...

PR target/85733
* config/arm/arm-cpus.in (fgroup ARMv6m): Add be8 feature.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@260162 138bc75d-0d04-0410-961f-82ee72b054a4

7 years ago2018-05-11 Sebastian Peryt <sebastian.peryt@intel.com>
speryt [Fri, 11 May 2018 13:17:42 +0000 (13:17 +0000)] 
2018-05-11  Sebastian Peryt  <sebastian.peryt@intel.com>

gcc/

        * common/config/i386/i386-common.c (OPTION_MASK_ISA_WAITPKG_SET,
        OPTION_MASK_ISA_WAITPKG_UNSET): New defines.
        (ix86_handle_option): Handle -mwaitpkg.
        * config.gcc: New header.
        * config/i386/cpuid.h (bit_WAITPKG): New bit.
        * config/i386/driver-i386.c (host_detect_local_cpu): Detect -mwaitpkg.
        * config/i386/i386-builtin-types.def ((UINT8, UNSIGNED, UINT64)): New
        function type.
        * config/i386/i386-c.c (ix86_target_macros_internal): Handle
        OPTION_MASK_ISA_WAITPKG.
        * config/i386/i386.c (ix86_target_string): Add -mwaitpkg.
        (ix86_option_override_internal): Add PTA_WAITPKG.
        (ix86_valid_target_attribute_inner_p): Add -mwaitpkg.
        (enum ix86_builtins): Add IX86_BUILTIN_UMONITOR, IX86_BUILTIN_UMWAIT,
        IX86_BUILTIN_TPAUSE.
        (ix86_init_mmx_sse_builtins): Define __builtin_ia32_umonitor,
        __builtin_ia32_umwait and __builtin_ia32_tpause.
        (ix86_expand_builtin): Expand IX86_BUILTIN_UMONITOR,
        IX86_BUILTIN_UMWAIT, IX86_BUILTIN_TPAUSE.
        * config/i386/i386.h (TARGET_WAITPKG, TARGET_WAITPKG_P): New.
        * config/i386/i386.md (UNSPECV_UMWAIT, UNSPECV_UMONITOR,
        UNSPECV_TPAUSE): New.
        (umwait, umwait_rex64, umonitor_<mode>, tpause, tpause_rex64): New.
        * config/i386/i386.opt: Add -mwaitpkg.
        * config/i386/waitpkgintrin.h: New file.
        * config/i386/x86intrin.h: New header.
        * doc/invoke.texi: Add -mwaitpkg.

gcc/testsuite/

        * gcc.target/i386/tpause-1.c: New test.
        * gcc.target/i386/umonitor-1.c: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@260161 138bc75d-0d04-0410-961f-82ee72b054a4

7 years ago[arm] PR target/85606 prefer armv6s-m for armv6-m parts
rearnsha [Fri, 11 May 2018 09:28:10 +0000 (09:28 +0000)] 
[arm] PR target/85606 prefer armv6s-m for armv6-m parts

When Arm introduced ARMv6-M there were two variants, ARMv6-M and
ARMv6S-M.  The two differed only in support for the SVC instruction.
Later on SVC was then made a mandatory part of ARMv6-M and the
ARMv6S-M name was dropped.  GCC and GAS, however still recognize both
names and at least some versions of GAS still distinguish between the
two.

To address this, this patch changes the architecture for the ARMv6-m
cortex parts (m0, m0plus, m1 and the variants will small multiply
units) to use the ARMv6S-M name in conjunction with the assembler.
This avoids problems with them rejecting code that was previously
accepted with older versions of GCC where we did not pass an explicit
architecture string through to the compiler when using -mcpu on the
command line.

PR target/85606
* config/arm/arm-cpus.in: Add comment that ARMv6-m and ARMv6S-m are now
equivalent.
(cortex-m0): Use armv6s-m isa.
(cortex-m0plus): Likewise.
(cortex-m1): Likewise.
(cortex-m0.small-multiply): Likewise.
(cortex-m0plus.small-multiply): Likewise.
(cortex-m1.small-multiply): Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@260157 138bc75d-0d04-0410-961f-82ee72b054a4

7 years ago PR c/85696
jakub [Fri, 11 May 2018 07:42:50 +0000 (07:42 +0000)] 
PR c/85696
* c-omp.c (c_omp_predetermined_sharing): Return
OMP_CLAUSE_DEFAULT_SHARED for artificial vars with integral type.

* cp-tree.h (cxx_omp_predetermined_sharing_1): New prototype.
* cp-gimplify.c (cxx_omp_predetermined_sharing): New wrapper around
cxx_omp_predetermined_sharing_1.  Rename old function to ...
(cxx_omp_predetermined_sharing_1): ... this.
* semantics.c (finish_omp_clauses): Use cxx_omp_predetermined_sharing_1
instead of cxx_omp_predetermined_sharing.

* c-c++-common/gomp/pr85696.c: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@260156 138bc75d-0d04-0410-961f-82ee72b054a4

7 years ago PR tree-optimization/85692
jakub [Fri, 11 May 2018 07:38:49 +0000 (07:38 +0000)] 
PR tree-optimization/85692
* tree-ssa-forwprop.c (simplify_vector_constructor): Try two
source permute as well.

* gcc.target/i386/pr85692.c: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@260155 138bc75d-0d04-0410-961f-82ee72b054a4

7 years agoSupport LLVM style of no_sanitize attribute (PR sanitizer/85556).
marxin [Fri, 11 May 2018 07:37:35 +0000 (07:37 +0000)] 
Support LLVM style of no_sanitize attribute (PR sanitizer/85556).

2018-05-11  Martin Liska  <mliska@suse.cz>

        PR sanitizer/85556
* doc/extend.texi: Document LLVM style format for no_sanitize
attribute.
2018-05-11  Martin Liska  <mliska@suse.cz>

        PR sanitizer/85556
* c-attribs.c (handle_no_sanitize_attribute): Iterate all
TREE_LIST values.
2018-05-11  Martin Liska  <mliska@suse.cz>

        PR sanitizer/85556
* c-c++-common/ubsan/attrib-6.c: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@260154 138bc75d-0d04-0410-961f-82ee72b054a4

7 years ago * decl.c (cp_finish_decl): Don't instantiate auto variable.
jason [Fri, 11 May 2018 02:54:52 +0000 (02:54 +0000)] 
* decl.c (cp_finish_decl): Don't instantiate auto variable.

(check_static_variable_definition): Allow auto.
* constexpr.c (ensure_literal_type_for_constexpr_object): Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@260150 138bc75d-0d04-0410-961f-82ee72b054a4

7 years agocorrect changelog!
emsr [Fri, 11 May 2018 01:44:05 +0000 (01:44 +0000)] 
correct changelog!
2018-05-10  Edward Smith-Rowland  <3dw4rd@verizon.net>

PR libstdc++/83140 - assoc_legendre returns negated value when m is odd
* include/tr1/legendre_function.tcc (__assoc_legendre_p): Add __phase
argument defaulted to +1.  Doxy comments on same.
* testsuite/special_functions/02_assoc_legendre/
check_value.cc: Regen.
* testsuite/tr1/5_numerical_facilities/special_functions/
02_assoc_legendre/check_value.cc: Regen.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@260149 138bc75d-0d04-0410-961f-82ee72b054a4

7 years agoDaily bump.
gccadmin [Fri, 11 May 2018 00:16:34 +0000 (00:16 +0000)] 
Daily bump.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@260147 138bc75d-0d04-0410-961f-82ee72b054a4

7 years ago2018-05-10 Steven G. Kargl <kargl@gcc.gnu.org>
kargl [Thu, 10 May 2018 22:49:44 +0000 (22:49 +0000)] 
2018-05-10  Steven G. Kargl  <kargl@gcc.gnu.org>

PR fortran/85687
* check.c (gfc_check_rank): Check that the argument is a data object.

2018-05-10  Steven G. Kargl  <kargl@gcc.gnu.org>

PR fortran/85687
* gfortran.dg/pr85687.f90: new test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@260141 138bc75d-0d04-0410-961f-82ee72b054a4

7 years ago2018-05-10 Michael Meissner <meissner@linux.vnet.ibm.com>
meissner [Thu, 10 May 2018 22:46:21 +0000 (22:46 +0000)] 
2018-05-10  Michael Meissner  <meissner@linux.vnet.ibm.com>

* config/rs6000/rs6000.c (mode_supports_dq_form): Rename
mode_supports_vsx_dform_quad to mode_supports_dq_form.
(mode_supports_vsx_dform_quad): Likewise.
(mode_supports_vmx_dform): Move these functions to be next to the
other mode_supports functions.
(mode_supports_dq_form): Likewise.
(quad_address_p): Change calls of mode_supports_vsx_dform_quad to
mode_supports_dq_form.
(reg_offset_addressing_ok_p): Likewise.
(offsettable_ok_by_alignment): Likewise.
(rs6000_legitimate_offset_address_p): Likewise.
(legitimate_lo_sum_address_p): Likewise.
(rs6000_legitimize_address): Likewise.
(rs6000_legitimize_reload_address): Likewise.
(rs6000_secondary_reload_inner): Likewise.
(rs6000_preferred_reload_class): Likewise.
(rs6000_output_move_128bit): Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@260140 138bc75d-0d04-0410-961f-82ee72b054a4

7 years ago2018-05-10 Steven G. Kargl <kargl@gcc.gnu.org>
kargl [Thu, 10 May 2018 22:45:38 +0000 (22:45 +0000)] 
2018-05-10  Steven G. Kargl  <kargl@gcc.gnu.org>

PR fortran/85521
* array.c (gfc_resolve_character_array_constructor): Substrings
with upper bound smaller than lower bound are zero length strings.

2018-05-10  Steven G. Kargl  <kargl@gcc.gnu.org>

PR fortran/85521
* gfortran.dg/pr85521_1.f90: New test.
* gfortran.dg/pr85521_2.f90: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@260139 138bc75d-0d04-0410-961f-82ee72b054a4

7 years ago2018-05-10 Steven G. Kargl <kargl@gcc.gnu.org>
kargl [Thu, 10 May 2018 22:43:00 +0000 (22:43 +0000)] 
2018-05-10  Steven G. Kargl  <kargl@gcc.gnu.org>

PR fortran/70870
* data.c (gfc_assign_data_value): Check that a data object does
not also have default initialization.

2018-05-10  Steven G. Kargl  <kargl@gcc.gnu.org>

PR fortran/70870
* gfortran.dg/pr70870_1.f90: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@260138 138bc75d-0d04-0410-961f-82ee72b054a4

7 years ago * gcc.target/i386/xgetsetbv.c: Fix whitespace.
uros [Thu, 10 May 2018 21:19:59 +0000 (21:19 +0000)] 
* gcc.target/i386/xgetsetbv.c: Fix whitespace.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@260137 138bc75d-0d04-0410-961f-82ee72b054a4

7 years ago * config/i386/i386.c (ix86_expand_builtin) <case IX86_BUILTIN_RDPID>:
uros [Thu, 10 May 2018 20:59:18 +0000 (20:59 +0000)] 
* config/i386/i386.c (ix86_expand_builtin) <case IX86_BUILTIN_RDPID>:
Generate SImode target register for null target.
<case IX86_BUILTIN_XGETBV>: Ditto.
<case IX86_BUILTIN_XSETBV>: Optimize LSHIFTRT generation.
* config/i386/xsaveintrin.h (_xgetbv): Add missing return.

testsuite/ChangeLog:

* gcc.target/i386/xgetsetbv.c: Check also variable arguments.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@260135 138bc75d-0d04-0410-961f-82ee72b054a4

7 years agogcc/ChangeLog:
carll [Thu, 10 May 2018 20:22:22 +0000 (20:22 +0000)] 
gcc/ChangeLog:

2018-05-10  Carl Love  <cel@us.ibm.com>

* config/rs6000/rs6000.md (prefetch): Generate ISA 2.06 instructions
dcbtt and dcbtstt if operands[2] is 0.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@260134 138bc75d-0d04-0410-961f-82ee72b054a4

7 years ago * cp-tree.h (DECL_CONSTRUCTOR_P): Use DECL_CXX_CONSTRUCTOR_P.
jason [Thu, 10 May 2018 19:33:25 +0000 (19:33 +0000)] 
* cp-tree.h (DECL_CONSTRUCTOR_P): Use DECL_CXX_CONSTRUCTOR_P.

(DECL_DESTRUCTOR_P): Use DECL_CXX_DESTRUCTOR_P.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@260133 138bc75d-0d04-0410-961f-82ee72b054a4

7 years agoDocument Dual ABI for std::ios_base::failure
redi [Thu, 10 May 2018 19:13:42 +0000 (19:13 +0000)] 
Document Dual ABI for std::ios_base::failure

* doc/xml/faq.xml: Link to C++17 status. Add note to outdated answer.
* doc/xml/manual/debug_mode.xml: Add array and forward_list to list
of C++11 containers with Debug Mode support.
* doc/xml/manual/using.xml: Document Dual ABI for ios_base::failure.
* doc/html/*: Regenerate.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@260129 138bc75d-0d04-0410-961f-82ee72b054a4

7 years ago * include/bits/regex_compiler.h (_S_cache_size): Change from
jason [Thu, 10 May 2018 19:12:23 +0000 (19:12 +0000)] 
* include/bits/regex_compiler.h (_S_cache_size): Change from
function to variable.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@260128 138bc75d-0d04-0410-961f-82ee72b054a4

7 years ago Core issue 2310 - conversion to base of incomplete type.
jason [Thu, 10 May 2018 18:57:55 +0000 (18:57 +0000)] 
Core issue 2310 - conversion to base of incomplete type.

* class.c (build_base_path): Check COMPLETE_TYPE_P for source type.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@260127 138bc75d-0d04-0410-961f-82ee72b054a4

7 years ago CWG 2267 - list-initialization of reference temporary
jason [Thu, 10 May 2018 18:57:50 +0000 (18:57 +0000)] 
CWG 2267 - list-initialization of reference temporary

* call.c (reference_binding): List-initializing a reference
temporary is copy-list-initialization.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@260126 138bc75d-0d04-0410-961f-82ee72b054a4

7 years ago* parser.c (cp_parser_class_head): Use num_template_headers_for_class.
jason [Thu, 10 May 2018 18:41:00 +0000 (18:41 +0000)] 
* parser.c (cp_parser_class_head): Use num_template_headers_for_class.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@260125 138bc75d-0d04-0410-961f-82ee72b054a4

7 years agoMake sure we aren't trying to do a nested instantiation in template context.
jason [Thu, 10 May 2018 18:40:55 +0000 (18:40 +0000)] 
Make sure we aren't trying to do a nested instantiation in template context.

* pt.c (instantiate_decl): Make sure we aren't trying to do a nested
instantiation in template context.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@260124 138bc75d-0d04-0410-961f-82ee72b054a4

7 years ago* class.c (vbase_has_user_provided_move_assign): Use user_provided_p.
jason [Thu, 10 May 2018 18:40:48 +0000 (18:40 +0000)] 
* class.c (vbase_has_user_provided_move_assign): Use user_provided_p.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@260123 138bc75d-0d04-0410-961f-82ee72b054a4

7 years ago * lambda.c (lambda_expr_this_capture): Improve logic.
jason [Thu, 10 May 2018 18:40:43 +0000 (18:40 +0000)] 
* lambda.c (lambda_expr_this_capture): Improve logic.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@260122 138bc75d-0d04-0410-961f-82ee72b054a4

7 years ago * decl.c (make_typename_type): s/parameters/arguments/.
jason [Thu, 10 May 2018 18:39:19 +0000 (18:39 +0000)] 
* decl.c (make_typename_type): s/parameters/arguments/.

* parser.c (cp_parser_nested_name_specifier_opt): Likewise.
* pt.c (make_pack_expansion): Correct error message.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@260121 138bc75d-0d04-0410-961f-82ee72b054a4

7 years ago PR fortran/85735
mpolacek [Thu, 10 May 2018 18:33:22 +0000 (18:33 +0000)] 
PR fortran/85735
* options.c (gfc_post_options): Set main_input_filename.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@260120 138bc75d-0d04-0410-961f-82ee72b054a4

7 years ago PR c++/85662
jakub [Thu, 10 May 2018 17:40:28 +0000 (17:40 +0000)] 
PR c++/85662
* c-common.h (fold_offsetof_1): Removed.
(fold_offsetof): Add TYPE argument defaulted to size_type_node and
CTX argument defaulted to ERROR_MARK.
* c-common.c (fold_offsetof_1): Renamed to ...
(fold_offsetof): ... this.  Remove wrapper function.  Add TYPE
argument, convert the pointer constant to TYPE and use size_binop
with PLUS_EXPR instead of fold_build_pointer_plus if type is not
a pointer type.  Adjust recursive calls.

* c-fold.c (c_fully_fold_internal): Use fold_offsetof rather than
fold_offsetof_1, pass TREE_TYPE (expr) as TYPE to it and drop the
fold_convert_loc.
* c-typeck.c (build_unary_op): Use fold_offsetof rather than
fold_offsetof_1, pass argtype as TYPE to it and drop the
fold_convert_loc.

* cp-gimplify.c (cp_fold): Use fold_offsetof rather than
fold_offsetof_1, pass TREE_TYPE (x) as TYPE to it and drop the
fold_convert.

* g++.dg/ext/offsetof2.C: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@260119 138bc75d-0d04-0410-961f-82ee72b054a4

7 years ago PR target/85693
uros [Thu, 10 May 2018 14:50:59 +0000 (14:50 +0000)] 
PR target/85693
* config/i386/sse.md (usadv64qi): New expander.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@260117 138bc75d-0d04-0410-961f-82ee72b054a4

7 years ago2018-05-10 Thomas Koenig <tkoenig@gcc.gnu.org>
tkoenig [Thu, 10 May 2018 14:31:54 +0000 (14:31 +0000)] 
2018-05-10  Thomas Koenig  <tkoenig@gcc.gnu.org>

PR fortran/54613
* intrinsic.texi: Document BACK for MINLOC and MAXLOC.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@260116 138bc75d-0d04-0410-961f-82ee72b054a4

7 years ago2018-05-10 Edward Smith-Rowland <3dw4rd@verizon.net>
emsr [Thu, 10 May 2018 13:59:52 +0000 (13:59 +0000)] 
2018-05-10  Edward Smith-Rowland  <3dw4rd@verizon.net>

PR libstdc++/83140 - assoc_legendre returns negated value when m is odd
* include/tr1/legendre_function.tcc (__assoc_legendre_p): Add __phase
argument defaulted to +1.  Doxy comments on same.
* testsuite/special_functions/02_assoc_legendre/
check_assoc_legendre.cc: Regen.
* testsuite/tr1/5_numerical_facilities/special_functions/
02_assoc_legendre/check_tr1_assoc_legendre.cc: Regen.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@260115 138bc75d-0d04-0410-961f-82ee72b054a4

7 years agoPR libstdc++/85729 add linkage specifications to headers
redi [Thu, 10 May 2018 12:35:45 +0000 (12:35 +0000)] 
PR libstdc++/85729 add linkage specifications to headers

PR libstdc++/85729
* include/bits/c++config.h (__replacement_assert): Add linkage
specification.
* include/bits/std_abs.h: Add comment to closing brace of block.
* include/c_global/cstddef: Add linkage specification.
* include/c_global/cstring: Likewise.
* include/c_global/cwchar: Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@260114 138bc75d-0d04-0410-961f-82ee72b054a4

7 years ago2018-05-10 Paul Thomas <pault@gcc.gnu.org>
pault [Thu, 10 May 2018 10:48:50 +0000 (10:48 +0000)] 
2018-05-10  Paul Thomas  <pault@gcc.gnu.org>

PR fortran/68846
PR fortran/70864
* resolve.c (get_temp_from_expr): The temporary must not have
dummy or intent attributes.

2018-05-10  Paul Thomas  <pault@gcc.gnu.org>

PR fortran/68846
* gfortran.dg/temporary_3.f90 : New test.

PR fortran/70864
* gfortran.dg/temporary_2.f90 : New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@260113 138bc75d-0d04-0410-961f-82ee72b054a4

7 years agoImprove boostrap-ubsan config (PR bootstrap/64914).
marxin [Thu, 10 May 2018 10:15:42 +0000 (10:15 +0000)] 
Improve boostrap-ubsan config (PR bootstrap/64914).

2018-05-10  Martin Liska  <mliska@suse.cz>

PR bootstrap/64914
* bootstrap-ubsan.mk: Define UBSAN_BOOTSTRAP.
2018-05-10  Martin Liska  <mliska@suse.cz>

PR bootstrap/64914
* md5.c: Use strict alignment with UBSAN_BOOTSTRAP.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@260112 138bc75d-0d04-0410-961f-82ee72b054a4

7 years agors6000: Remove -maltivec={be,le}
segher [Thu, 10 May 2018 10:06:00 +0000 (10:06 +0000)] 
rs6000: Remove -maltivec={be,le}

This removes the -maltivec=be and -maltivec=le options.  Those were
deprecated in GCC 8.

Altivec will keep working on both BE and LE; it is just the BE-vectors-
on-LE that is removed (the other way around was never supported).

The main change is replacing VECTOR_ELT_ORDER_BIG by BYTES_BIG_ENDIAN
(and then simplifying).

* config/rs6000/altivec.md (altivec_vmrghb, altivec_vmrghh,
altivec_vmrghw, altivec_vmrglb, altivec_vmrglh, altivec_vmrglw): Remove
-maltivec=be support.
(vec_widen_umult_even_v16qi, vec_widen_smult_even_v16qi,
vec_widen_umult_even_v8hi, vec_widen_smult_even_v8hi,
vec_widen_umult_even_v4si, vec_widen_smult_even_v4si,
vec_widen_umult_odd_v16qi, vec_widen_smult_odd_v16qi,
vec_widen_umult_odd_v8hi, vec_widen_smult_odd_v8hi,
vec_widen_umult_odd_v4si, vec_widen_smult_odd_v4si, altivec_vpkpx,
altivec_vpks<VI_char>ss, altivec_vpks<VI_char>us,
altivec_vpku<VI_char>us, altivec_vpku<VI_char>um, altivec_vsum2sws,
altivec_vsumsws): Adjust.
(altivec_vspltb *altivec_vspltb_internal, altivec_vsplth,
*altivec_vsplth_internal, altivec_vspltw, *altivec_vspltw_internal,
altivec_vspltsf, *altivec_vspltsf_internal): Remove -maltivec=be
support.
(altivec_vperm_<mode>, altivec_vperm_<mode>_uns,
altivec_vupkhs<VU_char>, altivec_vupkls<VU_char>, altivec_vupkhpx,
altivec_vupklpx, altivec_lvsl, altivec_lvsr): Adjust.
(altivec_lve<VI_char>x): Delete expand.
(*altivec_lve<VI_char>x_internal): Rename to...
(altivec_lve<VI_char>x): ... this.
(altivec_lvxl_<mode>): Delete expand.
(*altivec_lvxl_<mode>_internal): Rename to ...
(altivec_lvxl_<mode>): ... this.
(altivec_stvxl_<mode>): Delete expand.
(*altivec_stvxl_<mode>_internal): Rename to ...
(altivec_stvxl_<mode>): ... this.
(altivec_stve<VI_char>x): Delete expand.
(*altivec_stve<VI_char>x_internal): Rename to ...
(altivec_stve<VI_char>x): ... this.
(doublee<mode>2, unsdoubleev4si2, doubleo<mode>2, unsdoubleov4si2,
doubleh<mode>2, unsdoublehv4si2, doublel<mode>2, unsdoublelv4si2,
reduc_plus_scal_<mode>): Adjust.
* config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Adjust
comment.
(rs6000_cpu_cpp_builtins): Adjust.
(altivec_resolve_overloaded_builtin): Remove -maltivec=be support.
* config/rs6000/rs6000-protos.h (altivec_expand_lvx_be,
altivec_expand_stvx_be, altivec_expand_stvex_be): Delete.
* config/rs6000/rs6000.c (rs6000_option_override_internal): Remove
-maltivec=be support.
(rs6000_split_vec_extract_var): Adjust.
(rs6000_split_v4si_init): Adjust.
(swap_selector_for_mode): Delete.
(altivec_expand_lvx_be, altivec_expand_stvx_be,
altivec_expand_stvex_be): Delete.
(altivec_expand_lv_builtin, altivec_expand_stv_builtin): Remove
-maltivec=be support.
(rs6000_gimple_fold_builtin): Ditto.
(rs6000_generate_float2_double_code, rs6000_generate_float2_code):
Adjust.
* config/rs6000/rs6000.h (VECTOR_ELT_ORDER_BIG): Delete.
(TARGET_DIRECT_MOVE_64BIT): Adjust.
* config/rs6000/rs6000.md (split for extendsidi2 for vectors): Adjust.
* config/rs6000/rs6000.opt (maltivec=le, maltivec=be): Delete.
* config/rs6000/vsx.md (floate<mode>, unsfloatev2di, floato<mode>,
unsfloatov2di, vsignedo_v2df, vsignede_v2df, vunsignedo_v2df,
vunsignede_v2df, vsx_extract_<mode>_p9, *vsx_extract_si,
*vsx_extract_<mode>_p8, *vsx_extract_si_<uns>float_df,
*vsx_extract_si_<uns>float_<mode>, vsx_set_<mode>_p9, vsx_set_v4sf_p9,
*vsx_insert_extract_v4sf_p9, *vsx_insert_extract_v4sf_p9_2, and an
anonymous split): Adjust.
(vsx_mergel_<mode>, vsx_mergeh_<mode>): Remove -maltivec=be support.
(vsx_xxspltd_<mode>, extract4b, insert4b): Adjust.

gcc/testsuite/
* gcc.dg/vmx/extract-be-order.c: Delete testcase.
* gcc.dg/vmx/extract-vsx-be-order.c: Delete testcase.
* gcc.dg/vmx/insert-be-order.c: Delete testcase.
* gcc.dg/vmx/insert-vsx-be-order.c: Delete testcase.
* gcc.dg/vmx/ld-be-order.c: Delete testcase.
* gcc.dg/vmx/ld-vsx-be-order.c: Delete testcase.
* gcc.dg/vmx/lde-be-order.c: Delete testcase.
* gcc.dg/vmx/ldl-be-order.c: Delete testcase.
* gcc.dg/vmx/ldl-vsx-be-order.c: Delete testcase.
* gcc.dg/vmx/merge-be-order.c: Delete testcase.
* gcc.dg/vmx/merge-vsx-be-order.c: Delete testcase.
* gcc.dg/vmx/mult-even-odd-be-order.c: Delete testcase.
* gcc.dg/vmx/pack-be-order.c: Delete testcase.
* gcc.dg/vmx/perm-be-order.c: Delete testcase.
* gcc.dg/vmx/splat-be-order.c: Delete testcase.
* gcc.dg/vmx/splat-vsx-be-order.c: Delete testcase.
* gcc.dg/vmx/st-be-order.c: Delete testcase.
* gcc.dg/vmx/st-vsx-be-order.c: Delete testcase.
* gcc.dg/vmx/ste-be-order.c: Delete testcase.
* gcc.dg/vmx/stl-be-order.c: Delete testcase.
* gcc.dg/vmx/stl-vsx-be-order.c: Delete testcase.
* gcc.dg/vmx/sum2s-be-order.c: Delete testcase.
* gcc.dg/vmx/unpack-be-order.c: Delete testcase.
* gcc.dg/vmx/vsums-be-order.c: Delete testcase.
* gcc.target/powerpc/vec-setup-be-double.c: Delete testcase.
* gcc.target/powerpc/vec-setup-be-long.c: Delete testcase.
* gcc.target/powerpc/vec-setup.h: Remove -maltivec=be support.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@260109 138bc75d-0d04-0410-961f-82ee72b054a4

7 years ago * configure.ac (gcc_gxx_include_dir_add_sysroot): Set it to 1 only
ebotcazou [Thu, 10 May 2018 09:39:00 +0000 (09:39 +0000)] 
* configure.ac (gcc_gxx_include_dir_add_sysroot): Set it to 1 only
when --with-gxx-include-dir is also specified.
* configure: Regenerate.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@260108 138bc75d-0d04-0410-961f-82ee72b054a4

7 years ago PR tree-optimization/85699
jakub [Thu, 10 May 2018 07:38:24 +0000 (07:38 +0000)] 
PR tree-optimization/85699
* gcc.dg/nextafter-1.c (NO_LONG_DOUBLE): Define if not defined.  Use
!NO_LONG_DOUBLE instead of __LDBL_MANT_DIG__ != 106.
* gcc.dg/nextafter-2.c: Include stdlib.h.  For glibc < 2.24 define
NO_LONG_DOUBLE to 1 before including nextafter-1.c.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@260107 138bc75d-0d04-0410-961f-82ee72b054a4

7 years ago PR c++/85400
ebotcazou [Thu, 10 May 2018 07:36:38 +0000 (07:36 +0000)] 
PR c++/85400
cp/
* decl2.c (adjust_var_decl_tls_model): New static function.
(comdat_linkage): Call it on a variable.
(maybe_make_one_only): Likewise.
c-family/
* c-attribs.c (handle_visibility_attribute): Do not set no_add_attrs.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@260106 138bc75d-0d04-0410-961f-82ee72b054a4

7 years agoDaily bump.
gccadmin [Thu, 10 May 2018 00:16:21 +0000 (00:16 +0000)] 
Daily bump.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@260104 138bc75d-0d04-0410-961f-82ee72b054a4

7 years ago go/build, cmd/go: update to match recent changes to gc
ian [Wed, 9 May 2018 21:49:47 +0000 (21:49 +0000)] 
go/build, cmd/go: update to match recent changes to gc

    Several recent changes to the gc version of cmd/go improve the
    gofrontend support. These changes are partially copies of existing
    gofrontend differences, and partially new code. This CL makes the
    gofrontend match the upstream code.

    The changes included here come from:
        https://golang.org/cl/111575
        https://golang.org/cl/111595
        https://golang.org/cl/111635
        https://golang.org/cl/111636

    For the record, the following recent gc changes are based on code
    already present in the gofrontend repo:
        https://golang.org/cl/110915
        https://golang.org/cl/111615

    For the record, a gc change, partially based on earlier gofrontend
    work, also with new gc code, was already copied to gofrontend repo in
    CL 111099:
        https://golang.org/cl/111097

    This moves the generated list of standard library packages from
    cmd/go/internal/load to go/build.

    Reviewed-on: https://go-review.googlesource.com/112475

gotools/:
* Makefile.am (check-go-tool): Don't copy zstdpkglist.go.
* Makefile.in: Rebuild.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@260097 138bc75d-0d04-0410-961f-82ee72b054a4

7 years agoRISC-V: Add with-multilib-list support.
wilson [Wed, 9 May 2018 21:17:14 +0000 (21:17 +0000)] 
RISC-V: Add with-multilib-list support.

gcc/
PR target/84797
* config.gcc (riscv*-*-*): Handle --with-multilib-list.
* config/riscv/t-withmultilib: New.
* config/riscv/withmultilib.h: New.
* doc/install.texi: Document RISC-V --with-multilib-list support.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@260096 138bc75d-0d04-0410-961f-82ee72b054a4

7 years ago2018-05-09 François Dumont <fdumont@gcc.gnu.org>
fdumont [Wed, 9 May 2018 20:04:46 +0000 (20:04 +0000)] 
2018-05-09  François Dumont  <fdumont@gcc.gnu.org>

* include/debug/safe_iterator.h (_Safe_iterator<>::_M_constant()):
Rename in...
(_Safe_iterator<>::_S_constant()): ...that.
* include/debug/safe_local_iterator.h
(_Safe_local_iterator<>::_M_constant()): Rename in...
(_Safe_local_iterator<>::_S_constant()): ...that.
* include/debug/formatter.h: Remove bits/cpp_type_traits.h include.
(_Iterator_state::__rbegin): New.
(_Iterator_state::__rmiddle): New.
(_Iterator_state::__rend): New.
(_Parameter::_Parameter(const _Safe_iterator<>&, const char*,
_Is_iterator)): Use _Safe_iterator<>::_S_constant. Grab normal underlying
iterator type.
(_Parameter::_Parameter(const _Safe_local_iterator<>&, const char*,
_Is_iterator)): Likewise.
(_Parameter::_S_reverse_state(_Iterator_state)): New.
        (_Parameter(__gnu_cxx::__normal_iterator<> const&, const char*,
_Is_iterator)): New.
(_Parameter(std::reverse_iterator<> const&, const char*,
_Is_iterator)): New.
(_Parameter(std::reverse_iterator<_Safe_iterator<>> const&,
const char*, _Is_iterator)): New.
(_Parameter(std::move_iterator<> const&, const char*, _Is_iterator):
New.
(_Parameter(std::move_iterator<_Safe_iterator<>> const&, const char*,
_Is_iterator)): New.
* testsuite/24_iterators/move_iterator/debug_neg.cc: New.
* testsuite/24_iterators/normal_iterator/debug_neg.cc: New.
* testsuite/24_iterators/reverse_iterator/debug_neg.cc: New.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@260093 138bc75d-0d04-0410-961f-82ee72b054a4

7 years ago2018-05-09 Paolo Carlini <paolo.carlini@oracle.com>
paolo [Wed, 9 May 2018 19:46:47 +0000 (19:46 +0000)] 
2018-05-09  Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/85713
* g++.dg/cpp1y/lambda-generic-85713.C: New.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@260092 138bc75d-0d04-0410-961f-82ee72b054a4

7 years agogcc/testsuite/ChangeLog:
carll [Wed, 9 May 2018 19:21:24 +0000 (19:21 +0000)] 
gcc/testsuite/ChangeLog:

2018-05-09 Carl Love  <cel@us.ibm.com>
* gcc.target/powerpc/builtins-8-runnable.c: New builtin test file.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@260090 138bc75d-0d04-0410-961f-82ee72b054a4