Jakub Jelinek [Fri, 19 Aug 2016 15:30:33 +0000 (17:30 +0200)]
re PR fortran/71014 (associate statement inside omp parallel do appears to disable default private attribute for inner loop indices)
PR fortran/71014
* resolve.c (gfc_resolve): For ns->construct_entities don't save, clear
and restore omp state around the resolving.
* testsuite/libgomp.fortran/pr71014.f90: New test.
From-SVN: r239620
Jakub Jelinek [Fri, 19 Aug 2016 15:28:59 +0000 (17:28 +0200)]
re PR fortran/72744 (ICE in verify_ssa, at tree-ssa.c:1039)
PR fortran/72744
* gfortran.dg/gomp/pr72744.f90: New test.
From-SVN: r239619
Jakub Jelinek [Fri, 19 Aug 2016 15:27:40 +0000 (17:27 +0200)]
re PR fortran/69281 (gfortran ICE on temporary array in function call with -fstack-arrays -fopenmp)
PR fortran/69281
* trans-openmp.c (gfc_trans_omp_parallel, gfc_trans_omp_task,
gfc_trans_omp_target): Wrap gfc_trans_omp_code result in an extra
BIND_EXPR with its own forced BLOCK.
* gfortran.dg/gomp/pr69281.f90: New test.
From-SVN: r239618
Jakub Jelinek [Fri, 19 Aug 2016 15:25:05 +0000 (17:25 +0200)]
rdseedintrin.h (_rdseed16_step, [...]): Uglify argument names and/or local variable names in inline functions.
* config/i386/rdseedintrin.h (_rdseed16_step, _rdseed32_step,
_rdseed64_step): Uglify argument names and/or local variable names
in inline functions.
* config/i386/rtmintrin.h (_xabort): Likewise.
* config/i386/avx512vlintrin.h (_mm256_ternarylogic_epi64,
_mm256_mask_ternarylogic_epi64, _mm256_maskz_ternarylogic_epi64,
_mm256_ternarylogic_epi32, _mm256_mask_ternarylogic_epi32,
_mm256_maskz_ternarylogic_epi32, _mm_ternarylogic_epi64,
_mm_mask_ternarylogic_epi64, _mm_maskz_ternarylogic_epi64,
_mm_ternarylogic_epi32, _mm_mask_ternarylogic_epi32,
_mm_maskz_ternarylogic_epi32): Likewise.
* config/i386/lwpintrin.h (__llwpcb, __lwpval32, __lwpval64,
__lwpins32, __lwpins64): Likewise.
* config/i386/avx2intrin.h (_mm_i32gather_pd, _mm_mask_i32gather_pd,
_mm256_i32gather_pd, _mm256_mask_i32gather_pd, _mm_i64gather_pd,
_mm_mask_i64gather_pd, _mm256_i64gather_pd, _mm256_mask_i64gather_pd,
_mm_i32gather_ps, _mm_mask_i32gather_ps, _mm256_i32gather_ps,
_mm256_mask_i32gather_ps, _mm_i64gather_ps, _mm_mask_i64gather_ps,
_mm256_i64gather_ps, _mm256_mask_i64gather_ps, _mm_i32gather_epi64,
_mm_mask_i32gather_epi64, _mm256_i32gather_epi64,
_mm256_mask_i32gather_epi64, _mm_i64gather_epi64,
_mm_mask_i64gather_epi64, _mm256_i64gather_epi64,
_mm256_mask_i64gather_epi64, _mm_i32gather_epi32,
_mm_mask_i32gather_epi32, _mm256_i32gather_epi32,
_mm256_mask_i32gather_epi32, _mm_i64gather_epi32,
_mm_mask_i64gather_epi32, _mm256_i64gather_epi32,
_mm256_mask_i64gather_epi32): Likewise.
* config/i386/pmm_malloc.h (_mm_malloc, _mm_free): Likewise.
* config/i386/ia32intrin.h (__writeeflags): Likewise.
* config/i386/pkuintrin.h (_wrpkru): Likewise.
* config/i386/avx512pfintrin.h (_mm512_mask_prefetch_i32gather_pd,
_mm512_mask_prefetch_i32gather_ps, _mm512_mask_prefetch_i64gather_pd,
_mm512_mask_prefetch_i64gather_ps, _mm512_prefetch_i32scatter_pd,
_mm512_prefetch_i32scatter_ps, _mm512_mask_prefetch_i32scatter_pd,
_mm512_mask_prefetch_i32scatter_ps, _mm512_prefetch_i64scatter_pd,
_mm512_prefetch_i64scatter_ps, _mm512_mask_prefetch_i64scatter_pd,
_mm512_mask_prefetch_i64scatter_ps): Likewise.
* config/i386/gmm_malloc.h (_mm_malloc, _mm_free): Likewise.
* config/i386/avx512fintrin.h (_mm512_ternarylogic_epi64,
_mm512_mask_ternarylogic_epi64, _mm512_maskz_ternarylogic_epi64,
_mm512_ternarylogic_epi32, _mm512_mask_ternarylogic_epi32,
_mm512_maskz_ternarylogic_epi32, _mm512_i32gather_ps,
_mm512_mask_i32gather_ps, _mm512_i32gather_pd, _mm512_i64gather_ps,
_mm512_i64gather_pd, _mm512_i32gather_epi32, _mm512_i32gather_epi64,
_mm512_i64gather_epi32, _mm512_i64gather_epi64): Likewise.
From-SVN: r239617
Jakub Jelinek [Fri, 19 Aug 2016 15:24:22 +0000 (17:24 +0200)]
fxsrintrin.h (_fxsave): Remove return keyword in inlines returning void.
* config/i386/fxsrintrin.h (_fxsave): Remove return keyword in inlines
returning void.
(_fxrstor, _fxsave64, _fxrstor64): Likewise.
* config/i386/xsaveintrin.h (_xsave, _xrstor, _xsave64, _xrstor64):
Likewise.
* config/i386/xsaveoptintrin.h (_xsaveopt, _xsaveopt64): Likewise.
* config/i386/pkuintrin.h (_wrpkru): Likewise. Add space after
function name.
(_rdpkru_u32): Add space after function name.
From-SVN: r239616
Jakub Jelinek [Fri, 19 Aug 2016 15:23:42 +0000 (17:23 +0200)]
t-i386 (i386-c.o): Don't depend on i386-builtin-types.inc.
* config/i386/t-i386 (i386-c.o): Don't depend on
i386-builtin-types.inc.
(i386.o): Depend on i386-builtin-types.inc.
From-SVN: r239615
Janne Blomqvist [Fri, 19 Aug 2016 14:19:51 +0000 (17:19 +0300)]
Use a XOR cipher instead of byte shuffling to protect against bad seeds.
libgfortran:
2016-08-19 Janne Blomqvist <jb@gcc.gnu.org>
* intrinsics/random.c (xor_keys): New array with "secret" keys.
(scramble_seed): XOR given seed with xor_keys array rather than
shuffling bytes.
(unscramble_seed): Remove function.
(random_seed_i4): Use new scramble_seed.
(random_seed_i8): Likewise.
frontend:
2016-08-19 Janne Blomqvist <jb@gcc.gnu.org>
* intrinsics.texi (RANDOM_NUMBER): Remove reference to
init_random_seed in example.
(RANDOM_SEED): Remove warning to not set all seed values to 0.
From-SVN: r239613
Janne Blomqvist [Fri, 19 Aug 2016 14:12:32 +0000 (17:12 +0300)]
Always initialize PRNG using random data from the OS.
libgfortran:
2016-08-16 Janne Blomqvist <jb@gcc.gnu.org>
* intrinsics/random.c (master_init): New variable.
(init_rand_state): Move below getosrandom (), maybe initialize
master_state.
(random_seed_i4): If called with no arguments, set master_init to
false, and reinitialize. If called with PUT=, set master_init to
true.
(random_seed_i8): Likewise.
testsuite:
2016-08-16 Janne Blomqvist <jb@gcc.gnu.org>
* gfortran.dg/random_4.f90: Initialize seed before using, handle
the last special seed value.
* gfortran.dg/random_7.f90: Use size for last array member instead
of hardcoded value.
From-SVN: r239611
Matthew Wahab [Fri, 19 Aug 2016 13:59:18 +0000 (13:59 +0000)]
[ARM] Fix an invalid check for vectors of the same floating-point constants.
2016-08-19 Matthew Wahab <matthew.wahab@arm.com>
PR target/77281
* config/arm/arm.c (neon_valid_immediate): Delete declaration.
Use const_vec_duplicate to check for duplicated elements.
From-SVN: r239610
Prathamesh Kulkarni [Fri, 19 Aug 2016 13:17:09 +0000 (13:17 +0000)]
expr.c (eval_token): Append "evaluates to 0" to Wundef diagnostic.
2016-08-19 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
libcpp/
* expr.c (eval_token): Append "evaluates to 0" to Wundef diagnostic.
testsuite/
* gcc.dg/cpp/warn-undef.c: Append "evaluates to 0" to dg-error.
* gcc.dg/cpp/warn-undef-2.c: Likewise.
From-SVN: r239609
Jonathan Wakely [Fri, 19 Aug 2016 08:16:13 +0000 (09:16 +0100)]
Update C++17 library status table
* doc/xml/manual/status_cxx2017.xml: Update status of make_from_tuple
and variant.
* doc/html/*: Regenerate.
From-SVN: r239608
Richard Biener [Fri, 19 Aug 2016 07:43:11 +0000 (07:43 +0000)]
re PR tree-optimization/77290 (test case gcc.dg/tree-ssa/pr71347.c fails starting with r239565)
2016-08-19 Richard Biener <rguenther@suse.de>
PR tree-optimization/77290
* tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
Fix flag_tree_parallelize_loops check.
From-SVN: r239607
Richard Biener [Fri, 19 Aug 2016 07:03:48 +0000 (07:03 +0000)]
match.pd (x | 0 -> x): Add.
2016-08-19 Richard Biener <rguenther@suse.de>
* match.pd (x | 0 -> x): Add.
From-SVN: r239606
Richard Biener [Fri, 19 Aug 2016 07:02:05 +0000 (07:02 +0000)]
re PR tree-optimization/77286 (ICE in fold_convert_loc, at fold-const.c:2248 building 435.gromacs)
2016-08-19 Richard Biener <rguenther@suse.de>
PR tree-optimization/77286
* tree-vect-loop-manip.c (slpeel_duplicate_current_defs_from_edges):
Deal with virtual PHIs being out-of-order.
* gcc.dg/torture/pr77286.c: New testcase.
From-SVN: r239605
David Malcolm [Fri, 19 Aug 2016 00:18:18 +0000 (00:18 +0000)]
Add source information to -fverbose-asm
gcc/ChangeLog:
* doc/invoke.texi (fverbose-asm): Note that source code lines
are emitted, and provide an example.
* final.c (asm_show_source): New function.
(final_scan_insn): Call asm_show_source.
From-SVN: r239604
GCC Administrator [Fri, 19 Aug 2016 00:16:14 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r239603
Ville Voutilainen [Thu, 18 Aug 2016 20:33:57 +0000 (23:33 +0300)]
Implement the latest proposed resolution of LWG 2756.
* include/std/optional (Optional_base(const _Tp&))
(Optional_base(_Tp&&), using _Base::_Base): Remove.
(optional(nullopt_t)): New.
(optional(_Up&&)): Invoke base directly with in_place
rather than creating a temporary, add default template
argument, change constraints.
(optional(const optional<_Up>&)): Invoke base directly
with in_place, remove unnecessary constraints.
(optional(optional<_Up>&& __t)): Likewise.
(optional(in_place_t, _Args&&...)): New.
(optional(in_place_t, initializer_list<_Up>, _Args&&...)): Likewise.
(operator=(_Up&&)): Add default template argument, change constraints.
(operator=(const optional<_Up>&)): Put is_same first in the
constraints.
(operator=(optional<_Up>&&)): Likewise.
* testsuite/20_util/optional/assignment/5.cc: Add a test to
verify assignment from something that can't be perfect-forwarded.
* testsuite/20_util/optional/cons/value.cc: Add tests to verify
that a nested optional is disengaged when constructed
from a disengaged element type, and to verify that assignments
from an engaged element type engage the optional.
From-SVN: r239593
Tim Shen [Thu, 18 Aug 2016 20:31:26 +0000 (20:31 +0000)]
Implement <variant>
* include/Makefile.am: Add new file std/variant.
* include/Makefile.in: Generated from Makefile.am.
* include/bits/enable_special_members.h: Add a tag type to allow
the construction in non-default constructor.
* include/bits/uses_allocator.h: Add convenience traits to
detect constructibility.
* include/std/variant: Implement <variant>.
* testsuite/20_util/variant/compile.cc: Compile-time tests.
* testsuite/20_util/variant/run.cc: Runtime tests.
From-SVN: r239590
David Malcolm [Thu, 18 Aug 2016 19:12:54 +0000 (19:12 +0000)]
Allow calling diagnostic_show_locus without a diagnostic_info
Much of diagnostic-show-locus.c currently expects a diagnostic_info *,
but it only uses the rich_location and the diagnostic_t.
Change the signature of diagnostic_show_locus from:
void
diagnostic_show_locus (diagnostic_context *,
const diagnostic_info *);
to:
void
diagnostic_show_locus (diagnostic_context *,
rich_location *richloc,
diagnostic_t diagnostic_kind);
so that it can be used for things other than diagnostics.
Use this flexibility to add selftests for diagnostic_show_locus.
gcc/c-family/ChangeLog:
* c-opts.c (c_diagnostic_finalizer): Update for change to
diagnostic_show_locus.
gcc/ChangeLog:
* diagnostic-show-locus.c (colorizer::colorizer): Replace diagnostic
param with diagnostic_kind.
(class colorizer): Similarly replace field m_diagnostic with
m_diagnostic_kind.
(colorizer::colorizer): Replace diagnostic
param with diagnostic_kind.
(colorizer::begin_state): Update for above field change.
(layout::layout): Replace diagnostic param with rich_location *
and diagnostic_kind.
(diagnostic_show_locus): Replace diagnostic param with richloc
and diagnostic_kind.
(class selftest::test_diagnostic_context): New class.
(selftest::test_diagnostic_show_locus_unknown_location): New
function.
(selftest::test_one_liner_simple_caret): New function.
(selftest::test_one_liner_caret_and_range): New function.
(selftest::test_one_liner_multiple_carets_and_ranges): New
function.
(selftest::test_one_liner_fixit_remove): New function.
(selftest::test_one_liner_fixit_replace): New function.
(selftest::test_diagnostic_show_locus_one_liner): New function.
(selftest::diagnostic_show_locus_c_tests): Call the new test
functions.
* diagnostic.c (diagnostic_initialize): Initialize
colorize_source_p, show_ruler_p and parseable_fixits_p.
(default_diagnostic_finalizer): Update for change to
diagnostic_show_locus.
(diagnostic_append_note): Likewise.
* diagnostic.h (diagnostic_show_locus): Replace
const diagnostic_info * param with location * and diagnostic_t.
gcc/fortran/ChangeLog:
* error.c (gfc_diagnostic_starter): Update for change to
diagnostic_show_locus.
gcc/testsuite/ChangeLog:
* gcc.dg/plugin/diagnostic_plugin_test_show_locus.c
(custom_diagnostic_finalizer): Update for change to
diagnostic_show_locus.
From-SVN: r239586
David Malcolm [Thu, 18 Aug 2016 18:52:43 +0000 (18:52 +0000)]
Spelling suggestions for misspelled preprocessor directives
This patch allows the preprocessor to offer suggestions for misspelled
directives, taking us from e.g.:
test.c:5:2: error: invalid preprocessing directive #endfi
#endfi
^~~~~
to:
test.c:5:2: error: invalid preprocessing directive #endfi; did you mean #endif?
#endfi
^~~~~
endif
gcc/c-family/ChangeLog:
* c-common.c: Include "spellcheck.h".
(cb_get_suggestion): New function.
* c-common.h (cb_get_suggestion): New decl.
* c-lex.c (init_c_lex): Initialize cb->get_suggestion to
cb_get_suggestion.
gcc/testsuite/ChangeLog:
* gcc.dg/cpp/misspelled-directive-1.c: New testcase.
* gcc.dg/cpp/misspelled-directive-2.c: New testcase.
libcpp/ChangeLog:
* directives.c (directive_names): New array.
(_cpp_handle_directive): Offer spelling suggestions for misspelled
directives.
* errors.c (cpp_diagnostic_at_richloc): New function.
(cpp_error_at_richloc): New function.
* include/cpplib.h (struct cpp_callbacks): Add field
"get_suggestion".
(cpp_error_at_richloc): New decl.
From-SVN: r239585
Marek Polacek [Thu, 18 Aug 2016 16:38:49 +0000 (16:38 +0000)]
re PR c/71514 (ICE on C11 code with atomic exchange at -O1 and above on x86_64-linux-gnu: in copy_reference_ops_from_ref, at tree-ssa-sccvn.c:879)
PR c/71514
* c-common.c (get_atomic_generic_size): Disallow pointer-to-function
and pointer-to-VLA.
* gcc.dg/pr71514.c: New test.
From-SVN: r239581
David Malcolm [Thu, 18 Aug 2016 16:22:10 +0000 (16:22 +0000)]
selftest.h: add class line_table_test
input.c has a fixture class for running each selftest with a fresh
line_table, and logic for looping over various interesting line_table
test cases.
This patch exposes the above in selftest.h so that such
location-handling tests can be written in other files, renaming the
class from temp_line_table to line_table_test.
Also, the patch moves the stored line table ptr from being a member of
the test class to being a global GC-root, to avoid it being collected
if the GC runs during such a test.
gcc/ChangeLog:
* input.c (saved_line_table): New global.
(class selftest::temp_line_table): Rename to line_table_test and
move declaration to selftest.h, and drop field m_old_line_table.
(selftest::temp_line_table::temp_line_table): Rename ctor to...
(selftest::line_table_test::line_table_test): ...this. Add a
default ctor. Store current value of line_table within
saved_line_table.
(selftest::temp_line_table::~temp_line_table): Rename dtor to...
(selftest::line_table_test::~line_table_test): ...this, and
restore line_table from the saved_line_table, rather than
m_old_line_table.
(selftest::test_accessing_ordinary_linemaps): Update for above
renaming.
(selftest::test_lexer): Likewise.
(struct selftest::lexer_test): Likewise.
(selftest::lexer_test::lexer_test): Likewise.
(selftest::input_c_tests): Move the looping over test cases from
here into...
(selftest::for_each_line_table_case): New function.
* input.h (saved_line_table): New decl.
* selftest.h (struct selftest::line_table_case): New forward decl.
(class selftest::line_table_test): New class, moved here from
selftest::temp_line_table in input.c, and renamed.
(selftest::for_each_line_table_case): New decl.
From-SVN: r239580
H.J. Lu [Thu, 18 Aug 2016 14:59:46 +0000 (14:59 +0000)]
Increase MOVE_RATIO to 17 for Lakemont
Larger MOVE_RATIO will always make code faster. 17 is the number with
smaller code sizes for Lakemont.
gcc/
PR target/72839
* config/i386/i386.c (lakemont_cost): Set MOVE_RATIO to 17.
gcc/testsuite/
PR target/72839
* gcc.target/i386/pr72839.c: New test.
From-SVN: r239578
Chung-Lin Tang [Thu, 18 Aug 2016 14:46:19 +0000 (14:46 +0000)]
re PR middle-end/70895 (OpenACC: loop reduction does not work. Output is zero.)
2016-08-18 Chung-Lin Tang <cltang@codesourcery.com>
PR middle-end/70895
gcc/
* gimplify.c (omp_add_variable): Adjust/add variable mapping on
enclosing parallel construct for reduction variables on OpenACC loop
directives.
gcc/testsuite/
* gfortran.dg/goacc/loop-tree-1.f90: Add gimple scan-tree-dump test.
* c-c++-common/goacc/reduction-1.c: Likewise.
* c-c++-common/goacc/reduction-2.c: Likewise.
* c-c++-common/goacc/reduction-3.c: Likewise.
* c-c++-common/goacc/reduction-4.c: Likewise.
libgomp/
* testsuite/libgomp.oacc-fortran/reduction-7.f90: Add explicit
firstprivate clauses.
* testsuite/libgomp.oacc-fortran/reduction-6.f90: Remove explicit
copy clauses.
* testsuite/libgomp.oacc-c-c++-common/reduction-7.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/reduction-cplx-flt.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/reduction-flt.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/collapse-2.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/loop-red-wv-1.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/collapse-4.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/loop-red-v-1.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/reduction-cplx-dbl.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/loop-red-g-1.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/loop-red-gwv-1.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/loop-red-w-1.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/reduction-dbl.c: Likewise.
From-SVN: r239576
Pierre-Marie de Rodat [Thu, 18 Aug 2016 14:39:22 +0000 (14:39 +0000)]
DWARF: do not emit DW_TAG_variable to materialize DWARF procedures
Hello,
For -gdwarf-3 and newer, the DWARF back-end sometimes generates DWARF
procedures to factorize complex location descriptions. DWARF procedures
can be materialized as DW_TAG_dwarf_procedure DIEs, but actually any DIE
that can hold a DW_AT_location attribute is also accepted.
Unlike what I thought at some point, the DW_TAG_dwarf_procedure tag was
introduced in the DWARFv3 standard, not the DWARFv4 one, so the back-end
can always emit DW_TAG_dwarf_procedure DIEs, as this simplifies code and
prevents the types pruning pass from missing a DWARF procedure.
Boostrapped and regtested on x86_64-linux: no regression. Ok to commit?
Thank you in advance!
gcc/
* dwarf2out.c (copy_dwarf_procedure): Remove obsolete comment.
(new_dwarf_proc_die): Emit DW_TAG_dwarf_procedure DIEs even for
-gdwarf-3.
(function_to_dwarf_procedure): Update comment.
From-SVN: r239575
Jonathan Wakely [Thu, 18 Aug 2016 13:47:42 +0000 (14:47 +0100)]
Expand libstdc++ docs on testing
* doc/xml/manual/test.xml (test.run.permutations): Expand section.
(test.new_tests): Rewrite section.
(tests.dg.directives): New section.
* doc/html/*: Regenerate.
From-SVN: r239574
Jonathan Wakely [Thu, 18 Aug 2016 13:47:37 +0000 (14:47 +0100)]
Improve documentation of libstdc++ test targets
* doc/xml/manual/test.xml: Improve documentation of test targets.
Document new-abi-baseline, check-debug, and check-parallel targets.
From-SVN: r239573
Jonathan Wakely [Thu, 18 Aug 2016 13:47:33 +0000 (14:47 +0100)]
Document libstdc++.so versioning in manual
* doc/xml/manual/build_hacking.xml: New section on shared library
versioning.
From-SVN: r239572
Jonathan Wakely [Thu, 18 Aug 2016 13:47:28 +0000 (14:47 +0100)]
Improve markup in libstdc++ manual
* doc/xml/manual/build_hacking.xml: Improve markup.
* doc/xml/manual/test.xml: Likewise. Change section title from "Test"
to "Testing".
* doc/xml/faq.xml: Change link text to "Testing".
From-SVN: r239571
David Malcolm [Thu, 18 Aug 2016 13:07:53 +0000 (13:07 +0000)]
Evict selftest tempfiles from the diagnostics file cache
Selftests can use class selftest::temp_source_file to write out files
for testing input-handling, and the files are unlinked in the dtor.
This leads to stale entries in input.c's cache of file content, which
could lead to errors if a temporary filename gets reused during a run
of the selftests.
We don't normally expect files to be "deleted from under us", so
special-case this by adding a special way for temp_source_file's
dtor to purge any cache entries referring to it.
gcc/ChangeLog:
* input.c (diagnostics_file_cache_forcibly_evict_file): New
function.
* input.h (diagnostics_file_cache_forcibly_evict_file): New
declaration.
* selftest.c (selftest::temp_source_file::~temp_source_file):
Evict m_filename from the diagnostic file cache.
From-SVN: r239570
Richard Biener [Thu, 18 Aug 2016 10:41:53 +0000 (10:41 +0000)]
tree-pass.h (make_pass_materialize_all_clones): Declare.
2016-08-18 Richard Biener <rguenther@suse.de>
* tree-pass.h (make_pass_materialize_all_clones): Declare.
* ipa.c (pass_data_materialize_all_clones, pass_materialize_all_clones,
make_pass_materialize_all_clones): New simple IPA pass encapsulating
clone materialization.
* passes.def (all_late_ipa_passes): Start with
pass_materialize_all_clones.
* cgraphunit.c (symbol_table::compile): Remove call to
materialize_all_clones.
* tree-into-ssa.c: Include statistics.h.
(update_ssa): Count number of times we do incremental/rewrite
SSA update.
From-SVN: r239567
Marek Polacek [Thu, 18 Aug 2016 10:28:03 +0000 (10:28 +0000)]
re PR c/7652 (-Wswitch-break : Warn if a switch case falls through)
PR c/7652
gcc/cp/
* call.c (add_builtin_candidate): Add gcc_fallthrough.
* cxx-pretty-print.c (pp_cxx_unqualified_id): Likewise.
* parser.c (cp_parser_skip_to_end_of_statement): Likewise.
(cp_parser_cache_defarg): Likewise.
libcpp/
* pch.c (write_macdef): Add CPP_FALLTHRU.
From-SVN: r239566
Richard Biener [Thu, 18 Aug 2016 10:06:03 +0000 (10:06 +0000)]
re PR tree-optimization/77282 (test case gcc.dg/autopar/pr46193.c fails starting with r239414)
2016-08-18 Richard Biener <rguenther@suse.de>
PR tree-optimization/77282
* tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
When doing auto-parallelizing also prevent use of PHIs that
carry dependences across loop backedges.
From-SVN: r239565
Jonathan Wakely [Thu, 18 Aug 2016 09:58:28 +0000 (10:58 +0100)]
Remove unintended dg-options directive
* testsuite/tr1/3_function_objects/function/10.cc: Remove unintended
dg-options directive.
From-SVN: r239564
Tamar Christina [Thu, 18 Aug 2016 08:45:53 +0000 (08:45 +0000)]
[PATCH] [GCC] Don't use section anchors for declarations that don't fit in a single anchor range
On behalf of Tamar Christina <tamar.christina@arm.com>.
gcc/
* varasm.c (default_use_anchors_for_symbol_p): Reject too large decls.
Co-Authored-By: Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
From-SVN: r239561
Richard Biener [Thu, 18 Aug 2016 07:21:11 +0000 (07:21 +0000)]
ssa-iterators.h (ssa_vuse_operand): New inline.
2016-08-18 Richard Biener <rguenther@suse.de>
* ssa-iterators.h (ssa_vuse_operand): New inline.
* tree-if-conv.c (ifc_temp_var): Update virtual operand.
(predicate_all_scalar_phis): Use remove_phi_node to remove
phi nodes predicated. Delay removing virtual PHIs.
(predicate_mem_writes): Update virtual operands.
(combine_blocks): Likewise. Propagate out remaining virtual PHIs.
(tree_if_conversion): Do not rewrite virtual SSA form.
* tree-phinodes.c (release_phi_node): Make static.
* tree-phinodes.h (release_phi_node): Remove.
From-SVN: r239560
Jakub Jelinek [Thu, 18 Aug 2016 06:58:46 +0000 (08:58 +0200)]
i386.c (enum ix86_builtins): Remove IX86_BUILTIN_* codes that appear in bdesc_* arrays...
* config/i386/i386.c (enum ix86_builtins): Remove IX86_BUILTIN_*
codes that appear in bdesc_* arrays, instead include i386-builtin.def
twice to define those.
(bdesc_comi, bdesc_pcmpestr, bdesc_pcmpistr, bdesc_special_args,
bdesc_args, bdesc_round_args, bdesc_mpx, bdesc_mpx_const,
bdesc_multi_arg): Define by including i386-builtin.def the third time.
* config/i386/i386-builtin.def: New file.
From-SVN: r239559
GCC Administrator [Thu, 18 Aug 2016 00:16:13 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r239553
David Malcolm [Thu, 18 Aug 2016 00:13:26 +0000 (00:13 +0000)]
input.c: move test functions within #CHECKING_P and into selftest::
gcc/ChangeLog:
* input.c (get_source_range_for_char): Rename to...
(selftest::get_source_range_for_char): ...this, and move within
the #if CHECKING_P guard.
(get_num_source_ranges_for_substring): Rename to...
(selftest::get_num_source_ranges_for_substring): ...this, move
within the #if CHECKING_P guard, and make static.
(selftest::assert_num_substring_ranges): Initialize
actual_num_ranges.
From-SVN: r239550
Alan Modra [Wed, 17 Aug 2016 22:41:22 +0000 (08:11 +0930)]
[RELOAD] Don't assume subreg mem address is ok
This patch fixes a case where reload blindly assumes a subreg mem is
OK if its address has been partially reloaded by legitimize_reload_address.
PR rtl-optimization/72771
* reload.c (find_reloads): Don't assume that a subreg mem is OK
when find_reloads_toplev returns address_reloaded==-1.
(alternative_allows_const_pool_ref): Update comment.
testsuite/
* gcc.c-torture/compile/pr72771.c: New.
From-SVN: r239549
Jonathan Wakely [Wed, 17 Aug 2016 19:58:44 +0000 (20:58 +0100)]
Fix invalid dg-do directive
* testsuite/20_util/reference_wrapper/invoke-2.cc: Fix invalid dg-do
directive and use effective target instead of dg-options.
From-SVN: r239548
Jonathan Wakely [Wed, 17 Aug 2016 19:43:13 +0000 (20:43 +0100)]
Use effective target instead of -std in dg-options
* testsuite/20_util/hash/chi2_q_bit_flip_set.cc: Use effective target
instead of -std in dg-options.
* testsuite/20_util/hash/chi2_q_bit_string_set.cc: Likewise.
* testsuite/20_util/hash/chi2_q_numeric_pattern_set.cc: Likewise.
* testsuite/20_util/hash/chi2_q_uniform_random.cc: Likewise.
* testsuite/20_util/hash/quality.cc: Likewise.
* testsuite/25_algorithms/heap/moveable.cc: Likewise.
* testsuite/25_algorithms/heap/moveable2.cc: Likewise.
* testsuite/25_algorithms/nth_element/random_test.cc: Likewise.
* testsuite/25_algorithms/partial_sort/random_test.cc: Likewise.
* testsuite/25_algorithms/partial_sort_copy/random_test.cc: Likewise.
* testsuite/25_algorithms/sort/random_test.cc: Likewise.
From-SVN: r239547
Jonathan Wakely [Wed, 17 Aug 2016 19:23:15 +0000 (20:23 +0100)]
Add c++11 effective target to tests for C++11 features
* testsuite/20_util/tuple/67844.cc: Require c++11 effective target.
* testsuite/20_util/tuple/cons/nested_tuple_construct.cc: Likewise.
* testsuite/27_io/rvalue_streams.cc: Likewise.
From-SVN: r239545
Jakub Jelinek [Wed, 17 Aug 2016 19:08:49 +0000 (21:08 +0200)]
re PR fortran/67496 (trans-array.c sanitizer runtime error: load of value 124, which is not a valid value for type 'bool')
PR fortran/67496
* trans-array.c (trans_array_constructor): Load
expr->ts.u.cl->length_from_typespec only if expr->ts.type is
BT_CHARACTER.
* gfortran.dg/pr67496.f90: New test.
From-SVN: r239544
Jonathan Wakely [Wed, 17 Aug 2016 16:09:15 +0000 (17:09 +0100)]
Add comment explaining why -std=c++14 is needed.
* testsuite/26_numerics/complex/literals/types.cc: Add comment.
From-SVN: r239543
Alan Hayward [Wed, 17 Aug 2016 15:31:44 +0000 (15:31 +0000)]
re PR tree-optimization/71752 (ICE in compute_live_loop_exits, at tree-ssa-loop-manip.c:229 w/ -O1 -ftree-vectorize)
2015-08-17 Alan Hayward <alan.hayward@arm.com>
PR tree-optimization/71752
* tree-vect-loop.c (vectorizable_reduction): Keep SLP operand ordering.
* tree-vect-slp.c (vect_get_slp_defs): Handle null operands.
PR tree-optimization/71752
* gcc.dg/vect/pr71752.c: New
From-SVN: r239542
Uros Bizjak [Wed, 17 Aug 2016 14:33:20 +0000 (16:33 +0200)]
dec_init_2.f90: Use dg-add-options ieee.
* gfortran.dg/dec_init_2.f90: Use dg-add-options ieee.
From-SVN: r239540
Jakub Jelinek [Wed, 17 Aug 2016 14:24:53 +0000 (16:24 +0200)]
gimple-fold.c (gimple_fold_call): Use gimple_call_noreturn_p instead of testing ECF_NORETURN bit in gimple_call_flags.
* gimple-fold.c (gimple_fold_call): Use gimple_call_noreturn_p
instead of testing ECF_NORETURN bit in gimple_call_flags.
* tree-cfg.c (make_edges_bb, execute_fixup_cfg): Likewise.
* predict.c (tree_bb_level_predictions): Likewise.
* gimple-low.c (gimple_stmt_may_fallthru): Likewise.
From-SVN: r239539
Jonathan Wakely [Wed, 17 Aug 2016 14:11:20 +0000 (15:11 +0100)]
Remove duplicate dg-options directive
* testsuite/21_strings/basic_string_view/operations/rfind/char/2.cc:
Remove duplicate dg-options directive.
From-SVN: r239538
Jakub Jelinek [Wed, 17 Aug 2016 13:56:30 +0000 (15:56 +0200)]
re PR middle-end/77259 (ICE in emit_move_insn since r232167)
PR middle-end/77259
* tree-ssa-pre.c (eliminate_dom_walker::before_dom_children): If
turning a call into __builtin_unreachable-like noreturn call, adjust
gimple_call_set_fntype.
* tree-cfgcleanup.c (fixup_noreturn_call): Remove lhs also if
gimple_call_fntype has void return type.
* g++.dg/ipa/devirt-52.C: New test.
From-SVN: r239537
Jonathan Wakely [Wed, 17 Aug 2016 13:39:14 +0000 (14:39 +0100)]
Adjust DG directives in libstdc++ Profile Mode test
* testsuite/ext/profile/all.cc: Use effective target instead of
-std=gnu++11. Use dg-additional-options instead of repeating options.
From-SVN: r239536
Jonathan Wakely [Wed, 17 Aug 2016 13:39:10 +0000 (14:39 +0100)]
Adjust DG directives in libstdc++ XFAIL test
* testsuite/20_util/bind/ref_neg.cc: Use effective target instead of
-std=gnu++11. Add -fno-show-columns to dg-options. Use dg-prune-output
instead of dg-excess-errors.
From-SVN: r239535
Jonathan Wakely [Wed, 17 Aug 2016 13:39:05 +0000 (14:39 +0100)]
Adjust testcases for C++17 compatibility
* testsuite/26_numerics/headers/cmath/types_std_c++0x_neg.cc: Disable
test for C++17.
* testsuite/experimental/chrono/value.cc: Avoid ambiguities in C++17.
* testsuite/experimental/ratio/value.cc: Likewise.
* testsuite/ext/pb_ds/regression/hash_map_rand.cc: Disable test for
C++17.
* testsuite/ext/pb_ds/regression/hash_set_rand.cc: Likewise.
* testsuite/ext/pb_ds/regression/list_update_map_rand.cc: Likewise.
* testsuite/ext/pb_ds/regression/list_update_set_rand.cc: Likewise.
* testsuite/ext/pb_ds/regression/priority_queue_rand.cc: Likewise.
* testsuite/ext/pb_ds/regression/tree_map_rand.cc: Likewise.
* testsuite/ext/pb_ds/regression/tree_set_rand.cc: Likewise.
* testsuite/ext/pb_ds/regression/trie_map_rand.cc: Likewise.
* testsuite/ext/pb_ds/regression/trie_set_rand.cc: Likewise.
* testsuite/tr1/5_numerical_facilities/special_functions/
10_cyl_bessel_k/airy.cc: Adjust namespace of __detail::__airy for
C++17 compatibility.
From-SVN: r239534
Jonathan Wakely [Wed, 17 Aug 2016 13:38:58 +0000 (14:38 +0100)]
Adjust testcase for C++14 compatibility
* testsuite/24_iterators/headers/iterator/range_access.cc: Adjust
expected signatures for C++14 compatibility.
From-SVN: r239533
Jonathan Wakely [Wed, 17 Aug 2016 13:38:52 +0000 (14:38 +0100)]
PR 77264 constrain new std::basic_string overloads
PR libstdc++/77264
* include/bits/basic_string.h (operator=(__sv_type)
(append(__sv_type), assign(__sv_type), insert(size_type, __sv_type))
(replace(size_type, size_type, __sv_type))
(replace(const_iterator, const_iterator, __sv_type))
(find(__sv_type, size_type), rfind(__sv_type, size_type))
(compare(size_type, size_type, __sv_type)): Reformat.
(_If_sv): Define helper for SFINAE constaints.
(append(const _Tp&, size_type, size_type))
(assign(const _Tp&, size_type, size_type))
(insert(size_type, const _Tp&, size_type, size_type))
(replace(size_type, size_type, const _Tp&, size_type, size_type)):
Use _If_sv.
* testsuite/21_strings/basic_string/modifiers/append/char/4.cc: Test
SFINAE constraints.
* testsuite/21_strings/basic_string/modifiers/append/wchar_t/4.cc:
Likewise.
* testsuite/21_strings/basic_string/modifiers/replace/char/7.cc:
Likewise.
* testsuite/21_strings/basic_string/modifiers/replace/wchar_t/7.cc:
Likewise.
* testsuite/21_strings/basic_string/modifiers/assign/char/4.cc:
Likewise.
* testsuite/21_strings/basic_string/modifiers/assign/wchar_t/4.cc:
Likewise.
* testsuite/21_strings/basic_string/modifiers/insert/char/3.cc:
Likewise.
* testsuite/21_strings/basic_string/modifiers/insert/wchar_t/3.cc:
Likewise.
* testsuite/21_strings/basic_string/modifiers/replace/char/7.cc:
Likewise.
* testsuite/21_strings/basic_string/operations/compare/char/2.cc:
Likewise.
* testsuite/21_strings/basic_string/operations/compare/wchar_t/2.cc:
Likewise.
From-SVN: r239532
Chung-Lin Tang [Wed, 17 Aug 2016 12:08:30 +0000 (12:08 +0000)]
omp-low.c (lower_oacc_reductions): Adjust variable lookup to use maybe_lookup_decl...
2016-08-17 Chung-Lin Tang <cltang@codesourcery.com>
* omp-low.c (lower_oacc_reductions): Adjust variable lookup to use
maybe_lookup_decl, to handle nested acc loop directives.
testsuite/
* c-c++-common/goacc/reduction-6.c: New testcase.
From-SVN: r239530
Richard Biener [Wed, 17 Aug 2016 11:51:51 +0000 (11:51 +0000)]
re PR tree-optimization/76490 (when use -O2 -fcheck-founds compiler appears to hang and consumes all memory)
2016-08-17 Richard Biener <rguenther@suse.de>
PR tree-optimization/76490
* tree-vrp.c (update_value_range): Preserve overflow infinities
when intersecting with ranges from get_range_info.
(operand_less_p): Handle overflow infinities correctly.
(value_range_constant_singleton): Use vrp_operand_equal_p
to handle overflow max/min correctly.
(vrp_valueize): Likewise.
(union_ranges): Likewise.
(intersect_ranges): Likewise.
(vrp_visit_phi_node): Improve iteration limitation to only
apply when we'll possibly re-visit the PHI via a changed argument
on the backedge.
* gfortran.fortran-torture/compile/pr76490.f90: New testcase.
* gcc.dg/pr52904.c: XFAIL.
From-SVN: r239529
Thomas Preud'homme [Wed, 17 Aug 2016 11:15:29 +0000 (11:15 +0000)]
t-aprofile (MULTILIB_EXCEPTIONS): Rewrite into ...
2016-08-17 Thomas Preud'homme <thomas.preudhomme@arm.com>
gcc/
* config/arm/t-aprofile (MULTILIB_EXCEPTIONS): Rewrite into ...
(MULTILIB_REQUIRED): This by specifying multilib needing to be built
rather than those that should not be built.
From-SVN: r239528
Martin Liska [Wed, 17 Aug 2016 10:30:54 +0000 (12:30 +0200)]
mark_spam.py: Mark as spam all comments done by a creator
* mark_spam.py: Mark as spam all comments done by a creator.
From-SVN: r239527
Martin Liska [Wed, 17 Aug 2016 10:30:37 +0000 (12:30 +0200)]
Document branch_changer.py script
* branch_changer.py: Describe the script. Add sample usage
of the script.
From-SVN: r239526
Stanislaw Halik [Wed, 17 Aug 2016 09:34:52 +0000 (11:34 +0200)]
016-08-17 Stanislaw Halik <sthalik@misaki.pl>
PR target/66488
* config/i386/xm-mingw32.h (HOST_BITS_PER_PTR): Define if __x86_64__.
From-SVN: r239525
Richard Biener [Wed, 17 Aug 2016 08:18:47 +0000 (08:18 +0000)]
tree-ssa.c: Include tree-cfg.h and tree-dfa.h.
2016-08-17 Richard Biener <rguenther@suse.de>
* tree-ssa.c: Include tree-cfg.h and tree-dfa.h.
(verify_vssa): New function verifying virtual SSA form.
(verify_ssa): Call it.
* tree-ssa-loop-manip.c (slpeel_update_phi_nodes_for_guard2):
Do not apply loop-closed SSA handling to virtuals.
* ssa-iterators.h (op_iter_init): Handle GIMPLE_TRANSACTION.
* tree-into-ssa.c (prepare_use_sites_for): Skip virtual SSA names
when rewriting their symbol.
(prepare_def_site_for): Likewise.
* tree-chkp-opt.c (chkp_reduce_bounds_lifetime): Clear virtual
operands of moved stmts.
From-SVN: r239524
Richard Biener [Wed, 17 Aug 2016 08:11:32 +0000 (08:11 +0000)]
re PR tree-optimization/23855 (loop header should also be pulled out of the inner loop too)
2016-08-17 Richard Biener <rguenther@suse.de>
PR tree-optimization/23855
* tree-ssa-loop-unswitch.c: Include tree-ssa-loop-manip.h.
(tree_unswitch_outer_loop): Iterate find_loop_guard as long as we
find guards to hoist. Do not update SSA form but rewrite virtuals
into loop closed SSA.
(find_loop_guard): Adjust to skip already hoisted guards. Do
not mark virtuals for renaming or update SSA form.
* gcc.dg/loop-unswitch-2.c: Adjust.
From-SVN: r239523
Martin Liska [Wed, 17 Aug 2016 06:55:35 +0000 (08:55 +0200)]
Do not use LONG_LONG_TYPE_SIZE in #if macro condition
* coverage.c (get_gcov_type): Replace GCOV_TYPE_SIZE with
a LONG_LONG_TYPE_SIZE comparison.
* gcov-io.h: Remove macro definitions.
* tree-profile.c (gimple_gen_edge_profiler): Replace usage
of GCOV_TYPE_ATOMIC_FETCH_ADD with a LONG_LONG_TYPE_SIZE
comparison.
From-SVN: r239522
GCC Administrator [Wed, 17 Aug 2016 00:16:17 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r239518
Jakub Jelinek [Tue, 16 Aug 2016 22:06:45 +0000 (00:06 +0200)]
re PR tree-optimization/72817 (wrong code at -O3 on x86_64-linux-gnu (in both 32-bit and 64-bit modes))
PR tree-optimization/72817
* gcc.dg/tree-ssa/pr72817.c (a): Change type from char to signed char.
From-SVN: r239514
Joseph Myers [Tue, 16 Aug 2016 21:30:56 +0000 (22:30 +0100)]
Update soft-fp from glibc (PR libgcc/77265).
This patch updates soft-fp from glibc, bringing in the fix for PR
libgcc/77265, XFmode extension to TFmode wrongly turning an infinity
into a NaN. A test for that bug is added.
Bootstrapped with no regressions on x86_64-pc-linux-gnu.
PR libgcc/77265
gcc/testsuite:
* gcc.dg/torture/float128-extend-inf.c: New test.
libgcc:
* soft-fp/adddf3.c: Update from glibc.
* soft-fp/addsf3.c: Likewise.
* soft-fp/addtf3.c: Likewise.
* soft-fp/divdf3.c: Likewise.
* soft-fp/divsf3.c: Likewise.
* soft-fp/divtf3.c: Likewise.
* soft-fp/double.h: Likewise.
* soft-fp/eqdf2.c: Likewise.
* soft-fp/eqsf2.c: Likewise.
* soft-fp/eqtf2.c: Likewise.
* soft-fp/extenddftf2.c: Likewise.
* soft-fp/extended.h: Likewise.
* soft-fp/extendsfdf2.c: Likewise.
* soft-fp/extendsftf2.c: Likewise.
* soft-fp/extendxftf2.c: Likewise.
* soft-fp/fixdfdi.c: Likewise.
* soft-fp/fixdfsi.c: Likewise.
* soft-fp/fixdfti.c: Likewise.
* soft-fp/fixsfdi.c: Likewise.
* soft-fp/fixsfsi.c: Likewise.
* soft-fp/fixsfti.c: Likewise.
* soft-fp/fixtfdi.c: Likewise.
* soft-fp/fixtfsi.c: Likewise.
* soft-fp/fixtfti.c: Likewise.
* soft-fp/fixunsdfdi.c: Likewise.
* soft-fp/fixunsdfsi.c: Likewise.
* soft-fp/fixunsdfti.c: Likewise.
* soft-fp/fixunssfdi.c: Likewise.
* soft-fp/fixunssfsi.c: Likewise.
* soft-fp/fixunssfti.c: Likewise.
* soft-fp/fixunstfdi.c: Likewise.
* soft-fp/fixunstfsi.c: Likewise.
* soft-fp/fixunstfti.c: Likewise.
* soft-fp/floatdidf.c: Likewise.
* soft-fp/floatdisf.c: Likewise.
* soft-fp/floatditf.c: Likewise.
* soft-fp/floatsidf.c: Likewise.
* soft-fp/floatsisf.c: Likewise.
* soft-fp/floatsitf.c: Likewise.
* soft-fp/floattidf.c: Likewise.
* soft-fp/floattisf.c: Likewise.
* soft-fp/floattitf.c: Likewise.
* soft-fp/floatundidf.c: Likewise.
* soft-fp/floatundisf.c: Likewise.
* soft-fp/floatunditf.c: Likewise.
* soft-fp/floatunsidf.c: Likewise.
* soft-fp/floatunsisf.c: Likewise.
* soft-fp/floatunsitf.c: Likewise.
* soft-fp/floatuntidf.c: Likewise.
* soft-fp/floatuntisf.c: Likewise.
* soft-fp/floatuntitf.c: Likewise.
* soft-fp/gedf2.c: Likewise.
* soft-fp/gesf2.c: Likewise.
* soft-fp/getf2.c: Likewise.
* soft-fp/ledf2.c: Likewise.
* soft-fp/lesf2.c: Likewise.
* soft-fp/letf2.c: Likewise.
* soft-fp/muldf3.c: Likewise.
* soft-fp/mulsf3.c: Likewise.
* soft-fp/multf3.c: Likewise.
* soft-fp/negdf2.c: Likewise.
* soft-fp/negsf2.c: Likewise.
* soft-fp/negtf2.c: Likewise.
* soft-fp/op-1.h: Likewise.
* soft-fp/op-2.h: Likewise.
* soft-fp/op-4.h: Likewise.
* soft-fp/op-8.h: Likewise.
* soft-fp/op-common.h: Likewise.
* soft-fp/quad.h: Likewise.
* soft-fp/single.h: Likewise.
* soft-fp/soft-fp.h: Likewise.
* soft-fp/subdf3.c: Likewise.
* soft-fp/subsf3.c: Likewise.
* soft-fp/subtf3.c: Likewise.
* soft-fp/truncdfsf2.c: Likewise.
* soft-fp/trunctfdf2.c: Likewise.
* soft-fp/trunctfsf2.c: Likewise.
* soft-fp/trunctfxf2.c: Likewise.
* soft-fp/unorddf2.c: Likewise.
* soft-fp/unordsf2.c: Likewise.
* soft-fp/unordtf2.c: Likewise.
From-SVN: r239513
Jakub Jelinek [Tue, 16 Aug 2016 19:27:41 +0000 (21:27 +0200)]
i386.c (enum ix86_builtins): Reorder enumerators...
* config/i386/i386.c (enum ix86_builtins): Reorder enumerators, so
that builtins not mentioned in bdesc_* arrays come first, then
the ones mentioned in bdesc_* arrays in the order they appear in
the arrays in between IX86_BUILTIN__BDESC_*_FIRST and
IX86_BUILTIN__BDESC_*_LAST enumerator.
(bdesc_mpx): Fix up a comment typo.
(bdesc_multi_arg): Remove __builtin_ia32_vpcomne[bwdq] and
__builtin_ia32_vpcomneu[bwdq] builtins.
(BDESC_VERIFY, BDESC_VERIFYS): Define.
(ix86_init_mmx_sse_builtins, ix86_init_mpx_builtins): Verify
enum ix86_builtins ordering.
(ix86_expand_builtin): Use enum ix86_builtins ordering assumption
for direct bdesc_* array member access instead of searching all the
arrays until an fcode match is found.
From-SVN: r239512
Uros Bizjak [Tue, 16 Aug 2016 18:23:47 +0000 (20:23 +0200)]
i386.md (*ashl<mode>3_mask): Rewrite define_insn pattern as define_insn_and_split.
* config/i386/i386.md (*ashl<mode>3_mask): Rewrite define_insn
pattern as define_insn_and_split. Split insn before reload to
ashl<mode>3_1.
(*<shift_insn><mode>3_mask): Ditto. Split insn before reload to
<shift_insn><mode>3_1.
(*<rotate_insn><mode>3_mask): Ditto. Split insn before reload to
<rotate_insn><mode>3_1.
From-SVN: r239511
David Malcolm [Tue, 16 Aug 2016 18:19:34 +0000 (18:19 +0000)]
Fix caret locations in format_type_warning (PR c/72857)
gcc/c-family/ChangeLog:
PR c/72857
* c-common.c (substring_loc::get_range): Rename to...
(substring_loc::get_location): ...this, converting param from a
source_range * to a location_t *. Call
get_source_location_for_substring rather than
get_source_range_for_substring, and pass in m_caret_idx.
* c-common.h (substring_loc::substring_loc): Add param "caret_idx".
(substring_loc::get_range): Replace with...
(substring_loc::get_location): ...this.
(substring_loc::set_caret_index): New method.
(substring_loc): Add field m_caret_idx.
* c-format.c (format_warning_va): Update for above changes.
Rename local "substring_loc" to "fmt_substring_loc" to avoid
clashing with type name.
(format_warning_at_char): Add caret_idx param to substring_loc ctor.
(check_argument_type): Likewise.
(format_type_warning): Rename param "fmt_loc" to "whole_fmt_loc"
Use a copy when emitting warnings, setting the caret index from TYPE.
gcc/ChangeLog:
PR c/72857
* input.c (get_source_range_for_substring): Rename to...
(get_source_location_for_substring): ...this, adding param
"caret_idx", and converting output param from source_range * to
location_t *.
(get_source_range_for_char): New function.
(get_num_source_ranges_for_substring): Update comment to reflect
above renaming.
(assert_char_at_range): Update to use get_source_range_for_char
rather than get_source_range_for_substring.
(test_lexer_string_locations_concatenation_2): Likewise.
* substring-locations.h (get_source_range_for_substring): Rename
to...
(get_source_location_for_substring): ...this, and adding param
"caret_idx", and converting output param from source_range * to
location_t *.
gcc/testsuite/ChangeLog:
PR c/72857
* gcc.dg/format/asm_fprintf-1.c: Restore column numbers
for embedded NUL.
* gcc.dg/format/c90-printf-1.c: Restore column numbers.
* gcc.dg/format/diagnostic-ranges.c (test_hex): Update expected
caret placement.
(test_oct): Likewise.
(test_multiple): Likewise.
(test_field_width_specifier): Likewise.
(test_field_width_specifier_2): New function.
(test_field_precision_specifier): New function.
(test_embedded_nul): Update expected caret placement.
(test_non_contiguous_strings): Update line number.
* gcc.dg/plugin/diagnostic-test-string-literals-1.c
(__emit_string_literal_range): Add "caret_idx" param.
(test_simple_string_literal): Add value for new param, updating
expected output..
(test_concatenated_string_literal): Likewise.
(test_multiline_string_literal): Likewise.
(test_hex): Likewise.
(test_oct): Likewise.
(test_multiple): Likewise.
(test_ucn4): Likewise.
(test_ucn8): Likewise.
(test_u8): Likewise.
(test_u): Likewise; update expected message, from "range" to
"location".
(test_U): Likewise.
(test_L): Likewise.
(test_macro): Add value for new param.
* gcc.dg/plugin/diagnostic-test-string-literals-2.c
(__emit_string_literal_range): Add "caret_idx" param.
(test_stringified_token_1): Add value for new param. Update
expected message, from "range" to "location".
(test_stringized_token_2): Likewise, adding param to macro.
(test_stringified_token_3): Likewise.
* gcc.dg/plugin/diagnostic_plugin_test_string_literals.c
(emit_warning): Convert param from source_range to location_t.
(test_string_literals): Add caret_idx param, and use it when
constructing a substring_loc. Update error message, from
"range" to "location".
From-SVN: r239510
David Malcolm [Tue, 16 Aug 2016 18:02:43 +0000 (18:02 +0000)]
Move class temp_source_file from input.c to selftest.c/h
gcc/ChangeLog:
* input.c (class selftest::temp_source_file): Move to
selftest.h.
(selftest::temp_source_file::temp_source_file): Move to
selftest.c.
(selftest::temp_source_file::~temp_source_file): Likewise.
* selftest.c (selftest::temp_source_file::temp_source_file): Move
here from input.c.
(selftest::temp_source_file::~temp_source_file): Likewise.
* selftest.h (class selftest::temp_source_file): Move here from
input.c
From-SVN: r239509
Jakub Jelinek [Tue, 16 Aug 2016 16:50:47 +0000 (18:50 +0200)]
re PR target/71910 (ICE on valid OpenMP code)
PR target/71910
* tree-cfg.c (execute_fixup_cfg): Add node variable, use it. Before inlining,
add cgraph edge for the added __builtin_unreachable call.
* g++.dg/gomp/pr71910.C: New test.
From-SVN: r239508
Jakub Jelinek [Tue, 16 Aug 2016 16:48:16 +0000 (18:48 +0200)]
re PR middle-end/67485 (expmed.c sanitizer detects overflow)
PR middle-end/67485
* expmed.c (expand_mult_const): Change val_so_far's type to UHWI,
only cast it to SHWI for the final comparison.
* gcc.c-torture/compile/pr67485.c: New test.
From-SVN: r239507
Jakub Jelinek [Tue, 16 Aug 2016 16:23:46 +0000 (18:23 +0200)]
re PR target/72867 (SSE/AVX/AVX512: incorrect optimization of VMINPS/VMAXPS at compile time)
PR target/72867
* gcc.target/i386/pr72867.c: Add -msse to dg-options.
From-SVN: r239505
Martin Liska [Tue, 16 Aug 2016 14:14:18 +0000 (16:14 +0200)]
gcov: add new option (--hash-filenames) (PR
PR gcov-profile/36412
* doc/gcov.texi: Document --hash-filenames(-x).
* gcov.c (print_usage): Add the option.
(process_args): Process the option, sort options alphabetically.
(md5sum_to_hex): New function.
(make_gcov_file_name): Do the md5sum and append it to a
filename.
From-SVN: r239503
Bin Cheng [Tue, 16 Aug 2016 13:09:40 +0000 (13:09 +0000)]
re PR tree-optimization/69848 (poor vectorization of a loop from SPEC2006 464.h264ref)
PR tree-optimization/69848
* config/aarch64/aarch64-simd.md (vcond<mode><mode>): Invert NE
and swtich operands to avoid additional NOT instruction.
(vcond<v_cmp_mixed><mode>): Ditto.
(vcondu<mode><mode>, vcondu<mode><v_cmp_mixed>): Ditto.
gcc/testsuite
* gcc.target/aarch64/simd/vcond-ne-bit.c: New test.
From-SVN: r239502
Eric Botcazou [Tue, 16 Aug 2016 12:43:12 +0000 (12:43 +0000)]
* doc/install.texi (*-*-solaris2*): Adjust latest change.
From-SVN: r239499
Martin Liska [Tue, 16 Aug 2016 12:28:46 +0000 (14:28 +0200)]
Fix val-prof-7.c on --target_board 'unix/-m32'
* gcc.dg/tree-prof/val-prof-7.c (int main): Change size
of memory operations so that it can be handled by core2
in 32-bit mode.
From-SVN: r239498
Jonathan Wakely [Tue, 16 Aug 2016 11:33:16 +0000 (12:33 +0100)]
PR 72847 Prevent double-free in std::vector<bool>
PR libstdc++/72847
* include/bits/stl_bvector.h (_Bvector_base::_M_deallocate): Zero
pointers to start and end of storage.
* testsuite/23_containers/vector/bool/72847.cc: New test.
* include/bits/vector.tcc (vector<bool>::_M_reallocate): Only update
_M_finish after deallocating.
(vector<bool>::_M_fill_insert): Likewise.
(vector<bool>::_M_insert_range): Likewise.
(vector<bool>::_M_insert_aux): Likewise.
From-SVN: r239497
Richard Biener [Tue, 16 Aug 2016 11:22:47 +0000 (11:22 +0000)]
re PR tree-optimization/76783 (wrong code with conditional vector assignment @ -Og)
2016-08-16 Richard Biener <rguenther@suse.de>
PR tree-optimization/76783
* tree-ssa-propagate.c (ssa_prop_init): Use RPO order. Clear
BB visited flags at start.
* gcc.dg/pr76783.c: New testcase.
* gcc.dg/tree-ssa/pr69270-2.c: Adjust.
From-SVN: r239496
Bin Cheng [Tue, 16 Aug 2016 09:13:50 +0000 (09:13 +0000)]
re PR tree-optimization/72817 (wrong code at -O3 on x86_64-linux-gnu (in both 32-bit and 64-bit modes))
PR tree-optimization/72817
PR tree-optimization/73450
* tree-ssa-loop-niter.c (number_of_iterations_ne): Check
multiple_of_p for adjusted IV.base.
gcc/testsuite
* gcc.dg/tree-ssa/pr72817.c: New test.
* gcc.dg/tree-ssa/pr73450.c: New test.
From-SVN: r239494
GCC Administrator [Tue, 16 Aug 2016 00:16:15 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r239492
Fritz Reese [Mon, 15 Aug 2016 21:19:09 +0000 (21:19 +0000)]
lang.opt, [...]: New flag -finit-derived.
2016-08-15 Fritz Reese <fritzoreese@gmail.com>
gcc/fortran/
* lang.opt, invoke.texi: New flag -finit-derived.
* gfortran.h (gfc_build_default_init_expr, gfc_apply_init,
gfc_generate_initializer): New prototypes.
* expr.c (gfc_build_default_init_expr, gfc_apply_init,
component_initializer, gfc_generate_initializer): New functions.
* expr.c (gfc_default_initializer): Wrap gfc_generate_initializer.
* decl.c (build_struct): Move common code to gfc_apply_init.
* resolve.c (can_generate_init): New function.
* resolve.c (build_default_init_expr): Wrap gfc_build_default_init_expr.
* resolve.c (apply_default_init, resolve_fl_variable_derived): Use
gfc_generate_initializer.
* trans-decl.c (gfc_generate_function_code): Use
gfc_generate_initializer.
gcc/testsuite/gfortran.dg/
* init_flag_13.f90: New testcase.
* init_flag_14.f90: Ditto.
* init_flag_15.f03: Ditto.
* dec_init_1.f90: Ditto.
* dec_init_2.f90: Ditto.
From-SVN: r239489
Thomas Koenig [Mon, 15 Aug 2016 19:34:48 +0000 (19:34 +0000)]
frontend-passes.c (create_var): Set ts.deferred for deferred-length character variables.
2016-08-15 Thomas Koenig <tkoenig@gcc.gnu.org>
* frontend-passes.c (create_var): Set ts.deferred for
deferred-length character variables.
* dump-parse-tree.c (show_typespec): Also dump
is_c_interop, is_iso_c and deferred flags.
From-SVN: r239488
Uros Bizjak [Mon, 15 Aug 2016 18:46:53 +0000 (20:46 +0200)]
re PR target/72867 (SSE/AVX/AVX512: incorrect optimization of VMINPS/VMAXPS at compile time)
PR target/72867
* config/i386/sse.md (<code><mode>3<mask_name><round_saeonly_name>):
Emit ieee_<ieee_maxmin><mode>3<mask_name><round_saeonly_name>
for !flag_finite_math_only or flag_signed_zeros.
(*<code><mode>3<mask_name><round_saeonly_name>): Rename from
*<code><mode>3_finite<mask_name><round_saeonly_name>. Do not
depend on flag_finite_math_only.
(ieee_<ieee_maxmin><mode>3<mask_name><round_saeonly_name>):
New insn pattern.
(*<code><mode>3<mask_name><round_saeonly_name>): Remove.
(*ieee_smin<mode>3): Ditto.
(*ieee_smax<mode>3): Ditto.
* config/i386/mmx.md (mmx_<code>v2sf3): Emit
mmx_ieee_<ieee_maxmin>v2sf3 for !flag_finite_math_only or
flag_signed_zeros.
(*mmx_<code>v2sf3): Rename from *mmx_<code>v2sf3_finite. Do not
depend on flag_finite_math_only.
(mmx_ieee_<ieee_maxmin>v2sf3): New insn pattern.
(*mmx_<code>v2sf3): Remove.
* config/i386/subst.md (round_saeonly_mask_arg3): New subst attribute.
* config/i386/i386.c (ix86_expand_sse_fp_mimnax): Check
flag_signed_zeros instead of !flag_unsafe_math_optimizations.
testsuite/ChangeLog:
PR target/72867
* gcc.target/i386/pr72867.c: New test.
From-SVN: r239487
Ian Lance Taylor [Mon, 15 Aug 2016 18:05:24 +0000 (18:05 +0000)]
cmd/go: ignore errors from go/build for standard packages
The go/build package does not know that gccgo's standard packages don't
have source, and will report an error saying that it can not find them.
Work around that in the cmd/go sources, since the go/build sources don't
currently have a list of standard packages.
This should get a real fix in the master sources, somehow.
Fixes golang/go#16701.
Reviewed-on: https://go-review.googlesource.com/27052
From-SVN: r239486
Segher Boessenkool [Mon, 15 Aug 2016 16:17:21 +0000 (18:17 +0200)]
lra: A multiple_sets is not a simple_move_p (PR73650)
In the PR we have a PARALLEL of a move and a compare (a "mr." instruction).
The compare is dead, so single_set on it returns just the move. Then,
simple_move_p returns true; but the instruction does need reloads in this
case. This patch solves this by making simple_move_p return false for
every multiple_sets instruction.
PR rtl-optimization/73650
* lra-constraints.c (simple_move_p): If the insn is multiple_sets
it is not a simple move.
From-SVN: r239483
Ville Voutilainen [Mon, 15 Aug 2016 15:06:09 +0000 (18:06 +0300)]
Implement LWG 2744 and LWG 2754.
* include/std/any (any(ValueType&&)): Constrain with __is_in_place_type.
(any(in_place_type_t<_ValueType>, _Args&&...)): Use _Decay.
(any(in_place_type_t<_ValueType>, initializer_list<_Up>, _Args&&...)):
Likewise.
(emplace(_Args&&...)): Likewise.
(emplace(initializer_list<_Up>, _Args&&...)): Likewise.
* include/std/utility: (__is_in_place_type_impl): New.
(__is_in_place_type): Likewise.
* testsuite/20_util/any/assign/emplace.cc: Add tests for decaying
emplace.
* testsuite/20_util/any/cons/in_place.cc: Add tests for decaying
in_place constructor.
* testsuite/20_util/any/misc/any_cast_neg.cc: Adjust.
* testsuite/20_util/any/requirements.cc: Add a test for
in_place-constructing a non-default-constructible type.
From-SVN: r239482
Eric Botcazou [Mon, 15 Aug 2016 13:05:37 +0000 (13:05 +0000)]
c-ada-spec.c (dump_number): New function.
* c-ada-spec.c (dump_number): New function.
(handle_escape_character): Likewise.
(print_ada_macros): Add handling of constant integers and strings.
Co-Authored-By: Arnaud Charlet <charlet@adacore.com>
From-SVN: r239481
Ville Voutilainen [Mon, 15 Aug 2016 12:46:47 +0000 (15:46 +0300)]
Add a feature macro for C++17 make_from_tuple.
* include/std/tuple (__cpp_lib_make_from_tuple): New.
* testsuite/20_util/tuple/make_from_tuple/1.cc: Adjust.
From-SVN: r239480
Uros Bizjak [Mon, 15 Aug 2016 11:40:37 +0000 (13:40 +0200)]
ops.cc: Always include ostream and ext/stdio_filebuf.h.
* src/filesystem/ops.cc: Always include ostream and
ext/stdio_filebuf.h.
(do_copy_file): Check if _GLIBCXX_USE_FCHMODAT is defined.
[_GLIBCXX_USE_SENDFILE]: Fallback to read/write operations in case
sendfile fails with ENOSYS or EINVAL.
From-SVN: r239479
Gilles Gouaillardet [Mon, 15 Aug 2016 11:23:27 +0000 (11:23 +0000)]
gcov-tool: Do not segfault in merge operation (PR
PR gcov-profile/67097
* libgcov-util.c (gcov_profile_merge): Skip missing files.
From-SVN: r239478
Martin Liska [Mon, 15 Aug 2016 11:16:50 +0000 (13:16 +0200)]
Fix invalid memory access in gcc.c (driver/72765)
PR driver/72765
* gcc.c (do_spec_1): Call save_string with the right size.
(save_string): Do an assert about string we copy.
From-SVN: r239475
Richard Biener [Mon, 15 Aug 2016 11:07:52 +0000 (11:07 +0000)]
ree.c (rest_of_handle_ree): Remove redundant timevar push/pop.
2016-08-15 Richard Biener <rguenther@suse.de>
* ree.c (rest_of_handle_ree): Remove redundant timevar push/pop.
* config/i386/i386.c (pass_data_insert_vzeroupper): Account to
TV_MACH_DEP.
(pass_data_stv): Likewise.
From-SVN: r239474
Richard Biener [Mon, 15 Aug 2016 09:56:00 +0000 (09:56 +0000)]
re PR tree-optimization/73434 (Wrong code with casting, branches and aliasing)
2016-08-15 Richard Biener <rguenther@suse.de>
PR tree-optimization/73434
* tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address): Preserve
TBAA info on the base when forwarding a non-invariant address.
* gcc.dg/torture/pr73434.c: New testcase.
From-SVN: r239471
Jakub Jelinek [Mon, 15 Aug 2016 09:51:44 +0000 (11:51 +0200)]
dwarf2.def (DW_AT_string_length_bit_size, [...]): New attributes.
* dwarf2.def (DW_AT_string_length_bit_size,
DW_AT_string_length_byte_size): New attributes.
* dwarf2out.c (struct checksum_attributes): Add
at_string_length_bit_size and at_string_length_byte_size fields.
(collect_checksum_attributes): Handle DW_AT_string_length_bit_size
and DW_AT_string_length_byte_size.
(die_checksum_ordered): Handle at_string_length_bit_size and
at_string_length_byte_size.
(gen_array_type_die): For dwarf_version >= 5 emit
DW_AT_string_length_byte_size instead of DW_AT_byte_size.
(adjust_string_types): For dwarf_version >= 5 remove
DW_AT_string_length_byte_size instead of DW_AT_byte_size.
(resolve_addr): Likewise.
From-SVN: r239470
Jakub Jelinek [Mon, 15 Aug 2016 09:50:33 +0000 (11:50 +0200)]
re PR debug/71906 (Fortran allocatable strings debug info type size regression)
PR debug/71906
* dwarf2out.c (string_types): New variable.
(gen_array_type_die): Change early_dwarf handling of
DW_AT_string_length, create DW_OP_call4 referencing the
length var temporarily. Handle parameters that are pointers
to string length.
(adjust_string_types): New function.
(gen_subprogram_die): Temporarily set string_types to local var,
call adjust_string_types if needed.
(non_dwarf_expression, copy_deref_exprloc, optimize_string_length):
New functions.
(resolve_addr): Adjust DW_AT_string_length if it is DW_OP_call4.
* trans-decl.c (gfc_get_symbol_decl): Call gfc_finish_var_decl
for decl's character length before gfc_finish_var_decl on the
decl itself.
From-SVN: r239469
Martin Liska [Mon, 15 Aug 2016 09:30:44 +0000 (11:30 +0200)]
Enhance mark_spam.py script
* mark_spam.py: Add error handling and reset
another properties of attachments and bugs.
From-SVN: r239467
Eric Botcazou [Mon, 15 Aug 2016 09:16:17 +0000 (09:16 +0000)]
install.texi (*-*-solaris2*): Fix version number and document requirement on GNU make for building libjava...
* doc/install.texi (*-*-solaris2*): Fix version number and document
requirement on GNU make for building libjava with the Solaris linker.
From-SVN: r239464
Thomas Preud'homme [Mon, 15 Aug 2016 09:14:15 +0000 (09:14 +0000)]
re PR testsuite/72840 (PASS->NA: 20_util/ratio/cons/cons_overflow_neg.cc)
2016-08-15 Thomas Preud'homme <thomas.preudhomme@arm.com>
PR libstdc++/72840
* testsuite/20_util/ratio/cons/cons_overflow_neg.cc: Fix dg-error
syntax.
From-SVN: r239463