]> git.ipfire.org Git - thirdparty/gcc.git/log
thirdparty/gcc.git
6 years ago[gcc]
willschm [Thu, 6 Sep 2018 15:34:58 +0000 (15:34 +0000)] 
[gcc]

2018-09-06  Will Schmidt  <will_schmidt@vnet.ibm.com>

* config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Add support for
early gimple folding of vec_splat().
* tree-vect-generic.c: Remove static from tree_vec_extract() definition.
* gimple-fold.h: Add an extern define for tree_vec_extract().

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

6 years ago[gcc]
willschm [Thu, 6 Sep 2018 13:52:14 +0000 (13:52 +0000)] 
[gcc]

2018-08-20  Will Schmidt  <will_schmidt@vnet.ibm.com>

* config/rs6000/rs6000.c (fold_mergehl_helper): Add types_compatible_p
wrappers around TREE_TYPE comparisons.

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

6 years agoS/390: Prohibit SYMBOL_REF in UNSPECV_CAS
krebbel [Thu, 6 Sep 2018 07:38:42 +0000 (07:38 +0000)] 
S/390: Prohibit SYMBOL_REF in UNSPECV_CAS

Inhibit constant propagation inlining SYMBOL_REF loads into
UNSPECV_CAS.  Even though reload can later undo it, the resulting
code will be less efficient.

gcc/ChangeLog:

2018-09-06  Ilya Leoshkevich  <iii@linux.ibm.com>

PR target/80080
* config/s390/predicates.md: Add nonsym_memory_operand.
* config/s390/s390.c (s390_legitimize_cs_operand): If operand
contains a SYMBOL_REF, load it into an intermediate pseudo.
(s390_emit_compare_and_swap): Legitimize operand.
* config/s390/s390.md: Use the new nonsym_memory_operand
with UNSPECV_CAS patterns.

gcc/testsuite/ChangeLog:

2018-09-06  Ilya Leoshkevich  <iii@linux.ibm.com>

PR target/80080
* gcc.target/s390/pr80080-3.c: New test.
* gcc.target/s390/s390.exp: Make sure the new test passes
on all optimization levels.

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

6 years agoS/390: Register pass_s390_early_mach statically
krebbel [Thu, 6 Sep 2018 07:35:35 +0000 (07:35 +0000)] 
S/390: Register pass_s390_early_mach statically

The dump file used to come at the end of the sorted dump file list,
because the pass was registered dynamically. This did not reflect the
order in which passes are executed. Static registration fixes this:

* foo4.c.277r.split2
* foo4.c.281r.early_mach
* foo4.c.282r.pro_and_epilogue

gcc/ChangeLog:

2018-09-06  Ilya Leoshkevich  <iii@linux.ibm.com>

PR target/80080
* config/s390/s390-passes.def: New file.
* config/s390/s390-protos.h (class rtl_opt_pass): Add forward
declaration.
(make_pass_s390_early_mach): Add declaration.
* config/s390/s390.c (make_pass_s390_early_mach):
(s390_option_override): Remove dynamic registration.
* config/s390/t-s390: Add s390-passes.def.

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

6 years agoS/390: Remove UNSPEC_LTREL_BASE
krebbel [Thu, 6 Sep 2018 07:31:23 +0000 (07:31 +0000)] 
S/390: Remove UNSPEC_LTREL_BASE

It was needed only for g5/g6 machines, which are now gone.

gcc/ChangeLog:

2018-09-06  Ilya Leoshkevich  <iii@linux.ibm.com>

* config/s390/s390.c (s390_decompose_constant_pool_ref):
Remove UNSPEC_LTREL_BASE check.
(annotate_constant_pool_refs): Likewise.
(find_constant_pool_ref): Likewise.
(find_ltrel_base): Removed.
(replace_ltrel_base): Removed.
(s390_mainpool_finish): Remove replace_ltrel_base call.
(s390_chunkify_start): Remove pending LTREL_BASE logic.
(s390_chunkify_finish): Remove replace_ltrel_base call.
* config/s390/s390.md: Remove UNSPEC_LTREL_BASE.

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

6 years ago PR c++/86982, -Wreturn-local-addr and std::move and std::forward.
mpolacek [Thu, 6 Sep 2018 00:38:13 +0000 (00:38 +0000)] 
PR c++/86982, -Wreturn-local-addr and std::move and std::forward.
* typeck.c (maybe_warn_about_returning_address_of_local): Handle calls
to std::move or std::forward.
(is_std_forward_p): New function.

* g++.dg/warn/Wreturn-local-addr-5.C: New test.

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

6 years agoDaily bump.
gccadmin [Thu, 6 Sep 2018 00:16:49 +0000 (00:16 +0000)] 
Daily bump.

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

6 years ago PR target/86779
hp [Wed, 5 Sep 2018 23:14:42 +0000 (23:14 +0000)] 
PR target/86779
* config/cris/cris.c (TARGET_HAVE_SPECULATION_SAFE_VALUE): Redefine
to speculation_safe_value_not_needed.

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

6 years ago[nvptx] Basic -misa support for nvptx
cesar [Wed, 5 Sep 2018 22:27:31 +0000 (22:27 +0000)] 
[nvptx] Basic -misa support for nvptx

gcc/
* config/nvptx/nvptx-opts.h: New file.
* config/nvptx/nvptx.c (nvptx_file_start): Print the correct .target.
* config/nvptx/nvptx.h: Include "nvptx-opts.h".
(ASM_SPEC): Define.
(TARGET_SM35): New macro.
* config/nvptx/nvptx.md (atomic_fetch_<logic><mode>): Enable with the
correct predicate.
* config/nvptx/nvptx.opt (ptx_isa, sm_30, sm_35): New enum and its
values.
(misa=): New option.
* doc/invoke.texi (Nvidia PTX Options): Document -misa.

gcc/testsuite/
* gcc.target/nvptx/atomic_fetch-1.c: New test.
* gcc.target/nvptx/atomic_fetch-1.c: New test.

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

6 years ago PR c++/87109, wrong overload with ref-qualifiers. 23/head
mpolacek [Wed, 5 Sep 2018 21:17:47 +0000 (21:17 +0000)] 
PR c++/87109, wrong overload with ref-qualifiers.
* call.c (build_user_type_conversion_1): Use NULL instead of 0.  Bail
out if performing the maybe-rvalue overload resolution and a conversion
function is getting called.

* g++.dg/cpp0x/ref-qual19.C: New test.

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

6 years ago * config/i386/i386.md (truncdfsf2): Remove expander.
uros [Wed, 5 Sep 2018 18:01:42 +0000 (18:01 +0000)] 
* config/i386/i386.md (truncdfsf2): Remove expander.
(truncdfsf2_with_temp): Ditto.
(truncxf<mode>2): Ditto.
(*truncdfsf_fast_mixed): Remove insn pattern.
(*truncdfsf_fast_i387): Ditto.
(*truncdfsf_mixed): Ditto.
(*truncdfsf_i387): Ditto.
(*truncdfsf2_i387_1): Ditto.
(*truncxfsf2_mixed): Ditto.
(*truncxfdf2_mixed): Ditto.
(*truncxf<mode>2_i387_noop): Ditto. Update callers
to call gen_truncxf<mode>2 instead.
(*truncxf<mode>2_i387): Remove.
(reg->reg splitters): Remove splitter pattern.
(reg->mem splitters): Ditto.

(truncdfsf2): New insn pattern.
(truncxf<mode>2): Ditto.

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

6 years agoPR52665 do not let .ident confuse assembler scan tests
aldot [Wed, 5 Sep 2018 15:31:13 +0000 (15:31 +0000)] 
PR52665 do not let .ident confuse assembler scan tests

A branch with a name matching scan-assembler pattern triggers
inappropriate FAIL.

E.g. branch fixups-testsuite and
- gcc.target/i386/pr65871-?.c (scan-assembler-not "test")
- gcc.target/i386/pr41442.c (scan-assembler-times "test|cmp" 2)
etc.

This is a recurring problem as can be seen by some -fno-ident additions
by commits from e.g. Michael Meissner over the years: builtins-58.c,
powerpc/pr46728-?.c

The patch below adds -fno-ident if a testcase contains one of
scan-assembler, scan-assembler-not or scan-assembler-times.

Regression tested on x86_64-unknown-linux on a fixups-testsuite branch
where it fixes several false FAILs without regressions.

gcc/testsuite/ChangeLog

2016-06-18  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>

        PR testsuite/52665
        * lib/gcc-dg.exp (gcc-dg-test-1): Iterate over _required_options.
        * lib/target-supports.exp (scan-assembler_required_options,
        scan-assembler-not_required_options,
        scan-assembler-times_required_options): Add -fno-ident.
        * lib/scanasm.exp (scan-assembler-times): Fix error message.
        * c-c++-common/ident-0a.c: New test.
        * c-c++-common/ident-0b.c: New test.
        * c-c++-common/ident-1a.c: New test.
        * c-c++-common/ident-1b.c: New test.
        * c-c++-common/ident-2a.c: New test.
        * c-c++-common/ident-2b.c: New test.

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

6 years ago * libsupc++/cxxabi.h (__cxa_demangle): Clarify doxygen comment.
redi [Wed, 5 Sep 2018 15:18:16 +0000 (15:18 +0000)] 
* libsupc++/cxxabi.h (__cxa_demangle): Clarify doxygen comment.

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

6 years agoOptimise sqrt reciprocal multiplications
ktkachov [Wed, 5 Sep 2018 13:39:38 +0000 (13:39 +0000)] 
Optimise sqrt reciprocal multiplications

This patch aims to optimise sequences involving uses of 1.0 / sqrt (a) under -freciprocal-math and -funsafe-math-optimizations.
In particular consider:

x = 1.0 / sqrt (a);
r1 = x * x;  // same as 1.0 / a
r2 = a * x; // same as sqrt (a)

If x, r1 and r2 are all used further on in the code, this can be transformed into:
tmp1 = 1.0 / a
tmp2 = sqrt (a)
tmp3 = tmp1 * tmp2
x = tmp3
r1 = tmp1
r2 = tmp2

A bit convoluted, but this saves us one multiplication and, more importantly, the sqrt and division are now independent.
This also allows optimisation of a subset of these expressions.
For example:
x = 1.0 / sqrt (a)
r1 = x * x

can be transformed to r1 = 1.0 / a, eliminating the sqrt if x is not used anywhere else.
And similarly:
x = 1.0 / sqrt (a)
r1 = a * x

can be transformed to sqrt (a) eliminating the division.

For the testcase:
double res, res2, tmp;
void
foo (double a, double b)
{
  tmp = 1.0 / __builtin_sqrt (a);
  res = tmp * tmp;
  res2 = a * tmp;
}

We now generate for aarch64 with -Ofast:
foo:
        fmov    d2, 1.0e+0
        adrp    x2, res2
        fsqrt   d1, d0
        adrp    x1, res
        fdiv    d0, d2, d0
        adrp    x0, tmp
        str     d1, [x2, #:lo12:res2]
        fmul    d1, d1, d0
        str     d0, [x1, #:lo12:res]
        str     d1, [x0, #:lo12:tmp]
        ret

where before it generated:
foo:
        fsqrt   d2, d0
        fmov    d1, 1.0e+0
        adrp    x1, res2
        adrp    x2, tmp
        adrp    x0, res
        fdiv    d1, d1, d2
        fmul    d0, d1, d0
        fmul    d2, d1, d1
        str     d1, [x2, #:lo12:tmp]
        str     d0, [x1, #:lo12:res2]
        str     d2, [x0, #:lo12:res]
        ret

As you can see, the new sequence has one fewer multiply and the fsqrt and fdiv are independent.

* tree-ssa-math-opts.c (is_mult_by): New function.
(is_square_of): Use the above.
(optimize_recip_sqrt): New function.
(pass_cse_reciprocals::execute): Use the above.

* gcc.dg/recip_sqrt_mult_1.c: New test.
* gcc.dg/recip_sqrt_mult_2.c: Likewise.
* gcc.dg/recip_sqrt_mult_3.c: Likewise.
* gcc.dg/recip_sqrt_mult_4.c: Likewise.
* gcc.dg/recip_sqrt_mult_5.c: Likewise.
* g++.dg/recip_sqrt_mult_1.C: Likewise.
* g++.dg/recip_sqrt_mult_2.C: Likewise.

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

6 years ago2018-09-05 Richard Biener <rguenther@suse.de>
rguenth [Wed, 5 Sep 2018 11:44:13 +0000 (11:44 +0000)] 
2018-09-05  Richard Biener  <rguenther@suse.de>

PR bootstrap/87134
* tree-ssa-sccvn.c (rpo_elim::eliminate_push_avail): Make sure
to zero-init the emplaced vec.

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

6 years agoGroup switch cases in switch lowering (PR tree-optimization/87205).
marxin [Wed, 5 Sep 2018 11:28:49 +0000 (11:28 +0000)] 
Group switch cases in switch lowering (PR tree-optimization/87205).

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

PR tree-optimization/87205
* tree-switch-conversion.c (pass_lower_switch::execute):
Group cases for switch statements.
2018-09-05  Martin Liska  <mliska@suse.cz>

PR tree-optimization/87205
* gcc.dg/tree-ssa/pr87205-2.c: New test.
* gcc.dg/tree-ssa/pr87205.c: New test.

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

6 years ago2018-09-05 Richard Biener <rguenther@suse.de>
rguenth [Wed, 5 Sep 2018 10:33:41 +0000 (10:33 +0000)] 
2018-09-05  Richard Biener  <rguenther@suse.de>

PR tree-optimization/87217
* tree-ssa-sccvn.c (vuse_valueize): New.
(vn_reference_lookup_pieces): Use it.
(vn_reference_lookup): Likewise.

* gfortran.dg/pr87217.f: New testcase.

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

6 years ago * io/async.h: Use __gthread_mutex_t, not pthread_mutex_t.
hp [Wed, 5 Sep 2018 10:28:45 +0000 (10:28 +0000)] 
* io/async.h: Use __gthread_mutex_t, not pthread_mutex_t.

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

6 years agoPR c++/87137] GCC-8 Fix
nathan [Wed, 5 Sep 2018 10:04:58 +0000 (10:04 +0000)] 
PR c++/87137] GCC-8 Fix

https://gcc.gnu.org/ml/gcc-patches/2018-08/msg01966.html
PR c++/87137
* stor-layout.c (place_field): Scan forwards to check last
bitfield when ms_bitfield_placement is in effect.
gcc/testsuite/
* g++.dg/abi/pr87137.C: New.

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

6 years ago[PR c++/87185] ICE in prune-lambdas
nathan [Wed, 5 Sep 2018 09:59:08 +0000 (09:59 +0000)] 
[PR c++/87185] ICE in prune-lambdas

https://gcc.gnu.org/ml/gcc-patches/2018-09/msg00249.html
cp/
PR c++/87185
* lambda.c (prune_lambda_captures): Protect against const_vars.get
returning NULL.
testsuite/
PR c++/87185
* g++.dg/pr87185.C: New.

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

6 years ago2018-09-05 Richard Biener <rguenther@suse.de>
rguenth [Wed, 5 Sep 2018 09:39:34 +0000 (09:39 +0000)] 
2018-09-05  Richard Biener  <rguenther@suse.de>

PR bootstrap/87225
* tree-vect-stmts.c (vectorizable_simd_clone_call): Fix bogus
return.

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

6 years ago[aarch64] Avoid tag collisions for loads falkor
siddhesh [Wed, 5 Sep 2018 09:37:27 +0000 (09:37 +0000)] 
[aarch64] Avoid tag collisions for loads falkor

This is a rewrite of the tag collision avoidance patch that Kugan had
written as a machine reorg pass back in February.

The falkor hardware prefetching system uses a combination of the
source, destination and offset to decide which prefetcher unit to
train with the load.  This is great when loads in a loop are
sequential but sub-optimal if there are unrelated loads in a loop that
tag to the same prefetcher unit.

This pass attempts to rename the desination register of such colliding
loads using routines available in regrename.c so that their tags do
not collide.  This shows some performance gains with mcf and xalancbmk
(~5% each) and will be tweaked further.  The pass is placed near the
fag end of the pass list so that subsequent passes don't inadvertantly
end up undoing the renames.

2018-07-02  Siddhesh Poyarekar  <siddhesh@sourceware.org>
            Kugan Vivekanandarajah  <kugan.vivekanandarajah@linaro.org>

* config/aarch64/falkor-tag-collision-avoidance.c: New file.
* config.gcc (extra_objs): Build it.
* config/aarch64/t-aarch64 (falkor-tag-collision-avoidance.o):
Likewise.
* config/aarch64/aarch64-passes.def
(pass_tag_collision_avoidance): New pass.
* config/aarch64/aarch64.c (qdf24xx_tunings): Add
AARCH64_EXTRA_TUNE_RENAME_LOAD_REGS to tuning_flags.
(aarch64_classify_address): Remove static qualifier.
(aarch64_address_info, aarch64_address_type): Move to...
* config/aarch64/aarch64-protos.h: ... here.
(make_pass_tag_collision_avoidance): New function.
* config/aarch64/aarch64-tuning-flags.def (rename_load_regs):
New tuning flag.

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

6 years agoFix typo in ChangeLog.
marxin [Wed, 5 Sep 2018 09:09:46 +0000 (09:09 +0000)] 
Fix typo in ChangeLog.

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

6 years agoFix a scan in test for Darwin target (PR testsuite/87216).
marxin [Wed, 5 Sep 2018 09:08:07 +0000 (09:08 +0000)] 
Fix a scan in test for Darwin target (PR testsuite/87216).

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

PR testsuite/87216
* gcc.dg/tree-prof/pr59521-3.c: Update scanned pattern
to support Dawring names.

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

6 years agoGCOV: Print one decimal place in human readable mode.
marxin [Wed, 5 Sep 2018 08:08:45 +0000 (08:08 +0000)] 
GCOV: Print one decimal place in human readable mode.

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

* doc/gcov.texi: Update documentation of humar
readable mode.
* gcov.c (format_count): Print one decimal place, it provides
more fine number of situations like '1G' vs. '1.4G'.
2018-09-05  Martin Liska  <mliska@suse.cz>

* g++.dg/gcov/loop.C: Update test to support new format.

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

6 years agoIgnore properly -mdirect-move (PR target/87164).
marxin [Wed, 5 Sep 2018 08:07:48 +0000 (08:07 +0000)] 
Ignore properly -mdirect-move (PR target/87164).

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

PR target/87164
* config/rs6000/rs6000.opt: Mark the option as Deprecated.
* optc-gen.awk: Allow 'Var' for Deprecated options in order
to generate a MASK value.

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

6 years ago * cp-tree.h (treat_lvalue_as_rvalue_p): Declare.
mpolacek [Wed, 5 Sep 2018 02:08:19 +0000 (02:08 +0000)] 
* cp-tree.h (treat_lvalue_as_rvalue_p): Declare.
* except.c (build_throw): Use it.  Use CP_TYPE_VOLATILE_P.
* typeck.c (treat_lvalue_as_rvalue_p): No longer static.  Add PARM_OK
parameter.
(maybe_warn_pessimizing_move): Adjust treat_lvalue_as_rvalue_p call.
(check_return_expr): Likewise.

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

6 years agoDaily bump.
gccadmin [Wed, 5 Sep 2018 00:16:36 +0000 (00:16 +0000)] 
Daily bump.

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

6 years agoDWARF: Allow hard frame pointer even if frame pointer isn't used
hjl [Tue, 4 Sep 2018 20:42:06 +0000 (20:42 +0000)] 
DWARF: Allow hard frame pointer even if frame pointer isn't used

r251028

commit cd557ff63f388ad27c376d0a225e74d3594a6f9d
Author: hjl <hjl@138bc75d-0d04-0410-961f-82ee72b054a4>
Date:   Thu Aug 10 15:29:05 2017 +0000

    i386: Don't use frame pointer without stack access

    When there is no stack access, there is no need to use frame pointer
    even if -fno-omit-frame-pointer is used and caller's frame pointer is
    unchanged.

frame pointer may not be available even if -fno-omit-frame-pointer is
used.  When this happened, arg pointer may be eliminated by hard frame
pointer.  Since hard frame pointer is encoded with DW_OP_fbreg which
uses the DW_AT_frame_base attribute, not hard frame pointer directly,
we should allow hard frame pointer when generating DWARF info even if
frame pointer isn't used.

gcc/

PR debug/86593
* dwarf2out.c (based_loc_descr): Allow hard frame pointer even
if frame pointer isn't used.
(compute_frame_pointer_to_fb_displacement): Likewise.

gcc/testsuite/

PR debug/86593
* g++.dg/pr86593.C: New test.

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

6 years ago PR target/87198
jakub [Tue, 4 Sep 2018 17:49:57 +0000 (17:49 +0000)] 
PR target/87198
* common/config/i386/i386-common.c (OPTION_MASK_ISA_XSAVEOPT_SET,
OPTION_MASK_ISA_XSAVES_SET, OPTION_MASK_ISA_XSAVEC_SET): Use
OPTION_MASK_ISA_XSAVE_SET instead of OPTION_MASK_ISA_XSAVE.
(OPTION_MASK_ISA_XSAVE_UNSET): Add OPTION_MASK_ISA_XSAVES_UNSET
and OPTION_MASK_ISA_XSAVEC_UNSET.

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

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

6 years agogcc: xtensa: fix NAND code in xtensa_expand_atomic
jcmvbkbc [Tue, 4 Sep 2018 17:43:20 +0000 (17:43 +0000)] 
gcc: xtensa: fix NAND code in xtensa_expand_atomic

NAND is ~(a1 & a2), but xtensa_expand_atomic does ~a1 & a2.
That fixes libatomic tests atomic-op-{1,2}.

gcc/
2018-09-04  Max Filippov  <jcmvbkbc@gmail.com>

* config/xtensa/xtensa.c (xtensa_expand_atomic): Reorder AND and
XOR operations in NAND case.

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

6 years agoDon't xfail gcc.target/i386/addr-sel-1.c (PR target/86744)
ro [Tue, 4 Sep 2018 15:00:41 +0000 (15:00 +0000)] 
Don't xfail gcc.target/i386/addr-sel-1.c (PR target/86744)

PR target/86744
* gcc.target/i386/addr-sel-1.c: Don't xfail "b\\+1" scan.

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

6 years ago * wide-int-range.cc (wide_int_range_convert): New.
aldyh [Tue, 4 Sep 2018 14:52:41 +0000 (14:52 +0000)] 
* wide-int-range.cc (wide_int_range_convert): New.
* wide-int-range.h (wide_int_range_convert): New.
* tree-vrp.c (extract_range_from_unary_expr): Abstract wide int
code into wide_int_range_convert.
(extract_range_into_wide_ints): Do not munge anti range constants
into the entire domain.  Just return the range back.

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

6 years agogenmatch: put reporting on a cold path
marxin [Tue, 4 Sep 2018 13:59:38 +0000 (13:59 +0000)] 
genmatch: put reporting on a cold path

2018-09-04  Martin Liska  <mliska@suse.cz>

* genmatch.c (output_line_directive): Add new argument
fnargs.
(dt_simplify::gen_1): Encapsulate dump within __builtin_expect.

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

6 years agoAdd whitespace before warning option added in previous commmit
redi [Tue, 4 Sep 2018 13:34:47 +0000 (13:34 +0000)] 
Add whitespace before warning option added in previous commmit

* doc/invoke.texi (Option Summary): Add whitespace.

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

6 years agoAdd -Waligned-new to Option Summary
redi [Tue, 4 Sep 2018 13:25:42 +0000 (13:25 +0000)] 
Add -Waligned-new to Option Summary

* doc/invoke.texi (Option Summary): Add -Waligned-new.

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

6 years ago2018-09-04 Richard Biener <rguenther@suse.de>
rguenth [Tue, 4 Sep 2018 12:04:42 +0000 (12:04 +0000)] 
2018-09-04  Richard Biener  <rguenther@suse.de>

PR tree-optimization/87211
* tree-ssa-sccvn.c (visit_phi): When value-numbering to a
backedge value we're supposed to treat as VARYING also number
the PHI to VARYING in case it got a different value-number already.

* gcc.dg/torture/pr87211.c: New testcase.

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

6 years ago * tree-vrp.c (vrp_can_optimize_bit_op): Remove.
aldyh [Tue, 4 Sep 2018 11:58:14 +0000 (11:58 +0000)] 
* tree-vrp.c (vrp_can_optimize_bit_op): Remove.
(extract_range_from_binary_expr_1): Do not call
vrp_can_optimize_bit_op.
* wide-int-range.cc (wide_int_range_can_optimize_bit_op): Make
static.
(wide_int_range_get_mask_and_bounds): New.
(wide_int_range_optimize_bit_op): New.
(wide_int_range_bit_ior): Call wide_int_range_optimize_bit_op.
(wide_int_range_bit_and): Same.
* wide-int-range.h (wide_int_range_can_optimize_bit_op): Remove.
(wide_int_range_optimize_bit_op): New.
(wide_int_range_get_mask_and_bounds): New.

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

6 years ago2018-09-04 Richard Biener <rguenther@suse.de>
rguenth [Tue, 4 Sep 2018 10:55:46 +0000 (10:55 +0000)] 
2018-09-04  Richard Biener  <rguenther@suse.de>

PR tree-optimization/87176
* tree-ssa-sccvn.c (visit_phi): Remove redundant allsame
variable.  When value-numbering a virtual PHI node make sure
to not value-number to the backedge value.

* gcc.dg/torture/pr87176.c: New testcase.
* gcc.dg/torture/ssa-fre-1.c: Likewise.

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

6 years agoUpdate C Extensions docs for support in latest C++
redi [Tue, 4 Sep 2018 10:27:14 +0000 (10:27 +0000)] 
Update C Extensions docs for support in latest C++

* doc/extend.texi (Long Long, Hex Floats): Document support for
long long and hex floats in more recent versions of ISO C++.

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

6 years ago * MAINTAINERS: Update my email address.
xguo [Tue, 4 Sep 2018 03:57:03 +0000 (03:57 +0000)] 
* MAINTAINERS: Update my email address.

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

6 years agoDaily bump.
gccadmin [Tue, 4 Sep 2018 00:16:57 +0000 (00:16 +0000)] 
Daily bump.

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

6 years ago2018-09-03 Jerry DeLisle <jvdelisle@gcc.gnu.org>
jvdelisle [Mon, 3 Sep 2018 18:38:20 +0000 (18:38 +0000)] 
2018-09-03  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

* simplify.c (gfc_simplify_modulo): Re-arrange code to test whether
'P' is zero and issue an error if it is.
* gfortran.dg/modulo_check: New test.

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

6 years ago2018-09-03 Richard Biener <rguenther@suse.de>
rguenth [Mon, 3 Sep 2018 17:41:05 +0000 (17:41 +0000)] 
2018-09-03  Richard Biener  <rguenther@suse.de>

PR tree-optimization/87177
* tree-ssa-sccvn.c (vuse_ssa_val): Revert previous change, keep
cleanup.

* gcc.dg/torture/pr87177.c: New testcase.
* gcc.dg/torture/pr87177-2.c: Likewise.

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

6 years agobb-reorder: convert to gcc_stablesort
amonakov [Mon, 3 Sep 2018 16:55:05 +0000 (16:55 +0000)] 
bb-reorder: convert to gcc_stablesort

* bb-reorder.c (edge_order): Convert to C-qsort-style
tri-state comparator.
(reorder_basic_blocks_simple): Change std::stable_sort to gcc_stablesort.

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

6 years agotree-loop-distribution: convert to gcc_stablesort
amonakov [Mon, 3 Sep 2018 16:53:04 +0000 (16:53 +0000)] 
tree-loop-distribution: convert to gcc_stablesort

* tree-loop-distribution.c (offset_cmp): Convert to C-qsort-style
tri-state comparator.
(fuse_memset_builtins): Change std::stable_sort to gcc_stablesort.

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

6 years agointroduce gcc_stablesort
amonakov [Mon, 3 Sep 2018 16:51:24 +0000 (16:51 +0000)] 
introduce gcc_stablesort

* sort.cc (struct sort_ctx): New field 'nlim'.  Use it...
(mergesort): ... here as maximum count for using netsort.
(gcc_qsort): Set nlim to 3 if stable sort is requested.
(gcc_stablesort): New.
* system.h (gcc_stablesort): Declare.

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

6 years agoqsort_chk: call from gcc_qsort instead of wrapping it
amonakov [Mon, 3 Sep 2018 16:46:46 +0000 (16:46 +0000)] 
qsort_chk: call from gcc_qsort instead of wrapping it

* sort.cc (gcc_qsort) [CHECKING_P]: Call qsort_chk.
* system.h (qsort): Always redirect to gcc_qsort.  Update comment.
* vec.c (qsort_chk): Do not call gcc_qsort.  Update comment.

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

6 years agors6000: lxsdux / stxsdux do not exist
segher [Mon, 3 Sep 2018 15:51:37 +0000 (15:51 +0000)] 
rs6000: lxsdux / stxsdux do not exist

Our md files refer to {l,st}xsd%U<n>x, but no {l,st}xsdux insns exist.
This patch removes the update forms.  All these use  constraint "Z"
which does not allow update form, so there is no practical difference.

* config/rs6000/rs6000.md (*mov<mode>_hardfloat32): Remove %U from the
lxsdx and stxsdx alternatives.
(*mov<mode>_hardfloat64): Ditto.
* config/rs6000/vsx.md (*vsx_extract_<mode>_store): Ditto.

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

6 years agoPR libstdc++/78179 run long double tests separately
redi [Mon, 3 Sep 2018 14:54:28 +0000 (14:54 +0000)] 
PR libstdc++/78179 run long double tests separately

Split the long double testing into a separate file, so that we can XFAIL
targets where the long double precision doesn't meet the expected
tolerances. The float and double tests are still expefted to PASS for
all targets.

PR libstdc++/78179
* testsuite/26_numerics/headers/cmath/hypot-long-double.cc: New test
that runs the long double part of hypot.cc.
* testsuite/26_numerics/headers/cmath/hypot.cc: Disable long double
tests unless TEST_HYPOT_LONG_DOUBLE is defined.

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

6 years ago2018-09-03 Richard Biener <rguenther@suse.de>
rguenth [Mon, 3 Sep 2018 14:29:00 +0000 (14:29 +0000)] 
2018-09-03  Richard Biener  <rguenther@suse.de>

PR tree-optimization/87200
* tree-ssa-sccvn.c (vn_nary_build_or_lookup_1): Valueize a
simplify result.

* gcc.dg/torture/pr87200.c: New testcase.

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

6 years agoFix vector::_Temporary_value::_M_ptr
redi [Mon, 3 Sep 2018 14:25:29 +0000 (14:25 +0000)] 
Fix vector::_Temporary_value::_M_ptr

The pointer argument to allocator_traits::construct and
allocator_traits::destroy should be a raw pointer, not the allocator's
pointer type. _Temporary_value::_M_ptr was returning the wrong type.

* include/bits/stl_vector.h (vector::_Temporary_value::_M_ptr):
Return raw pointer not allocator's pointer type.
(vector::_Temporary_value::_M_val): Use _M_ptr.

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

6 years agoPR libstdc++/87194 fix range insertion into maps and sets
redi [Mon, 3 Sep 2018 14:25:25 +0000 (14:25 +0000)] 
PR libstdc++/87194 fix range insertion into maps and sets

Since C++11 range insertion and construction of maps and sets from a
pair of iterators only requires that the iterator's value_type is
convertible to the container's value_type (previously it had to be the
same).

This fixes the implementation to meet that relaxed requirement, by
defining a pair of overloads that either insert or emplace, depending on
the iterator's value_type. Instead of adding yet another overload of
_M_insert_unique and _M_insert_equal, the overloads taking iterators are
renamed to _M_insert_range_unique and _M_insert_range_equal.

PR libstdc++/87194
* include/bits/stl_map.h
(map::map(initializer_list<value_type>, const Compare&, const Alloc&))
(map::map(initializer_list<value_type>, const Alloc&))
(map::map(InputIterator, InputIterator, const Alloc&))
(map::map(InputIterator, InputIterator))
(map::map(InputIterator, InputIterator, const Compare&, const Alloc&))
(map::insert(InputIterator, InputIterator)):
Call _M_insert_range_unique instead of _M_insert_unique.
* include/bits/stl_multimap.h
(multimap::multimap(initializer_list<value_type>, const C&, const A&))
(multimap::multimap(initializer_list<value_type>, const A&))
(multimap::multimap(InputIterator, InputIterator, const A&))
(multimap::multimap(InputIterator, InputIterator))
(multimap::multimap(InputIterator, InputIterator, const C&, const A&))
(multimap::insert(InputIterator, InputIterator)): Call
_M_insert_range_equal instead of _M_insert_equal.
* include/bits/stl_multiset.h
(multiset::multiset(InputIterator, InputIterator))
(multiset::multiset(InputIterator, InputIterator, const C&, const A&))
(multiset::multiset(initializer_list<value_type>, const C&, const A&))
(multiset::multiset(initializer_list<value_type>, const A&))
(multiset::multiset(InputIterator, InputIterator, const A&))
(multiset::insert(InputIterator, InputIterator)): Call
_M_insert_range_equal instead of _M_insert_equal.
* include/bits/stl_set.h
(set::set(InputIterator, InputIterator))
(set::set(InputIterator, InputIterator, const Compare&, const Alloc&))
(set::set(initializer_list<value_type>, const Compare&, const Alloc&))
(set::set(initializer_list<value_type>, const Alloc&))
(set::set(InputIterator, InputIterator, const Alloc&))
(set::insert(InputIterator, InputIterator)):
Call _M_insert_range_unique instead of _M_insert_unique.
* include/bits/stl_tree.h
[__cplusplus >= 201103L] (_Rb_tree::__same_value_type): New alias
template for SFINAE constraints.
[__cplusplus >= 201103L] (_Rb_tree::_M_insert_range_unique): Pair of
constrained overloads that either insert or emplace, depending on
iterator's value_type.
[__cplusplus >= 201103L] (_Rb_tree::_M_insert_range_equal): Likewise.
[__cplusplus < 201103L] (_Rb_tree::_M_insert_range_unique)
(_Rb_tree::_M_insert_range_equal): New functions replacing range
versions of _M_insert_unique and _M_insert_equal.
(_Rb_tree::_M_insert_unique(_InputIterator, _InputIterator))
(_Rb_tree::_M_insert_equal(_InputIterator, _InputIterator)): Remove.
* testsuite/23_containers/map/modifiers/insert/87194.cc: New test.
* testsuite/23_containers/multimap/modifiers/insert/87194.cc: New test.
* testsuite/23_containers/multiset/modifiers/insert/87194.cc: New test.
* testsuite/23_containers/set/modifiers/insert/87194.cc: New test.

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

6 years agoPR libstdc++/78595 implement insertion into maps in terms of emplace
redi [Mon, 3 Sep 2018 14:25:12 +0000 (14:25 +0000)] 
PR libstdc++/78595 implement insertion into maps in terms of emplace

C++14 simplified the specification of the generic insert function
templates to be equivalent to calling emplace (or emplace_hint).
Defining them in terms of emplace takes care of the problems described
in PR 78595, ensuring a single conversion to value_type is done at the
right time.

PR libstdc++/78595
* include/bits/stl_map.h (map::insert(_Pair&&))
(map::insert(const_iterator, _Pair&&)): Do emplace instead of insert.
* include/bits/stl_multimap.h (multimap::insert(_Pair&&))
(multimap::insert(const_iterator, _Pair&&)): Likewise.
* include/bits/unordered_map.h (unordered_map::insert(_Pair&&))
(unordered_map::insert(const_iterator, _Pair&&))
(unordered_multimap::insert(_Pair&&))
(unordered_multimap::insert(const_iterator, _Pair&&)): Likewise.
* testsuite/23_containers/map/modifiers/insert/78595.cc: New test.
* testsuite/23_containers/multimap/modifiers/insert/78595.cc: New test.
* testsuite/23_containers/unordered_map/modifiers/78595.cc: New test.
* testsuite/23_containers/unordered_multimap/modifiers/78595.cc: New
test.

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

6 years agoFix thinko (PR tree-optimization/87201).
marxin [Mon, 3 Sep 2018 13:35:35 +0000 (13:35 +0000)] 
Fix thinko (PR tree-optimization/87201).

2018-09-03  Martin Liska  <mliska@suse.cz>

PR tree-optimization/87201
* tree-switch-conversion.c (switch_decision_tree::balance_case_nodes):
Fix parenthesis in an expression.

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

6 years ago2018-09-03 Richard Biener <rguenther@suse.de>
rguenth [Mon, 3 Sep 2018 13:28:25 +0000 (13:28 +0000)] 
2018-09-03  Richard Biener  <rguenther@suse.de>

PR tree-optimization/87197
* tree-ssa-sccvn.c (vn_nary_build_or_lookup_1): Mark the new def
visited.  CSE the VN_INFO hashtable lookup.

* gcc.dg/torture/pr87197.c: New testcase.

PR tree-optimization/87169
* tree-ssa-sccvn.c (do_rpo_vn): When marking loops for not
iterating make sure there's no extra backedges from irreducible
regions feeding the header.  Mark the destination block
executable.

* gcc.dg/torture/pr87169.c: New testcase.

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

6 years agofixincludes: vxworks: remove unnecessary parentheses in ioctl wrapper macro
villemoes [Mon, 3 Sep 2018 13:26:45 +0000 (13:26 +0000)] 
fixincludes: vxworks: remove unnecessary parentheses in ioctl wrapper macro

The rationale for the fixinclude ioctl macro wrapper is, as far as I can
tell (https://gcc.gnu.org/ml/gcc-patches/2012-09/msg01619.html)

  Fix 2: Add hack for ioctl() on VxWorks.

  ioctl() is supposed to be variadic, but VxWorks only has a three
  argument version with the third argument of type int.  This messes up
  when the third argument is not implicitly convertible to int.  This
  adds a macro which wraps around ioctl() and explicitly casts the third
  argument to an int.  This way, the most common use case of ioctl (with
  a const char * for the third argument) will compile in C++, where
  pointers must be explicitly casted to int.

However, we have existing C++ code that calls the ioctl function via

  ::ioctl(foo, bar, baz)

and obviously this breaks when it gets expanded to

  ::(ioctl)(foo, bar, (int)(baz))

Since the GNU C preprocessor already prevents recursive expansion of
function-like macros, the parentheses around ioctl are unnecessary.

Incidentally, there is also a macro sioIoctl() in the vxworks sioLib.h
header that expands to

  ((pSioChan)->pDrvFuncs->ioctl (pSioChan, cmd, arg))

which also breaks when that gets further expanded to

  ((pSioChan)->pDrvFuncs->(ioctl) (pSioChan, cmd, (int)(arg)))

This patch partly fixes that issue as well, but the third argument to
the pDrvFuncs->ioctl method should be void*, so the cast to (int) is
slightly annoying. Internally, we've simply patched the sioIoctl macro:

  (((pSioChan)->pDrvFuncs->ioctl) (pSioChan, cmd, arg))

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

6 years agoCome up with TARGET_GET_VALID_OPTION_VALUES option hook (PR driver/83193).
marxin [Mon, 3 Sep 2018 08:16:27 +0000 (08:16 +0000)] 
Come up with TARGET_GET_VALID_OPTION_VALUES option hook (PR driver/83193).

2018-09-03  Martin Liska  <mliska@suse.cz>

        PR driver/83193
* common/common-target.def: Add TARGET_GET_VALID_OPTION_VALUES.
* common/common-targhooks.c (default_get_valid_option_values):
        New function.
* common/common-targhooks.h (default_get_valid_option_values):
        Likewise.
* common/config/i386/i386-common.c: Move processor_target_table
        from i386.c.
(ix86_get_valid_option_values): New function.
(TARGET_GET_VALID_OPTION_VALUES): New macro.
* config/i386/i386.c (struct ptt): Move to i386-common.c.
(PTA_*): Move all defined masks into i386-common.c.
(ix86_function_specific_restore): Use new processor_cost_table.
* config/i386/i386.h (struct ptt): Moved from i386.c.
(struct pta): Likewise.
* doc/tm.texi: Document new TARGET_GET_VALID_OPTION_VALUES.
* doc/tm.texi.in: Likewise.
* opt-suggestions.c (option_proposer::suggest_option):
        Pass prefix to build_option_suggestions.
(option_proposer::get_completions): Likewise.
(option_proposer::build_option_suggestions): Use the new target
        hook.
* opts.c (struct option_help_tuple): New struct.
(print_filtered_help): Use the new target hook.
2018-09-03  Martin Liska  <mliska@suse.cz>

        PR driver/83193
* gcc.dg/completion-4.c: New test.

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

6 years ago/cp
paolo [Mon, 3 Sep 2018 07:57:33 +0000 (07:57 +0000)] 
/cp
2018-09-03  Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/84980
* constraint.cc (finish_shorthand_constraint): Early return if the
constraint is erroneous.

/testsuite
2018-09-03  Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/84980
* g++.dg/concepts/pr84980.C: New.

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

6 years agoMake __builtin_expect effective in switch statements (PR middle-end/PR59521).
marxin [Mon, 3 Sep 2018 07:51:56 +0000 (07:51 +0000)] 
Make __builtin_expect effective in switch statements (PR middle-end/PR59521).

2018-09-03  Martin Liska  <mliska@suse.cz>

  PR middle-end/59521
* predict.c (set_even_probabilities): Add likely_edges
        argument and handle cases where we have precisely one
        likely edge.
(combine_predictions_for_bb): Catch also likely_edges.
(tree_predict_by_opcode): Handle gswitch statements.
* tree-cfg.h (find_case_label_for_value): New declaration.
(find_taken_edge_switch_expr): Likewise.
* tree-switch-conversion.c (switch_decision_tree::balance_case_nodes):
        Find pivot in decision tree based on probabily, not by number of
        nodes.
2018-09-03  Martin Liska  <mliska@suse.cz>

  PR middle-end/59521
* c-c++-common/pr59521-1.c: New test.
* c-c++-common/pr59521-2.c: New test.
* gcc.dg/tree-prof/pr59521-3.c: New test.

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

6 years agoDaily bump.
gccadmin [Mon, 3 Sep 2018 00:16:50 +0000 (00:16 +0000)] 
Daily bump.

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

6 years ago2018-09-01 Jerry DeLisle <jvdelisle@gcc.gnu.org>
jvdelisle [Sun, 2 Sep 2018 15:55:51 +0000 (15:55 +0000)] 
2018-09-01  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

* io/io.h: Change declaration of vlist type to
gfc_full_array_i4 to eliminate warning for mismatched type.
* io/format.c ((parse_format_list): Use gfc_full_array_i4.
* io/io.h: Use gfc_full_array_i4.

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

6 years ago * c-common.c (braced_list_to_string): Remove eval parameter.
law [Sun, 2 Sep 2018 15:18:30 +0000 (15:18 +0000)] 
* c-common.c (braced_list_to_string): Remove eval parameter.
Add some more checks.  Always create zero-terminated STRING_CST.
* c-common.h (braced_list_to_string): Adjust prototype.

* c-decl.c (finish_decl): Call braced_list_to_string here ...
* c-parser.c (c_parser_declaration_or_fndef): ... instead of here.

* decl.c (eval_check_narrowing): Remove.
(check_initializer): Move call to braced_list_to_string from here ...
* typeck2.c (store_init_value): ... to here.
(digest_init_r): Remove handing of signed/unsigned char strings.

* c-c++-common/array-init.c: New test.
* g++.dg/init/string2.C: Remove xfail.

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

6 years ago2018-09-02 FranƧois Dumont <fdumont@gcc.gnu.org>
fdumont [Sun, 2 Sep 2018 10:20:57 +0000 (10:20 +0000)] 
2018-09-02  FranƧois Dumont  <fdumont@gcc.gnu.org>

* include/debug/safe_iterator.h
(_Safe_iterator<_It, _Seq, _Cat>::_Self): New.
(_Safe_iterator<_It, _Seq, std::random_access_iterator_tag>::_Self):
New.
(_Safe_iterator<_It, _Seq, std::random_access_iterator_tag>
::_OtherSelf): New.
(_GLIBCXX_DEBUG_VERIFY_OPERANDS, _GLIBCXX_DEBUG_VERIFY_EQ_OPERANDS)
(_GLIBCXX_DEBUG_VERIFY_REL_OPERANDS)
(_GLIBCXX_DEBUG_VERIFY_DIST_OPERANDS): Define macros.
(_Safe_iterator<_It, _Seq, std::random_access_iterator_tag>
::operator+(difference_type)): Use latters, inline as friend.
(_Safe_iterator<_It, _Seq, std::random_access_iterator_tag>
::operator-(difference_type)): Likewise.
(operator==(const _Safe_iterator<>&, const _Safe_iterator<>&)):
Likewise.
(operator!=(const _Safe_iterator<>&, const _Safe_iterator<>&)):
Likewise.
(operator<(const _Safe_iterator<>&, const _Safe_iterator<>&)): Likewise.
(operator<=(const _Safe_iterator<>&, const _Safe_iterator<>&)):
Likewise.
(operator>(const _Safe_iterator<>&, const _Safe_iterator<>&)): Likewise.
(operator>=(const _Safe_iterator<>&, const _Safe_iterator<>&)):
Likewise.
(operator-(const _Safe_iterator<>&, const _Safe_iterator<>&)): Likewise.
(operator+(difference_type, const _Safe_iterator<>&)): Likewise.
(operator-(const _Safe_iterator<>&, difference_type)): Likewise.
* include/debug/safe_iterator.tcc
(_Safe_iterator<>::_M_can_advance(difference_type)): Take parameter by
copy.
* include/debug/safe_local_iterator.h
(_Safe_local_iterator<_It, _Seq>::_Self): New.
(_Safe_local_iterator<_It, _Seq>::_OtherSelf): New.
(_GLIBCXX_DEBUG_VERIFY_OPERANDS): Define macro.
(operator==(const _Safe_local_iterator<>&,
const _Safe_local_iterator<>&)): Use latter, inline as friend.
(operator!=(const _Safe_local_iterator<>&,
const _Safe_local_iterator<>&)): Likewise.
* testsuite/util/testsuite_containers.h: Include utility.
(struct forward_members_unordered<_Tp, bool>): Remove 2nd template
parameter.
(forward_members_unordered<>::forward_members_unordered(value_type&)):
Add using namespace std::rel_ops.
Add iterator_concept_checks on local_iterator and const_local_iterator.
Add asserts on comparison between const_local_iterator and
local_iterator.
(struct forward_members_unordered<_Tp, false>): Remove partial
specialization.
* testsuite/23_containers/forward_list/types/1.cc: New.
* testsuite/23_containers/list/types/1.cc: New.

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

6 years ago * doc/standards.texi (Standards): Update Objective-C reference.
gerald [Sun, 2 Sep 2018 00:31:10 +0000 (00:31 +0000)] 
* doc/standards.texi (Standards): Update Objective-C reference.

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

6 years agoDaily bump.
gccadmin [Sun, 2 Sep 2018 00:16:23 +0000 (00:16 +0000)] 
Daily bump.

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

6 years ago * doc/install.texi (Prerequisites): Update link for MPC.
gerald [Sat, 1 Sep 2018 21:47:58 +0000 (21:47 +0000)] 
* doc/install.texi (Prerequisites): Update link for MPC.

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

6 years ago * doc/generic.texi (OpenMP): Adjust link to openmp.org.
gerald [Sat, 1 Sep 2018 21:29:16 +0000 (21:29 +0000)] 
* doc/generic.texi (OpenMP): Adjust link to openmp.org.
* doc/invoke.texi (C Dialect Options): Ditto.

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

6 years ago * doc/xml/manual/profile_mode.xml: Update three ieeexplore.ieee.org
gerald [Sat, 1 Sep 2018 21:27:14 +0000 (21:27 +0000)] 
* doc/xml/manual/profile_mode.xml: Update three ieeexplore.ieee.org
references.

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

6 years agoFix PR87074
matz [Sat, 1 Sep 2018 17:22:05 +0000 (17:22 +0000)] 
Fix PR87074

PR tree-optimization/87074
* gimple-loop-jam.c (unroll_jam_possible_p): Check loop exit
PHIs for outer-loop uses.

testsuite/
* gcc.dg/pr87074.c: New test.

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

6 years ago * doc/install.texi (Prerequisites): Adjust link mpfr.org.
gerald [Sat, 1 Sep 2018 12:38:04 +0000 (12:38 +0000)] 
* doc/install.texi (Prerequisites): Adjust link mpfr.org.

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

6 years agoDaily bump.
gccadmin [Sat, 1 Sep 2018 00:16:40 +0000 (00:16 +0000)] 
Daily bump.

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

6 years ago2018-08-31 Sandra Loosemore <sandra@codesourcery.com>
sandra [Fri, 31 Aug 2018 19:09:47 +0000 (19:09 +0000)] 
2018-08-31  Sandra Loosemore  <sandra@codesourcery.com>

libstdc++-v3/

* testsuite/21_strings/basic_string/inserters_extractors/wchar_t/10.cc:
Add dg-require-fileio.
* testsuite/21_strings/basic_string/inserters_extractors/wchar_t/11.cc:
Likewise.
* testsuite/21_strings/basic_string/inserters_extractors/wchar_t/5.cc:
Likewise.
* testsuite/21_strings/basic_string_view/inserters/wchar_t/2.cc:
Likewise.
* testsuite/25_algorithms/copy/streambuf_iterators/wchar_t/4.cc:
Likewise.
* testsuite/25_algorithms/find/istreambuf_iterators/wchar_t/2.cc:
Likewise.
* testsuite/27_io/basic_filebuf/close/wchar_t/12790-1.cc: Likewise.
* testsuite/27_io/basic_filebuf/close/wchar_t/12790-2.cc: Likewise.
* testsuite/27_io/basic_filebuf/close/wchar_t/12790-3.cc: Likewise.
* testsuite/27_io/basic_filebuf/close/wchar_t/12790-4.cc: Likewise.
* testsuite/27_io/basic_filebuf/seekoff/wchar_t/11543.cc: Likewise.
* testsuite/27_io/basic_filebuf/seekoff/wchar_t/12790-1.cc:
Likewise.
* testsuite/27_io/basic_filebuf/seekoff/wchar_t/12790-2.cc:
Likewise.
* testsuite/27_io/basic_filebuf/seekoff/wchar_t/12790-3.cc:
Likewise.
* testsuite/27_io/basic_filebuf/seekoff/wchar_t/12790-4.cc:
Likewise.
* testsuite/27_io/basic_filebuf/seekpos/wchar_t/12790-1.cc:
Likewise.
* testsuite/27_io/basic_filebuf/seekpos/wchar_t/12790-2.cc:
Likewise.
* testsuite/27_io/basic_filebuf/seekpos/wchar_t/12790-4.cc:
Likewise.
* testsuite/27_io/basic_filebuf/underflow/wchar_t/2.cc: Likewise.
* testsuite/27_io/basic_filebuf/underflow/wchar_t/3.cc: Likewise.
* testsuite/27_io/basic_ifstream/cons/wchar_t/1.cc: Likewise.
* testsuite/27_io/basic_ifstream/open/wchar_t/1.cc: Likewise.
* testsuite/27_io/basic_istream/extractors_character/wchar_t/4.cc:
Likewise.
* testsuite/27_io/basic_istream/extractors_other/wchar_t/2.cc:
Likewise.
* testsuite/27_io/basic_istream/get/wchar_t/2.cc: Likewise.
* testsuite/27_io/basic_istream/getline/wchar_t/5.cc: Likewise.
* testsuite/27_io/basic_istream/ignore/wchar_t/2.cc: Likewise.
* testsuite/27_io/basic_istream/ignore/wchar_t/3.cc: Likewise.
* testsuite/27_io/basic_istream/seekg/wchar_t/sstream.cc: Likewise.
* testsuite/27_io/basic_istream/tellg/wchar_t/sstream.cc: Likewise.
* testsuite/27_io/basic_ofstream/cons/wchar_t/1.cc: Likewise.
* testsuite/27_io/basic_ofstream/open/wchar_t/1.cc: Likewise.
* testsuite/27_io/basic_ostream/inserters_other/wchar_t/1.cc:
Likewise.
* testsuite/27_io/objects/wchar_t/10.cc: Likewise.
* testsuite/27_io/objects/wchar_t/12048-1.cc: Likewise.
* testsuite/27_io/objects/wchar_t/12048-2.cc: Likewise.
* testsuite/27_io/objects/wchar_t/12048-3.cc: Likewise.
* testsuite/27_io/objects/wchar_t/12048-4.cc: Likewise.
* testsuite/27_io/objects/wchar_t/12048-5.cc: Likewise.
* testsuite/experimental/string_view/inserters/wchar_t/2.cc:
Likewise.
* testsuite/ext/stdio_sync_filebuf/wchar_t/1.cc: Likewise.

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

6 years ago2018-08-31 Richard Biener <rguenther@suse.de>
rguenth [Fri, 31 Aug 2018 16:50:13 +0000 (16:50 +0000)] 
2018-08-31  Richard Biener  <rguenther@suse.de>

PR tree-optimization/87168
* tree-ssa-sccvn.c (SSA_VAL): Add visited output parameter.
(rpo_elim::eliminate_avail): When OP was not visited it must
be available.

* gcc.dg/torture/pr87168.c: New testcase.

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

6 years agotree-vrp: add "const" qualifier to various value_range pointers
dmalcolm [Fri, 31 Aug 2018 16:45:47 +0000 (16:45 +0000)] 
tree-vrp: add "const" qualifier to various value_range pointers

gcc/ChangeLog:
* tree-vrp.c (copy_value_range): Convert param "from" from
"value_range *" to "const value_range *".
(range_is_null): Likewise for param "vr".
(range_int_cst_p): Likewise.
(range_int_cst_singleton_p): Likewise.
(symbolic_range_p): Likewise.
(value_ranges_intersect_p): Likewise for both params.
(value_range_nonnegative_p): Likewise for param "vr".
(value_range_constant_singleton): Likewise.
(vrp_set_zero_nonzero_bits): Likewise for param "ar".
(extract_range_into_wide_ints): Likewise for param "vr".
(extract_range_from_multiplicative_op): Likewise for params "vr0"
and "vr1".
(vrp_can_optimize_bit_op): Likewise.
(extract_range_from_binary_expr_1): Likewise for params "vr0_" and
"vr1_".
(extract_range_from_unary_expr): Likewise.
(debug_value_range): Likewise for param "vr".
(value_range::dump): Add "const" qualifier.
(vrp_prop::check_array_ref): Convert local "vr" from
"value_range *" to "const value_range *".
(vrp_prop::check_mem_ref): Likewise.
(vrp_prop::visit_stmt): Likewise for local "old_vr".
(vrp_intersect_ranges_1): Likewise for param "vr_1".
(vrp_intersect_ranges): Likewise.
(simplify_stmt_for_jump_threading): Likewise for local "vr".
(vrp_prop::vrp_finalize): Likewise.
* tree-vrp.h (value_range::dump): Add "const" qualifier.
(vrp_intersect_ranges): Add "const" qualifier to params as above.
(extract_range_from_unary_expr): Likewise.
(value_range_constant_singleton): Likewise.
(symbolic_range_p): Likewise.
(copy_value_range): Likewise.
(extract_range_from_binary_expr_1): Likewise.
(range_int_cst_p): Likewise.
(vrp_set_zero_nonzero_bits): Likewise.
(range_int_cst_singleton_p): Likewise.

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

6 years ago[AArch64] Implement new intrinsics vabsd_s64 and vnegd_s64.
vladlazar [Fri, 31 Aug 2018 15:00:54 +0000 (15:00 +0000)] 
[AArch64] Implement new intrinsics vabsd_s64 and vnegd_s64.

gcc/
2018-08-31  Vlad Lazar  <vlad.lazar@arm.com>

* config/aarch64/arm_neon.h (vabsd_s64): New.
(vnegd_s64): Likewise.

gcc/testsuite/
2018-08-31  Vlad Lazar  <vlad.lazar@arm.com>

* gcc.target/aarch64/scalar_intrinsics.c (test_vnegd_s64): New.
* gcc.target/aarch64/vneg_s.c (RUN_TEST_SCALAR): New.
(test_vnegd_s64): Likewise.
* gcc.target/aarch64/vnegd_64.c: New.
* gcc.target/aarch64/vabsd_64.c: New.
* gcc.tartget/aarch64/vabs_intrinsic_3.c: New

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

6 years ago[PR c++/87155] Anonymous namespace and
nathan [Fri, 31 Aug 2018 12:38:00 +0000 (12:38 +0000)] 
[PR c++/87155] Anonymous namespace and

https://gcc.gnu.org/ml/gcc-patches/2018-08/msg02031.html
PR c++/87155
PR c++/84707
cp/
* name-lookup.c (name_lookup::search_namespace): Don't look at
inlines when searching for NULL names.
testsuite/
* g++.dg/cpp0x/pr87155.C: New.
* g++.dg/cpp0x/inline-ns10.C: Adjust.

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

6 years ago[PATCH] Fix thinko in estimate_local_effects in IPA-CP
jamborm [Fri, 31 Aug 2018 12:14:37 +0000 (12:14 +0000)] 
[PATCH] Fix thinko in estimate_local_effects in IPA-CP

2018-08-31  Martin Jambor  <mjambor@suse.cz>

* ipa-cp.c (estimate_local_effects): Replace wrong MAX with MIN.

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

6 years agoIPA ICF: make type cache a static field sem_item.
marxin [Fri, 31 Aug 2018 11:37:09 +0000 (11:37 +0000)] 
IPA ICF: make type cache a static field sem_item.

2018-08-31  Martin Liska  <mliska@suse.cz>

* ipa-icf.c (sem_item::add_type): Use
sem_item::m_type_hash_cache.
* ipa-icf.h: Move the cache from sem_item_optimizer
to sem_item.

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

6 years ago[C++ PATCH] Remove K&R declaration hack.
nathan [Fri, 31 Aug 2018 11:19:33 +0000 (11:19 +0000)] 
[C++ PATCH] Remove K&R declaration hack.

https://gcc.gnu.org/ml/gcc-patches/2018-08/msg01885.html
gcc/
* doc/extend.texi (Backwards Compatibility): Remove implicit
extern C leeway of () being (...).
gcc/cp/
* decl.c (decls_match): Remove SYSTEM_IMPLICIT_EXTERN_C matching
of return types and parms.
* parser.c (cp_parser_parameter_declaration_clause): Likewise,
'()' always means '(void)'.

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

6 years ago[ipa-inline][obvious] Fix typos in comment
ktkachov [Fri, 31 Aug 2018 10:36:54 +0000 (10:36 +0000)] 
[ipa-inline][obvious] Fix typos in comment

* ipa-inline.c (can_inline_edge_by_limits_p): Fix typos in comment.

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

6 years agors6000: Make lround<mode>di2 depend on TARGET_FPRND (PR86684)
segher [Fri, 31 Aug 2018 08:52:13 +0000 (08:52 +0000)] 
rs6000: Make lround<mode>di2 depend on TARGET_FPRND (PR86684)

TARGET_FPRND should be on for everything ISA 2.04 and later, and
TARGET_VSX implies ISA 2.06 or later; but it is possible to disable
TARGET_FPRND (separately via -mno-fprnd, but also implicitly)
currently, and then things fall down.  This patch makes things not
fall down.

PR target/86684
PR target/87149
* config/rs6000/rs6000.md (lround<mode>di2): Gate on TARGET_FPRND.

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

6 years ago PR middle-end/87138
jakub [Fri, 31 Aug 2018 07:49:12 +0000 (07:49 +0000)] 
PR middle-end/87138
* expmed.c (expand_mult_const): Use immed_wide_int_const instead of
gen_int_mode.  Formatting fixes.

* gcc.target/i386/avx512bw-pr87138.c: New test.

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

6 years ago2018-08-31 Paul Thomas <pault@gcc.gnu.org>
pault [Fri, 31 Aug 2018 06:51:31 +0000 (06:51 +0000)] 
2018-08-31  Paul Thomas  <pault@gcc.gnu.org>

PR fortran/86328
PR fortran/86760
* trans-array.c (gfc_conv_scalarized_array_ref): Do not fix
info->descriptor but pass it directly to gfc_build_array_ref.
(gfc_conv_array_ref): Likewise for se->expr.
* trans.c (gfc_build_array_ref): If 'decl' is a COMPONENT_REF
obtain the span field directly from it.

2018-08-31  Paul Thomas  <pault@gcc.gnu.org>

PR fortran/86328
PR fortran/86760
* gfortran.dg/pr86328.f90 : New test.
in comment 12 of the PR.
* gfortran.dg/pr86760.f90 : New test.

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

6 years agoFix PR testsuite/86519 reference.
ro [Fri, 31 Aug 2018 06:43:07 +0000 (06:43 +0000)] 
Fix PR testsuite/86519 reference.

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

6 years agoDaily bump.
gccadmin [Fri, 31 Aug 2018 00:16:48 +0000 (00:16 +0000)] 
Daily bump.

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

6 years ago2018-08-30 Sandra Loosemore <sandra@codesourcery.com>
sandra [Thu, 30 Aug 2018 21:27:44 +0000 (21:27 +0000)] 
2018-08-30  Sandra Loosemore  <sandra@codesourcery.com>

gcc/testsuite/
* g++.dg/cpp0x/noexcept30.C: Make dependence on
-fdelete-null-pointer-checks explicit.
* g++.dg/cpp1y/constexpr-82218.C: Likewise.
* g++.dg/expr/pmf-3.C: Likewise.
* g++.dg/ext/attr-returns-nonnull.C: Likewise.
* g++.dg/tree-ssa/lifetime-dse1.C: Likewise.
* g++.dg/tree-ssa/pr61034.C: Likewise.
* gcc.dg/addr_equal-1.c: Likewise.
* gcc.dg/ipa/pr85734.c: Likewise.
* gcc.dg/ipa/propmalloc-1.c: Likewise.
* gcc.dg/ipa/propmalloc-2.c: Likewise.
* gcc.dg/ipa/propmalloc-3.c: Likewise.
* gcc.dg/tree-ssa/pr78154.c: Likewise.
* gcc.dg/tree-ssa/pr83648.c: Likewise.

libstdc++-v3/
* testsuite/experimental/propagate_const/observers/1.cc: Make
dependence on -fdelete-null-pointer-checks explicit.

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

6 years agoPR testsuite/87158 - FAIL gcc.c-torture/execute/memchr-1.c on big endian targets
msebor [Thu, 30 Aug 2018 21:25:10 +0000 (21:25 +0000)] 
PR testsuite/87158 - FAIL gcc.c-torture/execute/memchr-1.c on big endian targets

gcc/testsuite/ChangeLog:
* gcc.c-torture/execute/memchr-1.c: Correct big-endian expectations.

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

6 years ago2018-08-30 Sandra Loosemore <sandra@codesourcery.com>
sandra [Thu, 30 Aug 2018 21:02:37 +0000 (21:02 +0000)] 
2018-08-30  Sandra Loosemore  <sandra@codesourcery.com>

gcc/
* target.def (custom_function_descriptors): Improve documentation.
* doc/tm.texi.in (Trampolines): Expand discussion of function
descriptors and move TARGET_CUSTOM_FUNCTION_DESCRIPTORS to the
beginning of the section.
* doc/tm.texi: Regenerated.

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

6 years agogcc:
jemarch [Thu, 30 Aug 2018 20:28:31 +0000 (20:28 +0000)] 
gcc:

2018-08-30  Jose E. Marchesi  <jose.marchesi@oracle.com>

* cfg.h (class auto_edge_flag): Spell out the template-id of the
base class in the initializer list.  This is a workaround for
building with older GCC.
(class auto_bb_flag): Likewise.

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

6 years ago2018-08-30 Aaron Sawdey <acsawdey@linux.ibm.com>
acsawdey [Thu, 30 Aug 2018 18:17:00 +0000 (18:17 +0000)] 
2018-08-30  Aaron Sawdey  <acsawdey@linux.ibm.com>

* config/rs6000/altivec.md (altivec_eq<mode>): Remove star.
(altivec_vcmpequ<VI_char>_p): Remove star.
* config/rs6000/rs6000-string.c (do_load_for_compare): Support
vector load modes.
(expand_strncmp_vec_sequence): New function.
(emit_final_str_compare_vec): New function.
(expand_strn_compare): Add support for vector strncmp.
* config/rs6000/rs6000.opt (-mstring-compare-inline-limit): Change
length specification to bytes.
* config/rs6000/vsx.md (vsx_ld_elemrev_v16qi_internal): Remove star.
(vcmpnezb_p): New pattern.
* doc/invoke.texi (RS/6000 and PowerPC Options): Update documentation
for option -mstring-compare-inline-limit.

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

6 years agox86: Move AESNI generation to Skylake and Goldmont
hjl [Thu, 30 Aug 2018 15:59:41 +0000 (15:59 +0000)] 
x86: Move AESNI generation to Skylake and Goldmont

The instruction set first appeared with Westmere, but not all processors
in that and the next few generations have the instructions. According to
Wikipedia[1], the first generation in which all SKUs have AES
instructions are Skylake and Goldmont. I can't find any Skylake,
Kabylake, Kabylake-R or Cannon Lake currently listed at
https://ark.intel.com that says "IntelĀ® AES New Instructions" "No".

[1] https://en.wikipedia.org/wiki/AES_instruction_set

2018-08-30  Thiago Macieira  <thiago.macieira@intel.com>

* config/i386/i386.c (PTA_WESTMERE): Remove PTA_AES.
(PTA_SKYLAKE): Add PTA_AES.
(PTA_GOLDMONT): Likewise.

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

6 years ago PR lto/86517
hubicka [Thu, 30 Aug 2018 15:50:39 +0000 (15:50 +0000)] 
PR lto/86517
* lto-opts.c (lto_write_options): Always stream PIC/PIE mode.
* lto-wrapper.c (merge_and_complain): Fix merging of PIC/PIE.

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

6 years ago[libcpp] fix some line map comments
nathan [Thu, 30 Aug 2018 15:16:21 +0000 (15:16 +0000)] 
[libcpp] fix some line map comments

https://gcc.gnu.org/ml/gcc-patches/2018-08/msg01978.html
* include/line-map.h (enum lc_reason): Comment each member
separately.
(struct line_maps): Fix reallocator comment.

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

6 years agoAvoid undefined shifts in ceil2 operations
redi [Thu, 30 Aug 2018 15:07:35 +0000 (15:07 +0000)] 
Avoid undefined shifts in ceil2 operations

For values where the result cannot be represented the shift width would
be equal to the width of the type, which is undefined. Perform two
well-defined shifts instead of one possible undefined shift.

* include/bits/hashtable_policy.h (__clp2): Fix calculation for LLP64
targets where sizeof(size_t) > sizeof(long). Avoid undefined shifts
of the number of bits in the type.
* include/std/bit (__ceil2): Avoid undefined shifts.
* testsuite/26_numerics/bit/bit.pow.two/ceil2.cc: Test values with
the most signifiant bit set.

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

6 years ago * lto-streamer-out.c (DFS::DFS_write_tree_body): Do not follow
hubicka [Thu, 30 Aug 2018 15:05:38 +0000 (15:05 +0000)] 
* lto-streamer-out.c (DFS::DFS_write_tree_body): Do not follow
TYPE_STUB_DECL.
(hash_tree): Do not visit TYPE_STUB_DECL.
* tree-streamer-out.c (write_ts_type_common_tree_pointers): Do not
stream TYPE_STUB_DECL.
* tree-streamer-in.c (lto_input_ts_type_common_tree_pointers): Likewise.
* ipa-utils.h (type_with_linkage_p): Do not rely on TYPE_STUB_DECL
after free_lang_data.
(type_in_anonymous_namespace_p): Likewise.

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

6 years agoMove strcmpopt_6.c from gcc.dg to gcc.target/aarch64 and gcc.target/i386.
qinzhao [Thu, 30 Aug 2018 14:46:53 +0000 (14:46 +0000)] 
Move strcmpopt_6.c from gcc.dg to gcc.target/aarch64 and gcc.target/i386.

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

6 years agogimplefe: expose MULT_HIGHPART_EXPR
amonakov [Thu, 30 Aug 2018 13:47:59 +0000 (13:47 +0000)] 
gimplefe: expose MULT_HIGHPART_EXPR

* gimple-parser.c (c_parser_gimple_binary_expression): Accept infix
"__MULT_HIGHPART" for MULT_HIGHPART_EXPR.

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

6 years ago * sreal.h (SREAL_PART_BITS): Change to 31; remove seemingly unnecessary
hubicka [Thu, 30 Aug 2018 12:58:42 +0000 (12:58 +0000)] 
* sreal.h (SREAL_PART_BITS): Change to 31; remove seemingly unnecessary
comment that it has to be even number.
(class sreal): Change m_sig type to int32_t.
* sreal.c (sreal::dump, sreal::to_int, opreator+, operator-): Use
int64_t for temporary calculations.
(sreal_verify_basics): Drop one bit from minimum and maximum.

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

6 years ago2018-08-30 Richard Biener <rguenther@suse.de>
rguenth [Thu, 30 Aug 2018 12:37:10 +0000 (12:37 +0000)] 
2018-08-30  Richard Biener  <rguenther@suse.de>

PR tree-optimization/87147
* tree-ssa-sccvn.c (SSA_VISITED): New function.
(visit_phi): When the degenerate result is from the backedge and
we didn't visit its definition yet drop to VARYING.
(do_rpo_vn): Properly mark blocks with incoming backedges as executable.

* gcc.dg/torture/pr87147.c: New testcase.

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