Trevor Saunders [Sun, 14 May 2017 00:38:24 +0000 (00:38 +0000)]
store the bitmap_head within the auto_bitmap
This gets rid of one allocation per bitmap. Often the bitmap_head is
now on the stack, when it isn't its part of some other struct on the
heap instead of being refered to by that struct. On 64 bit platforms
this will increase the size of such structs by 24 bytes, but its an over
all win since we don't need an 8 byte pointer pointing at the
bitmap_head. Given that the auto_bitmap owns the bitmap_head anyway we
know there would never be a place where two auto_bitmaps would refer to
the same bitmap_head object.
gcc/ChangeLog:
2017-05-13 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
* bitmap.h (class auto_bitmap): Change type of m_bits to
bitmap_head, and adjust ctor / dtor and member operators.
From-SVN: r248017
GCC Administrator [Sun, 14 May 2017 00:16:26 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r248016
Nicolas Koenig [Sat, 13 May 2017 23:38:36 +0000 (01:38 +0200)]
re PR fortran/80442 (Rejects DATA statement with array slice)
2017-05-09 Nicolas Koenig <koenigni@student.ethz.ch>
PR fortran/80442
* array.c (gfc_ref_dimen_size): Simplify stride
expression
* data.c (gfc_advance_section): Simplify start,
end and stride expressions
(gfc_advance_section): Simplify start and end
expressions
(gfc_get_section_index): Simplify start expression
2017-05-09 Nicolas Koenig <koenigni@student.ethz.ch>
PR fortran/80442
* gfortran.dg/impl_do_var_data.f90: New Test
From-SVN: r248012
Uros Bizjak [Sat, 13 May 2017 21:07:49 +0000 (23:07 +0200)]
compare-elim.c (equivalent_reg_at_start): Return NULL_RTX when returned register mode doesn't match original mode.
* compare-elim.c (equivalent_reg_at_start): Return NULL_RTX
when returned register mode doesn't match original mode.
From-SVN: r248009
Jerry DeLisle [Sat, 13 May 2017 15:33:34 +0000 (15:33 +0000)]
io.c (gfc_resolve_dt): Fix returns to bool type.
2017-05-13 Jerry DeLisle <jvdelisle@gcc.gnu.org>
* io.c (gfc_resolve_dt): Fix returns to bool type.
From-SVN: r248008
Jeff Law [Sat, 13 May 2017 14:40:53 +0000 (08:40 -0600)]
mn10300.c (mn10300_match_ccmode): Fix where we look for cc setter after the compare-elim changes.
2017-05-12 Jeff Law <law@redhat.com>
Jakub Jelinek <jakub@redhat.com>
* config/mn10300/mn10300.c (mn10300_match_ccmode): Fix where
we look for cc setter after the compare-elim changes.
* config/mn10300/mn10300.md (addsi3_flags): Fix order of patterns
within the vector to match what compare-elim now expects.
(subsi3_flags, andsi3_flags, iorsi3_flags): Likewise.
(xorsi3_flags, one_cmplsi2_flags): Likewise.
* config/rx/rx.c (rx_match_ccmode): Fix where we look cc setter
after the compare-elim changes.
* config/rx/rx.md (abssi2_flags): Fix order of patterns within
the vector to match what compare-elim now expects.
(addsi3_flags, adc_flags, addsi3_flags peepholes): Likewise.
(andsi3_flags, negsi2_flags, one_cmplsi2_flags): Likewise.
(iorsi3_flags, rotlsi3_flags, rotrsi3_flags): Likewise.
(ashrsi3_flags, lshrsi3_flags, ashlsi3_flags): Likewise.
(ssaddsi3, subsi3_flags, sbb_flags, xorsi3_flags): Likewise.
* config/visium/visium.c (single_set_and_flags): Fix where
we look for cc setter after the compare-elim changes.
* config/visium/visium.md (flags_subst_logic): Fix order of patterns
with the vector to match what compare-elim now expects.
(flags_subst_arith, add<mode>3_insn_set_carry): Likewise.
(add<mode>3_insn_set_overflow, addsi3_insn_set_carry): Likewise.
(addsi3_insn_set_overflow, sub<mode>3_insn_set_carry): Likewise.
(sub<mode>3_insn_set_overflow, subsi3_insn_set_carry): Likewise.
(subsi3_insn_set_overflow, negsi2_insn_set_carry): Likewise.
(neg<mode>2_insn_set_overflow): Likewise.
Co-Authored-By: Jakub Jelinek <jakub@redhat.com>
From-SVN: r248007
Pekka Jääskeläinen [Sat, 13 May 2017 11:57:16 +0000 (11:57 +0000)]
BRIG FE: Fix an assertion when doing an 'lda' of
a private array offset.
From-SVN: r248006
Jim Wilson [Sat, 13 May 2017 01:32:40 +0000 (01:32 +0000)]
Patch for RTL expand bug affecting aarch64 vector code.
gcc/
PR middle-end/79794
* expmed.c (extract_bit_field_1): Add alt_rtl argument. Before
maybe_expand_insn call, set ops[0].target. If still set after call,
set alt_rtl. Add extra arg to recursive calls.
(extract_bit_field): Add alt_rtl argument. Pass to
extract_bit_field.
* expmed.h (extract_bit_field): Fix prototype.
* expr.c (emit_group_load_1, copy_blkmode_from_reg)
(copy_blkmode_to_reg, read_complex_part, store_field): Pass extra NULL
to extract_bit_field_calls.
(expand_expr_real_1): Pass alt_rtl to expand_expr_real instead of 0.
Pass alt_rtl to extract_bit_field calls.
* calls.c (store_unaligned_arguments_into_psuedos)
load_register_parameters): Pass extra NULL to extract_bit_field calls.
* optabs.c (maybe_legitimize_operand): Clear op->target when call
gen_reg_rtx.
* optabs.h (struct expand_operand): Add target bitfield.
From-SVN: r248004
GCC Administrator [Sat, 13 May 2017 00:16:33 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r248003
François Dumont [Fri, 12 May 2017 21:19:39 +0000 (21:19 +0000)]
Revert revision 247926.
From-SVN: r247998
Joseph Myers [Fri, 12 May 2017 20:29:43 +0000 (21:29 +0100)]
* sv.po: Update.
From-SVN: r247996
Martin Sebor [Fri, 12 May 2017 19:23:00 +0000 (19:23 +0000)]
re PR testsuite/80643 (NA->FAIL: gcc.dg/pr79214.c gcc.dg/pr79222.c gcc.dg/pr79223.c gcc.dg/tree-ssa/builtins-folding-gimple-ub.c)
gcc/testsuite/ChangeLog:
PR testsuite/80643
* gfortran.dg/mvbits_7.f90: Prune diagnostic output incidental
to the purpose of the test.
From-SVN: r247993
Uros Bizjak [Fri, 12 May 2017 19:04:05 +0000 (21:04 +0200)]
compare-elim.c (try_eliminate_compare): Canonicalize operation with embedded compare to [(set (reg:CCM) (compare:CCM...
* compare-elim.c (try_eliminate_compare): Canonicalize
operation with embedded compare to
[(set (reg:CCM) (compare:CCM (operation) (immediate)))
(set (reg) (operation)].
* config/i386/i386.c (TARGET_FLAGS_REGNUM): New define.
From-SVN: r247992
Uros Bizjak [Fri, 12 May 2017 18:52:51 +0000 (20:52 +0200)]
re PR target/80723 (FAIL gcc.target/i386/cadd.c scan assembler sbb)
PR target/80723
* config/i386/i386.c (ix86_rtx_cost) [case PLUS]: Ignore the
cost of adding a carry flag for ADC instruction.
[case MINUS]: Ignore the cost of subtracting a carry flag
for SBB instruction.
From-SVN: r247991
Steven Munroe [Fri, 12 May 2017 18:34:44 +0000 (18:34 +0000)]
config.gcc (powerpc*-*-*): Add bmi2intrin.h, bmiintrin.h, and x86intrin.h
[gcc]
2017-05-12 Steven Munroe <munroesj@gcc.gnu.org>
* config.gcc (powerpc*-*-*): Add bmi2intrin.h, bmiintrin.h,
and x86intrin.h
* config/rs6000/bmiintrin.h: New file.
* config/rs6000/bmi2intrin.h: New file.
* config/rs6000/x86intrin.h: New file.
[gcc/testsuite]
2017-05-12 Steven Munroe <munroesj@gcc.gnu.org>
* gcc.target/powerpc/bmi-andn-1.c: New file
* gcc.target/powerpc/bmi-andn-2.c: New file.
* gcc.target/powerpc/bmi-bextr-1.c: New file.
* gcc.target/powerpc/bmi-bextr-2.c: New file.
* gcc.target/powerpc/bmi-bextr-4.c: New file.
* gcc.target/powerpc/bmi-bextr-5.c: New file.
* gcc.target/powerpc/bmi-blsi-1.c: New file.
* gcc.target/powerpc/bmi-blsi-2.c: New file.
* gcc.target/powerpc/bmi-blsmsk-1.c: new file.
* gcc.target/powerpc/bmi-blsmsk-2.c: New file.
* gcc.target/powerpc/bmi-blsr-1.c: New file.
* gcc.target/powerpc/bmi-blsr-2.c: New File.
* gcc.target/powerpc/bmi-check.h: New File.
* gcc.target/powerpc/bmi-tzcnt-1.c: new file.
* gcc.target/powerpc/bmi-tzcnt-2.c: New file.
* gcc.target/powerpc/bmi2-bzhi32-1.c: New file.
* gcc.target/powerpc/bmi2-bzhi64-1.c: New file.
* gcc.target/powerpc/bmi2-bzhi64-1a.c: New file.
* gcc.target/powerpc/bmi2-check.h: New file.
* gcc.target/powerpc/bmi2-mulx32-1.c: New file.
* gcc.target/powerpc/bmi2-mulx32-2.c: New file.
* gcc.target/powerpc/bmi2-mulx64-1.c: New file.
* gcc.target/powerpc/bmi2-mulx64-2.c: New file.
* gcc.target/powerpc/bmi2-pdep32-1.c: New file.
* gcc.target/powerpc/bmi2-pdep64-1.c: New file.
* gcc.target/powerpc/bmi2-pext32-1.c: New File.
* gcc.target/powerpc/bmi2-pext64-1.c: New file.
* gcc.target/powerpc/bmi2-pext64-1a.c: New File.
From-SVN: r247988
Paolo Carlini [Fri, 12 May 2017 17:53:54 +0000 (17:53 +0000)]
re PR c++/60430 (static_assert and reference to const/constexpr)
2017-05-12 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/60430
* g++.dg/cpp0x/pr60430.C: New.
From-SVN: r247986
Jeff Law [Fri, 12 May 2017 17:36:01 +0000 (11:36 -0600)]
tree-vrp.c (vrp_dom_walker::before_dom_childern): Push unwinding markers.
* tree-vrp.c (vrp_dom_walker::before_dom_childern): Push unwinding
markers.
* g++.dg/tree-ssa/ssa-dom-thread-4.c: Update expected output.
From-SVN: r247985
Peter Bergner [Fri, 12 May 2017 17:13:07 +0000 (12:13 -0500)]
re PR middle-end/80707 (r247844 causes error: extra outgoing edge)
gcc/
PR middle-end/80707
* tree-cfg.c: Remove cfg edges of unreachable case statements.
gcc/testsuite/
PR middle-end/80707
* g++.dg/pr80707.C: New test.
From-SVN: r247984
Than McIntosh [Fri, 12 May 2017 16:36:50 +0000 (16:36 +0000)]
compiler: add calling Bfunction Backend::call_expression
Pass in the calling (containing) Bfunction when invoking the Backend
method call_expression(), so as to handle the case where generation of
the call forces the creation of a temp var within the calling
function.
Reviewed-on: https://go-review.googlesource.com/43270
From-SVN: r247981
Eric Botcazou [Fri, 12 May 2017 15:55:46 +0000 (15:55 +0000)]
re PR ada/80117 (Standard'Word_Size is wrong for aarch64 ILP32)
* system-linux-arm.ads (Memory_Size): Use Long_Integer'Size
instead of Word_Size.
Revert
2017-03-28 Andreas Schwab <schwab@suse.de>
PR ada/80117
* system-linux-aarch64-ilp32.ads: New file.
* gcc-interface/Makefile.in (LIBGNAT_TARGET_PAIRS_COMMON): Rename
from LIBGNAT_TARGET_PAIRS.
(LIBGNAT_TARGET_PAIRS_32, LIBGNAT_TARGET_PAIRS_64): Define.
(LIBGNAT_TARGET_PAIRS): Use LIBGNAT_TARGET_PAIRS_COMMON, and
LIBGNAT_TARGET_PAIRS_64 or LIBGNAT_TARGET_PAIRS_32 for -mabi=lp64
or -mabi=ilp32, resp.
From-SVN: r247979
Will Schmidt [Fri, 12 May 2017 15:40:04 +0000 (15:40 +0000)]
rs6000.c (rs6000_gimple_fold_builtin): Add handling for early expansion of vector divide builtins.
[gcc]
2017-05-10 Will Schmidt <will_schmidt@vnet.ibm.com>
* config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Add handling for
early expansion of vector divide builtins.
(builtin_function_type): Add VSX_BUILTIN_UDIV_V2DI to the list of
builtins identified as having unsigned arguments.
[gcc/testsuite]
2017-05-10 Will Schmidt <will_schmidt@vnet.ibm.com>
* gcc.target/powerpc/fold-vec-div-float.c: New.
* gcc.target/powerpc/fold-vec-div-floatdouble.c: New.
* gcc.target/powerpc/fold-vec-div-longlong.c: New.
From-SVN: r247977
Will Schmidt [Fri, 12 May 2017 15:35:17 +0000 (15:35 +0000)]
rs6000.c (gimple-fold.h): New #include.
[gcc]
2017-05-10 Will Schmidt <will_schmidt@vnet.ibm.com>
* config/rs6000/rs6000.c (gimple-fold.h): New #include.
(rs6000_gimple_fold_builtin): Add handling for early GIMPLE
expansion of vector logical operations (and, andc, or, xor,
nor, orc, nand)
[gcc/testsuite]
2017-05-10 Will Schmidt <will_schmidt@vnet.ibm.com>
* gcc.target/powerpc/fold-vec-logical-ands-char.c: New.
* gcc.target/powerpc/fold-vec-logical-ands-int.c: New.
* gcc.target/powerpc/fold-vec-logical-ands-longlong.c: New.
* gcc.target/powerpc/fold-vec-logical-ands-short.c: New.
* gcc.target/powerpc/fold-vec-logical-ors-char.c: New.
* gcc.target/powerpc/fold-vec-logical-ors-int.c: New.
* gcc.target/powerpc/fold-vec-logical-ors-longlong.c: New.
* gcc.target/powerpc/fold-vec-logical-ors-short.c: New.
* gcc.target/powerpc/fold-vec-logical-other-char.c: New.
* gcc.target/powerpc/fold-vec-logical-other-int.c: New.
* gcc.target/powerpc/fold-vec-logical-other-longlong.c: New.
* gcc.target/powerpc/fold-vec-logical-other-short.c: New.
From-SVN: r247976
Will Schmidt [Fri, 12 May 2017 15:22:58 +0000 (15:22 +0000)]
gimple-fold.c (create_tmp_reg_or_ssa_name): Remove static declaration.
2017-05-12 Will Schmidt <will_schmidt@vnet.ibm.com>
[gcc]
* gimple-fold.c (create_tmp_reg_or_ssa_name): Remove static declaration.
* gimple-fold.h (create_tmp_reg_or_ssa_name): New prototype.
From-SVN: r247975
Will Schmidt [Fri, 12 May 2017 15:17:27 +0000 (15:17 +0000)]
rs6000.c (rs6000_gimple_fold_builtin): Add handling for early GIMPLE expansion of vector multiplies.
[gcc]
2017-05-12 Will Schmidt <will_schmidt@vnet.ibm.com>
* config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Add handling for
early GIMPLE expansion of vector multiplies.
From-SVN: r247974
Jonathan Wakely [Fri, 12 May 2017 14:43:11 +0000 (15:43 +0100)]
PR libstdc++/78939 make tuple_size<cv T> depend on tuple_size<T>
PR libstdc++/78939
* include/std/utility (tuple_size<cv T>): Only define partial
specializations when tuple_size<T>::value is valid.
* testsuite/20_util/tuple/78939.cc: New.
* testsuite/20_util/tuple/cv_tuple_size_neg.cc: New.
From-SVN: r247973
Uros Bizjak [Fri, 12 May 2017 14:35:13 +0000 (16:35 +0200)]
* gcc.target/i386/pr22152.c: Remove unneeded dg-additional-options.
From-SVN: r247972
Prakhar Bahuguna [Fri, 12 May 2017 14:16:52 +0000 (14:16 +0000)]
[ARM] Add missing TARGET_32BIT conditional to movsi
2017-05-12 Prakhar Bahuguna <prakhar.bahuguna@arm.com>
gcc/
* config/arm/arm.md (movsi): Add TARGET_32BIT in addition to the
TARGET_HAVE_MOVT conditional.
(movt splitter): Likewise.
From-SVN: r247971
Paolo Carlini [Fri, 12 May 2017 13:20:21 +0000 (13:20 +0000)]
re PR c++/49604 (forward-declared enum's elements in class scope gets default access (class vs struct))
2017-05-12 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/49604
* g++.dg/cpp0x/forw_enum14.C: New.
* g++.dg/cpp0x/forw_enum15.C: Likewise.
From-SVN: r247969
Ian Lance Taylor [Fri, 12 May 2017 12:49:34 +0000 (12:49 +0000)]
runtime: fix build for non-split-stack systems
Change memory allocation accounting for stacks to use stacks_sys,
since that seems to be what it is for.
Reviewed-on: https://go-review.googlesource.com/43297
From-SVN: r247967
Richard Biener [Fri, 12 May 2017 12:04:31 +0000 (12:04 +0000)]
tree-ssa-sccvn.h (has_VN_INFO): Declare.
2017-05-12 Richard Biener <rguenther@suse.de>
* tree-ssa-sccvn.h (has_VN_INFO): Declare.
* tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
Fold all stmts not inplace.
* g++.dg/tree-ssa/ssa-dse-2.C: Adjust.
From-SVN: r247966
Paolo Carlini [Fri, 12 May 2017 11:24:56 +0000 (11:24 +0000)]
re PR c++/67687 (ICE initializing constexpr member with constexpr constructor)
2017-05-12 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/67687
* g++.dg/cpp0x/constexpr-ice17.C: New.
From-SVN: r247964
Richard Biener [Fri, 12 May 2017 10:54:29 +0000 (10:54 +0000)]
re PR tree-optimization/80713 (recent crash in update_dep_bb)
2017-05-12 Richard Biener <rguenther@suse.de>
PR tree-optimization/80713
* tree-ssa-pre.c (remove_dead_inserted_code): Clear
inserted_exprs bit for not removed stmts.
* gcc.dg/torture/pr80713.c: New testcase.
From-SVN: r247963
Andi Kleen [Fri, 12 May 2017 10:09:50 +0000 (10:09 +0000)]
Limit perf data buffer during profiling
With high -j parallelism the autofdo tests can randomly fail.
autofdo uses Linux perf to record profiling data.
Linux perf uses a locked perf buffer. By default it has
around 516k buffer per uid (/proc/sys/kernel/perf_event_mlock_kb).
An individual perf record tries to grab the full 516k,
which makes parallel perf record fail.
This patch limits the perf buffer for individual perf record to 8k.
With the default settings this allows a parallelism of the test
cases of 16, which is hopefully good enough
(if not would need to add some kind of semaphore, or ask
the user to increase the limit as root)
I also removed an unneeded -o perf.data option
Thanks to Marcin to finally spotting the problem.
Passes bootstrap and test on x86_64-linux. Ok for trunk?
gcc/testsuite/:
2017-05-12 Andi Kleen <ak@linux.intel.com>
PR testsuite/77684
* lib/target-supports.exp (profopt-perf-wrapper):
Add -m8 option to increase parallelism.
From-SVN: r247962
Thomas Schwinge [Fri, 12 May 2017 09:33:18 +0000 (11:33 +0200)]
OpenACC C front end maintenance: c_parser_oacc_single_int_clause
gcc/c/
* c-parser.c (c_parser_omp_clause_num_gangs)
(c_parser_omp_clause_num_workers)
(c_parser_omp_clause_vector_length): Merge functions into...
(c_parser_oacc_single_int_clause): ... this new function. Adjust
all users.
gcc/testsuite/
* c-c++-common/goacc/parallel-dims-1.c: New file.
* c-c++-common/goacc/parallel-dims-2.c: Likewise.
From-SVN: r247960
Rainer Orth [Fri, 12 May 2017 09:20:37 +0000 (09:20 +0000)]
Load new scanlang.exp
libitm:
* testsuite/lib/libitm.exp: Load scanlang.exp.
libgomp:
* testsuite/lib/libgomp.exp: Load scanlang.exp.
libatomic:
* testsuite/lib/libatomic.exp: Load scanlang.exp.
From-SVN: r247959
Thomas Schwinge [Fri, 12 May 2017 09:18:34 +0000 (11:18 +0200)]
[PR middle-end/69921] Use "oacc kernels parallelized" attribute for parallelized OpenACC kernels
gcc/
PR middle-end/69921
* tree-parloops.c (create_parallel_loop): Set "oacc kernels
parallelized" attribute for parallelized OpenACC kernels.
* omp-offload.c (execute_oacc_device_lower): Use it.
gcc/testsuite/
* c-c++-common/goacc/classify-kernels-unparallelized.c: Adjust.
* c-c++-common/goacc/classify-kernels.c: Likewise.
* c-c++-common/goacc/kernels-counter-vars-function-scope.c:
Likewise.
* c-c++-common/goacc/kernels-double-reduction-n.c: Likewise.
* c-c++-common/goacc/kernels-double-reduction.c: Likewise.
* c-c++-common/goacc/kernels-loop-2.c: Likewise.
* c-c++-common/goacc/kernels-loop-3.c: Likewise.
* c-c++-common/goacc/kernels-loop-g.c: Likewise.
* c-c++-common/goacc/kernels-loop-mod-not-zero.c: Likewise.
* c-c++-common/goacc/kernels-loop-n.c: Likewise.
* c-c++-common/goacc/kernels-loop-nest.c: Likewise.
* c-c++-common/goacc/kernels-loop.c: Likewise.
* c-c++-common/goacc/kernels-one-counter-var.c: Likewise.
* c-c++-common/goacc/kernels-reduction.c: Likewise.
* gfortran.dg/goacc/classify-kernels-unparallelized.f95: Likewise.
* gfortran.dg/goacc/classify-kernels.f95: Likewise.
* gfortran.dg/goacc/kernels-loop-2.f95: Likewise.
* gfortran.dg/goacc/kernels-loop-data-2.f95: Likewise.
* gfortran.dg/goacc/kernels-loop-data-enter-exit-2.f95: Likewise.
* gfortran.dg/goacc/kernels-loop-data-enter-exit.f95: Likewise.
* gfortran.dg/goacc/kernels-loop-data-update.f95: Likewise.
* gfortran.dg/goacc/kernels-loop-data.f95: Likewise.
* gfortran.dg/goacc/kernels-loop-n.f95: Likewise.
* gfortran.dg/goacc/kernels-loop.f95: Likewise.
From-SVN: r247957
Thomas Schwinge [Fri, 12 May 2017 09:02:55 +0000 (11:02 +0200)]
Use "oacc kernels" attribute for OpenACC kernels
gcc/
* omp-expand.c (expand_omp_target) <GF_OMP_TARGET_KIND_OACC_KERNELS>:
Set "oacc kernels" attribute.
* omp-general.c (oacc_set_fn_attrib): Remove is_kernel formal
parameter. Adjust all users.
(oacc_fn_attrib_kernels_p): Remove function.
* omp-offload.c (execute_oacc_device_lower): Look for "oacc
kernels" attribute instead of calling oacc_fn_attrib_kernels_p.
* tree-ssa-loop.c (gate_oacc_kernels): Likewise.
* tree-parloops.c (create_parallel_loop): If oacc_kernels_p,
assert "oacc kernels" attribute is set.
gcc/testsuite/
* c-c++-common/goacc/classify-kernels-unparallelized.c: Adjust.
* c-c++-common/goacc/classify-kernels.c: Likewise.
* c-c++-common/goacc/classify-parallel.c: Likewise.
* c-c++-common/goacc/classify-routine.c: Likewise.
* gfortran.dg/goacc/classify-kernels-unparallelized.f95: Likewise.
* gfortran.dg/goacc/classify-kernels.f95: Likewise.
* gfortran.dg/goacc/classify-parallel.f95: Likewise.
* gfortran.dg/goacc/classify-routine.f95: Likewise.
From-SVN: r247955
Thomas Schwinge [Fri, 12 May 2017 08:42:31 +0000 (10:42 +0200)]
Test cases to check OpenACC offloaded function's attributes and classification
gcc/testsuite/
* c-c++-common/goacc/classify-kernels-unparallelized.c: New file.
* c-c++-common/goacc/classify-kernels.c: Likewise.
* c-c++-common/goacc/classify-parallel.c: Likewise.
* c-c++-common/goacc/classify-routine.c: Likewise.
* gfortran.dg/goacc/classify-kernels-unparallelized.f95: Likewise.
* gfortran.dg/goacc/classify-kernels.f95: Likewise.
* gfortran.dg/goacc/classify-parallel.f95: Likewise.
* gfortran.dg/goacc/classify-routine.f95: Likewise.
From-SVN: r247953
Thomas Schwinge [Fri, 12 May 2017 07:56:41 +0000 (09:56 +0200)]
Typo fixes for "Don't assume __secure_getenv is available"
libgfortran/
* runtime/environ.c (weak_secure_getenv): Fix "__secure_gettime"
vs. "__secure_getenv" typo.
(secure_getenv): Fix "HAVE__SECURE_GETENV"
vs. "HAVE___SECURE_GETENV" typo.
From-SVN: r247952
Ian Lance Taylor [Fri, 12 May 2017 01:09:42 +0000 (01:09 +0000)]
mksigtab.sh: recurse once when adding signals to SIGLIST
On MIPS, SIGABRT is defined like this:
#define SIGIOT 6
#define SIGABRT SIGIOT
This breaks addsig which tries to append __SIGIOT_ to SIGLIST. Signal
number 6 is later added to the output and go complains about a
duplicate signal number.
Fix by recursing once when obtaining the signal number from
gen-sysinfo.go if the signal is defined as an alias of another signal.
Also modify the sed expression to 's/.* = //' which is equivalent to
the original expression but is less misleading given that it might not
match a number.
Reviewed-on: https://go-review.googlesource.com/43252
From-SVN: r247948
Ian Lance Taylor [Fri, 12 May 2017 00:59:15 +0000 (00:59 +0000)]
os: use opendir64 and closedir64 on AIX
When using readdir64 on AIX, we must also use
opendir64 and closedir64.
Issue golang/go#19200
Reviewed-on: https://go-review.googlesource.com/43251
From-SVN: r247947
Nathan Sidwell [Fri, 12 May 2017 00:28:44 +0000 (00:28 +0000)]
* lib/gcc-dg.exp (schedule-cleanups): Add lang dump capability.
From-SVN: r247946
GCC Administrator [Fri, 12 May 2017 00:16:29 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r247945
Ian Lance Taylor [Thu, 11 May 2017 23:52:54 +0000 (23:52 +0000)]
re PR go/64238 (ICE in get_partitioning_class, at symtab.c:1775)
PR go/64238
* go-gcc.cc (Gcc_backend::implicit_variable_reference): Set
DECL_EXTERNAL, clear TREE_STATIC.
From-SVN: r247937
Carl Love [Thu, 11 May 2017 22:10:10 +0000 (22:10 +0000)]
rs6000-c: Add support for built-in functions vector unsigned char vec_popcnt (vector...
gcc/ChangeLog:
2017-05-11 Carl Love <cel@us.ibm.com>
* config/rs6000/rs6000-c: Add support for built-in functions
vector unsigned char vec_popcnt (vector signed char)
vector unsigned char vec_popcnt (vector unsigned char)
vector unsigned short vec_popcnt (vector signed short)
vector unsigned short vec_popcnt (vector unsigned short)
vector unsigned int vec_popcnt (vector signed int)
vector unsigned int vec_popcnt (vector unsigned int)
vector unsigned long long vec_popcnt (vector signed long long)
vector unsigned long long vec_popcnt (vector unsigned long long)
vector signed long long vec_slo (vector signed long long,
vector signed char)
vector signed long long vec_slo (vector signed long long,
vector unsigned char)
vector unsigned long long vec_slo (vector unsigned long long,
vector signed char)
vector unsigned long long vec_slo (vector unsigned long long,
vector unsigned char)
* config/rs6000/rs6000-builtin.def: Add definitions for VPOPCNTUB,
VPOPCNTUH, VPOPCNTUW, and VPOPCNTUD overloads.
* config/rs6000/altivec.h: Add define for vec_popcnt, vec_popcntb,
vec_popcnth, vec_popcntw and vec_popcntd built-in functions.
* doc/extend.texi: Update the built-in documentation file for the
new built-in functions.
gcc/testsuite/ChangeLog:
2017-05-11 Carl Love <cel@us.ibm.com>
* gcc.target/powerpc/builtins-3-p8.c: Add tests for the new built-ins
to the test suite file.
* gcc.target/powerpc/builtins-3.c: Add tests for the new built-ins
to the test suite file.
From-SVN: r247933
Michael Meissner [Thu, 11 May 2017 21:51:07 +0000 (21:51 +0000)]
attribs.h (sorted_attr_string): Move machine independent functions for target clone support from the i386 port...
2017-05-11 Michael Meissner <meissner@linux.vnet.ibm.com>
* attribs.h (sorted_attr_string): Move machine independent
functions for target clone support from the i386 port to common
code. Rename ix86_function_versions to common_function_versions.
Rename make_name to make_unique_name.
(common_function_versions): Likewise.
(make_unique_name): Likewise.
(make_dispatcher_decl): Likewise.
(is_function_default_version): Likewise.
* attribs.c (attr_strcmp): Likewise.
(sorted_attr_string): Likewise.
(common_function_versions): Likewise.
(make_unique_name): Likewise.
(make_dispatcher_decl): Likewise.
(is_function_default_version): Likewise.
* config/i386/i386.c (attr_strcmp): Likewise.
(sorted_attr_string): Likewise.
(ix86_function_versions): Likewise.
(make_name): Likewise.
(make_dispatcher_decl): Likewise.
(is_function_default_version): Likewise.
(TARGET_OPTION_FUNCTION_VERSIONS): Update target function hook.
From-SVN: r247932
Ian Lance Taylor [Thu, 11 May 2017 20:55:41 +0000 (20:55 +0000)]
runtime: fix isSystemGoroutine for gccgo
The gc toolchain decides whether a goroutine is a system goroutine by
comparing startpc to a list of saved special PCs. In gccgo that
approach does not work as startpc is often a thunk that invokes the
real function with arguments, so the thunk address never matches the
saved special PCs.
This patch fixes gccgo's understanding of system goroutines. Since
there are only a limited number of them, we simply change each one to
mark itself as special.
This fixes stack dumps and functions like runtime.NumGoroutine to
behave more like gc. It also fixes the goprint test in the gc
testsuite.
Reviewed-on: https://go-review.googlesource.com/43156
From-SVN: r247931
Jerry DeLisle [Thu, 11 May 2017 20:40:49 +0000 (20:40 +0000)]
re PR fortran/78659 ([F03] Spurious "requires DTIO" reported against namelist statement)
2017-05-11 Jerry DeLisle <jvdelisle@gcc.gnu.org>
PR fortran/78659
* io.c (dtio_procs_present): Add new function to check for DTIO
procedures relative to I/O statement READ or WRITE.
(gfc_resolve_dt): Add namelist checks using the new function.
* resolve.c (dtio_procs_present): Remove function and related
namelist checks. (resolve_fl_namelist): Add check specific to
Fortran 95 restriction on namelist objects.
* gfortran.dg/namelist_91.f90: New test.
* gfortran.dg/namelist_92.f90: New test.
* gfortran.dg/namelist_93.f90: New test.
* gfortran.dg/namelist_94.f90: New test.
From-SVN: r247930
François Dumont [Thu, 11 May 2017 20:30:44 +0000 (20:30 +0000)]
2017-05-11 François Dumont <fdumont@gcc.gnu.org>
* include/bits/stl_tree.h [_GLIBCXX_INLINE_VERSION]
(_Rb_tree_impl<>): Remove _Is_pod_comparator
template parameter.
From-SVN: r247929
Bill Schmidt [Thu, 11 May 2017 20:16:02 +0000 (20:16 +0000)]
re PR target/80695 (gratuitous use of stxvx to store multiple pointers)
[gcc]
2017-05-11 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
PR target/80695
* config/rs6000/rs6000.c (rs6000_builtin_vectorization_cost):
Account for direct move costs for vec_construct of integer
vectors.
[gcc/testsuite]
2017-05-11 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
PR target/80695
* gcc.target/powerpc/pr80695-p8.c: New file.
* gcc.target/powerpc/pr80695-p9.c: New file.
From-SVN: r247928
Janne Blomqvist [Thu, 11 May 2017 20:04:53 +0000 (23:04 +0300)]
Don't assume __secure_getenv is available
Glibc 2.17 made __secure_getenv an officially supported function, and
renamed it secure_getenv. The libgfortran configure has checked for
both of these, per
https://sourceware.org/glibc/wiki/Tips_and_Tricks/secure_getenv.
Unfortunately, while the dynamical library (libc.so) retains the
__secure_getenv symbol for backwards compatibility, the static library
(libc.a) does not. This means that a libgfortran.a compiled against an
older glibc will not work if one tries to link against a newer
libc.a. This creates problems for providing gfortran binary
distributions that work on as many target systems as possible.
Thus, retain the support for __secure_getenv but call it only via a
weak reference.
Regtested on x86_64-pc-linux-gnu.
2017-05-11 Janne Blomqvist <jb@gcc.gnu.org>
* libgfortran.h: HAVE_SECURE_GETENV: Don't check
HAVE___SECURE_GETENV.
* environ/runtime.c (secure_getenv): Use __secure_getenv via a
weak reference.
From-SVN: r247927
François Dumont [Thu, 11 May 2017 20:03:47 +0000 (20:03 +0000)]
2017-05-11 François Dumont <fdumont@gcc.gnu.org>
* include/debug/safe_container.h [_GLIBCXX_USE_CXX11_ABI]
(_Safe_container<>): Remove _IsCxx11AllocatorAware template parameter.
* include/debug/string: Adapt.
From-SVN: r247926
François Dumont [Thu, 11 May 2017 19:49:26 +0000 (19:49 +0000)]
2017-05-11 François Dumont <fdumont@gcc.gnu.org>
* include/debug/formatter.h [_GLIBCXX_INLINE_VERSION]
(__gnu_debug::_Error_formatter::_Parameter::_M_print_field): Remove.
(__gnu_debug::_Error_formatter::_Parameter::_M_print_description):
Remove.
(__gnu_debug::_Error_formatter::_M_format_word): Remove.
(__gnu_debug::_Error_formatter::_M_print_word): Remove.
(__gnu_debug::_Error_formatter::_M_print_string): Remove.
(__gnu_debug::_Error_formatter::_M_get_max_length): Remove.
* src/c++11/debug.cc: Adapt.
* config/abi/pre/gnu-versioned-namespace.ver: Adapt.
From-SVN: r247925
Nathan Sidwell [Thu, 11 May 2017 19:15:59 +0000 (19:15 +0000)]
Missing Changelog
Missing Changelog
* libcp1plugin.cc (safe_pushdecl_maybe_friend): Call pushdecl.
From-SVN: r247924
Nathan Sidwell [Thu, 11 May 2017 19:09:51 +0000 (19:09 +0000)]
cp-lang.c (get_global_decls, [...]): Move to ...
* cp-lang.c (get_global_decls, cxx_pushdecl, LANG_HOOK_GETDECLS)
LANG_HOOKS_PUSHDECL): Move to ...
* cp-objcp-common.c (cp_get_global_decls, cp_pushdec)
LANG_HOOK_DECLS, LANG_HOOKS_PUSHDECL): ... here.
* cp-objcp-common.h (cp_get_global_decls, cp_pushdecl): Declare.
((--This line, and those below, will be ignored--
M cp/ChangeLog
M cp/cp-lang.c
M cp/cp-objcp-common.c
M cp/cp-objcp-common.h
From-SVN: r247923
Nathan Sidwell [Thu, 11 May 2017 18:48:55 +0000 (18:48 +0000)]
* libcp1plugin.cc (plugin_build_decl): Adjust add_method call.
From-SVN: r247922
Uros Bizjak [Thu, 11 May 2017 18:12:25 +0000 (20:12 +0200)]
re PR target/80706 (peephole2 uses uninitialized stack variables on i686)
PR target/80706
* config/i386/sync.md (UNSPEC_LDX_ATOMIC): New unspec.
(UNSPEC_STX_ATOMIC): Ditto.
(loaddi_via_sse): New insn.
(storedi_via_sse): Ditto.
(atomic_loaddi_fpu): Emit loaddi_via_sse and storedi_via_sse.
Update corresponding peephole2 patterns.
(atomic_storedi_fpu): Ditto.
testsuite/ChangeLog:
PR target/80706
* gcc.target/i386/pr80706.c: New test.
From-SVN: r247921
Julia Koval [Thu, 11 May 2017 18:01:12 +0000 (20:01 +0200)]
* config/i386/avx512fintrin.h (_mm_mask_rsqrt14_sd)
(_mm_maskz_rsqrt14_sd, _mm_mask_rsqrt14_ss, _mm_maskz_rsqrt14_ss):
New intrinsics.
* config/i386/i386-builtin.def (__builtin_ia32_rsqrt14sd_mask)
(__builtin_ia32_rsqrt14ss_mask): New builtins.
* config/i386/sse.md (rsqrt14_<mode>_mask): New pattern.
testsuite/ChangeLog:
* gcc.target/i386/avx512f-vrsqrt14sd-1.c: Test new intrinsics.
* gcc.target/i386/avx512f-vrsqrt14sd-2.c: Ditto.
* gcc.target/i386/avx512f-vrsqrt14ss-1.c: Ditto.
* gcc.target/i386/avx512f-vrsqrt14ss-2.c: Ditto.
From-SVN: r247920
Nathan Sidwell [Thu, 11 May 2017 17:43:52 +0000 (17:43 +0000)]
* graphite-poly.c: Include dumpfile.h.
From-SVN: r247919
Nathan Sidwell [Thu, 11 May 2017 17:38:55 +0000 (17:38 +0000)]
name-lookup.h (pushdecl): Add default friend parm.
* name-lookup.h (pushdecl): Add default friend parm.
(pushdecl_maybe_friend): Delete.
(pushdecl_top_level): Add default friend parm.
(pushdecl_top_level_maybe_friend): Delete.
* name-lookup.c (pushdecl_maybe_friend): Delete.
(pushdecl): Add is_friend parm.
(pushdecl_top_level): Add is friend_parm.
(pushdecl_top_level_maybe_friend, pushdecl_top_level_1): Delete.
(pushdecl_top_level_and_finish): Do pushing and finishing
directly.
* friend.c (do_friend): Adjust.
* pt.c (tsubst_friend_class): Adjust.
From-SVN: r247918
Paolo Carlini [Thu, 11 May 2017 17:13:42 +0000 (17:13 +0000)]
re PR c++/70538 (ICE on a deprecated access declaration in instantiate_template_1, at cp/pt.c:17310)
2017-05-11 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/70538
* g++.dg/cpp0x/pr70538.C: New.
From-SVN: r247917
Nathan Sidwell [Thu, 11 May 2017 15:48:51 +0000 (15:48 +0000)]
dumpfle.h (dump_function): Declare here ...
* dumpfle.h (dump_function): Declare here ...
* tree-dump.h (dump_function): ... not here.
* dumpfile.c: #include tree-cfg.h.
(dump_function): Move here from ...
* tree-dump.c (dump_function): ... here.
* gimplify.c: #include splay-tree.h, not tree-dump.h.
* graphite-poly.c: Don't include tree-dump.h.
* cgraphclones.c: Include dumpfile.h not tree-dump.h.
* print-tree.c: Likewise.
* stor-layout.c: Likewise.
* tree-nested.c: Likewise.
c/
* gimple-parser.c: Don't #include tree-dump.h.
fortran/
* trans-decl.c: Include dumpfile.h not tree-dump.h,
From-SVN: r247916
Nathan Sidwell [Thu, 11 May 2017 15:46:48 +0000 (15:46 +0000)]
Revert pushdecl_top_level_and_finish name change.
* name-lookup.h (pushdecl_top_level_and_finish): Resurrect old
name.
* name-lookup.c (pushdecl_top_level_and_finish): Likewise.
* decl.c (cp_make_fname_decl): Adjust.
* decl2.c (get_guard, handle_tls_init): Adjust.
* rtti.c (get_tinfo_decl, tinfo_base_init): Adjust.
From-SVN: r247915
Uros Bizjak [Thu, 11 May 2017 15:41:50 +0000 (17:41 +0200)]
pr22152.c: Fix undefined testcase.
* gcc.target/i386/pr22152.c: Fix undefined testcase. Remove
unnecessary loop. Run on 32-bit targets only.
(dg-options): Remove -fno-tree-sink.
From-SVN: r247914
Steven Munroe [Thu, 11 May 2017 15:41:24 +0000 (15:41 +0000)]
As I will be working on X86 intrinsic equivalents for PowerPC64LE
adding myself to Write After Approval list.
2017-05-11 Steven Munroe <munroesj@gcc.gnu.org>
* MAINTAINERS: Add myself to Write After Approval section.
From-SVN: r247913
Jonathan Wakely [Thu, 11 May 2017 15:01:10 +0000 (16:01 +0100)]
Fix ViewCVS URLs in libstdc++ manual
* doc/xml/manual/allocator.xml: Fix ViewCVS URLs.
* doc/xml/manual/mt_allocator.xml: Likewise.
* doc/html/*: Regenerate.
From-SVN: r247911
Nathan Sidwell [Thu, 11 May 2017 14:51:07 +0000 (14:51 +0000)]
name-lookup.c (pushdecl_outermost_localscope): Always conditionally stop timer.
* name-lookup.c (pushdecl_outermost_localscope): Always
conditionally stop timer.
From-SVN: r247910
Nathan Sidwell [Thu, 11 May 2017 14:40:28 +0000 (14:40 +0000)]
decl.c (xref_tag_1): Don't frob ts_lambda scope here.
* decl.c (xref_tag_1): Don't frob ts_lambda scope here.
* name-lookup.c (pushtag_1): Deal with ts_lambda scope.
From-SVN: r247909
Nathan Sidwell [Thu, 11 May 2017 14:23:16 +0000 (14:23 +0000)]
dumpfile.h (TDF_FLAGS): New.
* dumpfile.h (TDF_FLAGS): New.
* dumpfile.c (dump_start): Use TDF_FLAGS.
(dump_enable_all): Fix TDF_KIND check thinko.
From-SVN: r247908
Kelvin Nilsen [Thu, 11 May 2017 14:13:31 +0000 (14:13 +0000)]
cmpb-1.c: New test.
gcc/testsuite/ChangeLog:
2017-05-11 Kelvin Nilsen <kelvin@gcc.gnu.org>
* gcc.target/powerpc/cmpb-1.c: New test.
* gcc.target/powerpc/cmpb-2.c: New test.
* gcc.target/powerpc/cmpb-3.c: New test.
* gcc.target/powerpc/cmpb32-1.c: New test.
* gcc.target/powerpc/cmpb32-2.c: New test.
gcc/ChangeLog:
2017-05-11 Kelvin Nilsen <kelvin@gcc.gnu.org>
* config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
array entries to represent two legal parameterizations of the
overloaded __builtin_cmpb function, as represented by the
P6_OV_BUILTIN_CMPB constant.
(altivec_resolve_overloaded_builtin): Add special case handling
for the __builtin_cmpb function, as represented by the
P6_OV_BUILTIN_CMPB constant.
* config/rs6000/rs6000-builtin.def (BU_P6_2): New macro.
(BU_P6_64BIT_2): New macro.
(BU_P6_OVERLOAD_2): New macro
(CMPB_32): Add 32-bit compare-bytes support for 32-bit only targets.
(CMPB): Add 64-bit compare-bytes support for 32-bit and 64-bit targets.
(CMPB): Add overload support to represent both 32-bit and 64-bit
compare-bytes function.
* config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Add
support for TARGET_CMPB.
* config/rs6000/rs6000.h: Add support for RS6000_BTM_CMPB.
* doc/extend.texi (PowerPC AltiVec Built-in Functions): Add
documentation of the __builtin_cmpb overloaded built-in function.
From-SVN: r247907
Richard Biener [Thu, 11 May 2017 14:08:07 +0000 (14:08 +0000)]
re PR tree-optimization/80705 (Incorrect code generated for profile counter updates due to SLP+LIM)
2017-05-11 Richard Biener <rguenther@suse.de>
PR tree-optimization/80705
* tree-vect-data-refs.c (vect_analyze_data_refs): DECL_NONALIASED
bases are not vectorizable.
* gcc.dg/vect/bb-slp-pr80705.c: New testcase.
From-SVN: r247906
Jonathan Wakely [Thu, 11 May 2017 13:21:07 +0000 (14:21 +0100)]
PR libstdc++/80285 optimize std::make_shared for -fno-rtti
PR libstdc++/80285
* include/bits/shared_ptr_base.h (_Sp_make_shared_tag::_S_ti): Define
function to get unique fake std::type_info reference.
(_Sp_counted_ptr_inplace::_M_get_deleter) [!__cpp_rtti]: Compare to
_S_ti() fake reference.
(__shared_ptr(_Sp_make_shared_tag, const Alloc&, Args&&...)): Share
single implementation with or without RTTI enable.
[!__cpp_rtti]: Pass fake reference to _M_get_deleter.
* testsuite/20_util/shared_ptr/creation/alloc.cc: Change expected
allocation and deallocation counts.
* testsuite/20_util/shared_ptr/creation/single_allocation.cc: New.
* testsuite/20_util/shared_ptr/creation/single_allocation_no_rtti.cc:
New.
From-SVN: r247905
Nathan Sidwell [Thu, 11 May 2017 13:09:42 +0000 (13:09 +0000)]
scanlang.exp: New.
* lib/scanlang.exp: New.
* lib/gcc-dg.exp: Load scanlang.exp.
* g++.dg/inherit/covariant7.C: Use scan-lang-dump.
From-SVN: r247904
Mikhail Maltsev [Thu, 11 May 2017 12:27:37 +0000 (12:27 +0000)]
GIMPLEFE: Handle invalid SSA names
gcc/testsuite/
PR testsuite/80580
* gcc.dg/gimplefe-error-6.c: New test.
gcc/c/
PR testsuite/80580
* gimple-parser.c (c_parser_parse_ssa_name): Validate SSA name base.
From-SVN: r247903
Nathan Sidwell [Thu, 11 May 2017 11:57:01 +0000 (11:57 +0000)]
cp-tree.h (pushdecl, [...]): Move declarations to ...
* cp-tree.h (pushdecl, pushdecl_maybe_friend, pushtag)
pushtag_top_level_maybe_friend,
pushdecl_top_level_and_finish): Move declarations to ...
* name-lookup.h: ... here. Group pushdecl variants.
(pushdecl_top_level_and_finish): Rename to ...
(pushdecl_top_level_with_init): ... here.
* decl.c (cp_make_fname_decl): Use pushdecl_top_level_with_init.
* decl2.c (get_guard, handle_tls_init): Likewise.
* rtti.c (get_tinfo_decl, tinfo_base_init): Likewise.
* lambda.c (maybe_add_lambda_conv_op): Use namespace_bindings_p.
* method.c (implicitly_declare_fn): Likewise.
* searchc (node_debug_info_needed): Likewise.
* name-lookup.c (pushdecl_top_level_and_finish): Rename to ...
(pushdecl_top_level_with_init): ... here.
(pop_everything): Use namespace_bindings_p.
(--This line, and those below, will be ignored--
M cp/ChangeLog
M cp/method.c
M cp/cp-tree.h
M cp/decl.c
M cp/lambda.c
M cp/rtti.c
M cp/name-lookup.c
M cp/decl2.c
M cp/name-lookup.h
M cp/search.c
From-SVN: r247902
Nathan Sidwell [Thu, 11 May 2017 11:06:26 +0000 (11:06 +0000)]
name-lookup.h (pop_binding): Rename to pop_local_binding.
* name-lookup.h (pop_binding): Rename to pop_local_binding.
(getdecls): Rename to get_local_decls.
* name-lookup.c (pop_binding): Rename to ...
(pop_local_binding): ... here.
(pop_bindings_and_leave_scope): Adjust.
(getdecls): Rename to ...
(get_local_decls): ... here. Assert local scope.
* decl.c (poplevel): Assert not namespace. Adjust and simplify
logic.
(store_parm_decls): Adjust get_local_decls call.
(parser.c (synthesize_implicit_template_parm): Likewise.
From-SVN: r247901
Mikhail Maltsev [Thu, 11 May 2017 10:55:52 +0000 (10:55 +0000)]
GIMPLEFE: handle invalid __MEM
gcc/c/
PR testsuite/80580
* gimple-parser.c (c_parser_gimple_postfix_expression): Handle
incorrect __MEM syntax.
gcc/testsuite/
PR testsuite/80580
* gcc.dg/gimplefe-error-5.c: New test.
From-SVN: r247900
Mikhail Maltsev [Thu, 11 May 2017 10:48:54 +0000 (10:48 +0000)]
GIMPLEFE: Handle invalid unary "*" operand type
gcc/c/
PR testsuite/80580
* gimple-parser.c (c_parser_gimple_unary_expression): Check argument
type of unary '*'.
gcc/testsuite/
PR testsuite/80580
* gcc.dg/gimplefe-error-4.c: New test.
From-SVN: r247899
Bin Cheng [Thu, 11 May 2017 09:57:06 +0000 (09:57 +0000)]
tree-ssa-loop-ivopts.c (determine_set_costs): Skip non-interger when counting register pressure.
* tree-ssa-loop-ivopts.c (determine_set_costs): Skip non-interger
when counting register pressure.
From-SVN: r247898
Bin Cheng [Thu, 11 May 2017 09:55:56 +0000 (09:55 +0000)]
tree-ssa-loop-ivopts.c (compare_cost_pair): New.
* tree-ssa-loop-ivopts.c (compare_cost_pair): New.
(iv_ca_more_deps): Renamed to ...
(iv_ca_compare_deps): ... this.
(iv_ca_extend): Extend iv_ca if NEW_CP is cheaper than OLD_CP.
From-SVN: r247897
Bin Cheng [Thu, 11 May 2017 09:54:30 +0000 (09:54 +0000)]
tree-ssa-loop-ivopts.c (find_interesting_uses): Move inv vars dump to ...
* tree-ssa-loop-ivopts.c (find_interesting_uses): Move inv vars dump
to ...
(determine_group_iv_costs): ... here.
(find_inv_vars_cb): Record inv var if it's not recorded before.
From-SVN: r247896
Bin Cheng [Thu, 11 May 2017 09:52:52 +0000 (09:52 +0000)]
tree-ssa-loop-ivopts.c (allow_ip_end_pos_p): Refine comments.
* tree-ssa-loop-ivopts.c (allow_ip_end_pos_p): Refine comments.
(get_shiftadd_cost): Ditto.
From-SVN: r247895
Bin Cheng [Thu, 11 May 2017 09:51:41 +0000 (09:51 +0000)]
tree-ssa-address.c: Include header file.
* tree-ssa-address.c: Include header file.
(move_hint_to_base): Return TRUE if BASE_HINT is moved to memory
address.
(add_to_parts): Refactor.
(addr_to_parts): New parameter. Update use of move_hint_to_base.
(create_mem_ref): Update use of addr_to_parts. Re-associate addr
in new order.
From-SVN: r247894
Bin Cheng [Thu, 11 May 2017 09:50:15 +0000 (09:50 +0000)]
re PR tree-optimization/53090 (suboptimal ivopt)
PR tree-optimization/53090
* tree-ssa-loop-ivopts.c (enum comp_iv_rewrite): New enum value
COMP_IV_EXPR_2.
(extract_cond_operands): Detect condition with IV on both sides
and return COMP_IV_EXPR_2.
(find_interesting_uses_cond): Add iv_use for both IVs in condition.
(rewrite_use_compare): Simplify by removing call to function
extract_cond_operands.
From-SVN: r247893
Bin Cheng [Thu, 11 May 2017 09:48:55 +0000 (09:48 +0000)]
tree-ssa-loop-ivopts.c (enum comp_iv_rewrite): New.
* tree-ssa-loop-ivopts.c (enum comp_iv_rewrite): New.
(extract_cond_operands): Detect condition comparing against non-
invariant bound and return appropriate enum value.
(find_interesting_uses_cond): Update use of extract_cond_operands.
Handle its return value accordingly.
(determine_group_iv_cost_cond, rewrite_use_compare): Ditto.
From-SVN: r247892
Bin Cheng [Thu, 11 May 2017 09:47:24 +0000 (09:47 +0000)]
tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Re-associate nonlinear iv_use computation in loop invariant sensitive way.
* tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Re-associate
nonlinear iv_use computation in loop invariant sensitive way.
From-SVN: r247891
Bin Cheng [Thu, 11 May 2017 09:42:36 +0000 (09:42 +0000)]
tree-ssa-loop-ivopts.c (relate_compare_use_with_all_cands): New.
* tree-ssa-loop-ivopts.c (relate_compare_use_with_all_cands): New.
(find_iv_candidates): Call relate_compare_use_with_all_cands.
From-SVN: r247890
Bin Cheng [Thu, 11 May 2017 09:40:48 +0000 (09:40 +0000)]
tree-ssa-loop-ivopts.c (struct iv_cand): New field inv_exprs.
* tree-ssa-loop-ivopts.c (struct iv_cand): New field inv_exprs.
(dump_cand): Support iv_cand.inv_exprs.
(add_candidate_1): Record invariant exprs in iv_cand.inv_exprs
for candidates.
(iv_ca_set_no_cp, iv_ca_set_cp, free_loop_data): Support
iv_cand.inv_exprs.
From-SVN: r247889
Bin Cheng [Thu, 11 May 2017 09:38:22 +0000 (09:38 +0000)]
tree-ssa-loop-ivopts.c (multiplier_allowed_in_address_p): Move from ...
* tree-ssa-loop-ivopts.c (multiplier_allowed_in_address_p): Move
from ...
* tree-ssa-address.c (multiplier_allowed_in_address_p): ... to here
as local function. Include necessary header files.
* tree-ssa-loop-ivopts.h (multiplier_allowed_in_address_p): Delete.
From-SVN: r247888
Bin Cheng [Thu, 11 May 2017 09:36:05 +0000 (09:36 +0000)]
* tree-ssa-loop-ivopts.c (autoinc_possible_for_pair): Simplify.
From-SVN: r247887
Bin Cheng [Thu, 11 May 2017 09:33:49 +0000 (09:33 +0000)]
tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Handle more operators...
* tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Handle more
operators: TRUNC_DIV_EXPR, BIT_AND_EXPR, BIT_IOR_EXPR, LSHIFT_EXPR,
RSHIFT_EXPR and BIT_NOT_EXPR.
From-SVN: r247886
Bin Cheng [Thu, 11 May 2017 09:31:18 +0000 (09:31 +0000)]
tree-ssa-loop-ivopts.c (get_loop_invariant_expr): Simplify.
* tree-ssa-loop-ivopts.c (get_loop_invariant_expr): Simplify.
(adjust_setup_cost): New parameter supporting round up adjustment.
(struct address_cost_data): Delete.
(force_expr_to_var_cost): Don't bound cost with spill_cost.
(split_address_cost, ptr_difference_cost): Delete.
(difference_cost, compare_aff_trees, record_inv_expr): Delete.
(struct ainc_cost_data): New struct.
(get_address_cost_ainc): New function.
(get_address_cost, get_computation_cost): Reimplement.
(determine_group_iv_cost_address): Record inv_expr for all uses of
a group.
(determine_group_iv_cost_cond): Call get_loop_invariant_expr.
(iv_ca_has_deps): Reimplemented to ...
(iv_ca_more_deps): ... this. Check if NEW_CP introduces more deps
than OLD_CP.
(iv_ca_extend): Call iv_ca_more_deps.
From-SVN: r247885
Bin Cheng [Thu, 11 May 2017 09:27:55 +0000 (09:27 +0000)]
tree-ssa-address.c (struct mem_address): Move to header file.
* tree-ssa-address.c (struct mem_address): Move to header file.
(valid_mem_ref_p, move_fixed_address_to_symbol): Make it global.
* tree-ssa-address.h (struct mem_address): Move from C file.
(valid_mem_ref_p, move_fixed_address_to_symbol): Declare.
From-SVN: r247884
Bin Cheng [Thu, 11 May 2017 09:25:30 +0000 (09:25 +0000)]
tree-affine.h (aff_combination_type): New interface.
* tree-affine.h (aff_combination_type): New interface.
(aff_combination_zero_p): Remove static.
(aff_combination_const_p): New interface.
(aff_combination_singleton_var_p): New interfaces.
From-SVN: r247883
Richard Biener [Thu, 11 May 2017 09:16:00 +0000 (09:16 +0000)]
tree-ssa-pre.c (eliminate_dom_walker::before_dom_children): Skip unreachable blocks and destinations.
2017-05-11 Richard Biener <rguenther@suse.de>
* tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
Skip unreachable blocks and destinations.
(eliminate): Move stmt removal and fixup ...
(fini_eliminate): ... here. Skip inserted exprs.
(pass_pre::execute): Move fini_pre after fini_eliminate.
* tree-ssa-tailmerge.c: Include tree-cfgcleanup.h.
(tail_merge_optimize): Run cleanup_tree_cfg if requested by
PRE to get rid of dead code that has invalid SSA form and
split critical edges again.
From-SVN: r247882
Bin Cheng [Thu, 11 May 2017 09:10:01 +0000 (09:10 +0000)]
* rtlanal.c (rtx_cost): Handle TRUNCATE between tieable modes.
From-SVN: r247881
Ville Voutilainen [Thu, 11 May 2017 07:44:29 +0000 (10:44 +0300)]
re PR c++/80682 (__is_trivially_constructible(void, int) returns true.)
PR c++/80682
cp/
PR c++/80682
* method.c (is_trivially_xible): Reject void types.
testsuite/
PR c++/80682
* g++.dg/ext/is_trivially_constructible1.C: Add tests for void target.
From-SVN: r247880
Richard Biener [Thu, 11 May 2017 07:26:32 +0000 (07:26 +0000)]
passes.c (execute_function_todo): Verify loops if they are said to be up-to-date.
2017-05-11 Richard Biener <rguenther@suse.de>
* passes.c (execute_function_todo): Verify loops if they are
said to be up-to-date.
* cfgexpand.c (pass_expand::execute): Discard loops for -dx.
* trans-mem.c (pass_tm_edges::execute): Mark loops for fixup.
From-SVN: r247879
GCC Administrator [Thu, 11 May 2017 00:16:37 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r247878
John David Anglin [Wed, 10 May 2017 23:54:58 +0000 (23:54 +0000)]
re PR target/80090 (Incorrect assembler - output_addr_const may generate visibility output between op and address constant)
PR target/80090
* config/pa/pa.c (pa_assemble_integer): When outputting a SYMBOL_REF,
handle calling assemble_external ourself.
From-SVN: r247872