aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2020-05-15Update cpplib sv.po.Joseph Myers2-3/+7
* sv.po: Update.
2020-05-15libgo: only build syscall test with -static if it worksIan Lance Taylor5-7/+62
Test whether -static works, and use it if possible. This time for sure. For PR go/95061 Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/234024
2020-05-15c++: Enable coroutines with -std=c++20.Jason Merrill5-12/+17
Now that GCC 10 is out it seems time. People can still choose to disable coroutines with -fno-coroutines. This also switches the coroutines testsuite to run in C++20 mode. The change to coro.h is only necessary for co-await-11-forwarding.C; we could alternatively #include <utility> just in that file. gcc/c-family/ChangeLog 2020-05-15 Jason Merrill <jason@redhat.com> * c-opts.c (set_std_cxx20): Set flag_coroutines. gcc/testsuite/ChangeLog 2020-05-15 Jason Merrill <jason@redhat.com> * g++.dg/coroutines/coro.h: Always #include <utility>. * g++.dg/coroutines/coroutines.exp (DEFAULT_COROFLAGS): Use -std=c++20.
2020-05-15analyzer: Remove stray semicolon.Jason Merrill1-1/+1
2020-05-15rs6000: BU_FUTURE_MISC_2 requires powerpc64Segher Boessenkool2-1/+7
BU_FUTURE_MISC_2 is (currently) only used for instructions that require 64-bit registers. 2020-05-15 Segher Boessenkool <segher@kernel.crashing.org> * config/rs6000/rs6000-builtin.def (BU_FUTURE_MISC_2): Also require RS6000_BTM_POWERPC64.
2020-05-15rs6000/testsuite: Use the int128 selector where neededSegher Boessenkool7-0/+15
Tests that use the __int128 type need to use the int128 selector. 2020-05-15 Segher Boessenkool <segher@kernel.crashing.org> gcc/testsuite/ * gcc.target/powerpc/vec-gnb-0.c: Use int128 effective target. * gcc.target/powerpc/vec-gnb-1.c: Ditto. * gcc.target/powerpc/vec-gnb-2.c: Ditto. * gcc.target/powerpc/vec-ternarylogic-8.c: Ditto. * gcc.target/powerpc/vec-ternarylogic-9.c: Ditto. * gcc.target/powerpc/vec-ternarylogic-10.c: Ditto.
2020-05-15rs6000/testsuite: Use lp64 in cnttzdm-0.cSegher Boessenkool2-0/+5
2020-05-15 Segher Boessenkool <segher@kernel.crashing.org> gcc/testsuite/ * gcc.target/powerpc/cnttzdm-0.c: Use lp64.
2020-05-15rs6000/testsuite: Don't use powerpc64 effective targetSegher Boessenkool8-7/+17
The powerpc64 effective target unfortunately does not mean the target has 64-bit instructions enabled (i.e., -mpowerpc64): instead, it means that the assembler supports it. Let's use the lp64 effective target instead for these tests. 2020-05-15 Segher Boessenkool <segher@kernel.crashing.org> gcc/testsuite/ * gcc.target/powerpc/cntlzdm-0.c: Use lp64 instead of powerpc64. * gcc.target/powerpc/cntlzdm-1.c: Ditto. * gcc.target/powerpc/cnttzdm-1.c: Ditto. * gcc.target/powerpc/pdep-0.c: Ditto. * gcc.target/powerpc/pdep-1.c: Ditto. * gcc.target/powerpc/pextd-0.c: Ditto. * gcc.target/powerpc/pextd-1.c: Ditto.
2020-05-15rs6000/testsuite: Use -mdejagnu-cpu= instead of -mcpu=Segher Boessenkool23-22/+47
A bunch of new cases snuck in. 2020-05-15 Segher Boessenkool <segher@kernel.crashing.org> gcc/testsuite/ * gcc.target/powerpc/pdep-0.c: Change -mcpu= to -mdejagnu-cpu=. * gcc.target/powerpc/pdep-1.c: Ditto. * gcc.target/powerpc/pextd-0.c: Ditto. * gcc.target/powerpc/pextd-1.c: Ditto. * gcc.target/powerpc/pr90763.c: Ditto. * gcc.target/powerpc/pr91275.c: Ditto. * gcc.target/powerpc/pr92796.c: Ditto. * gcc.target/powerpc/pr93658.c: Ditto. * gcc.target/powerpc/pr93800.c: Ditto. * gcc.target/powerpc/setbceq.c: Ditto. * gcc.target/powerpc/setbcge.c: Ditto. * gcc.target/powerpc/setbcgt.c: Ditto. * gcc.target/powerpc/setbcle.c: Ditto. * gcc.target/powerpc/setbclt.c: Ditto. * gcc.target/powerpc/setbcne.c: Ditto. * gcc.target/powerpc/setnbceq.c: Ditto. * gcc.target/powerpc/setnbcge.c: Ditto. * gcc.target/powerpc/setnbcgt.c: Ditto. * gcc.target/powerpc/setnbcle.c: Ditto. * gcc.target/powerpc/setnbclt.c: Ditto. * gcc.target/powerpc/setnbcne.c: Ditto. * gcc.target/powerpc/xxgenpc-runnable.c: Ditto.
2020-05-15c++: Revert unnecessary parts of fix for [PR90996]Patrick Palka4-19/+35
The process_init_constructor_array part of my PR90996 patch turns out to be neither necessary nor sufficient to make the pr90996.C testcase work, and I wasn't able to come up with a testcase that demonstrates this part is ever necessary. gcc/cp/ChangeLog: Revert: 2020-04-07 Patrick Palka <ppalka@redhat.com> PR c++/90996 * typeck2.c (process_init_constructor_array): Propagate CONSTRUCTOR_PLACEHOLDER_BOUNDARY up from each element initializer to the array initializer. gcc/testsuite/ChangeLog: PR c++/90996 * g++.dg/cpp1y/pr90996.C: Turn into execution test to verify that each PLACEHOLDER_EXPR gets correctly resolved.
2020-05-15PR c++/93286 - ICE with __is_constructible and variadic template.Jason Merrill4-183/+101
My GCC 10 patch for 93286 fixed the missing piece in tsubst's handling of lists vs. that in tsubst_copy_and_build, but it would be better to share the code between them. gcc/cp/ChangeLog 2020-05-15 Jason Merrill <jason@redhat.com> PR c++/93286 - ICE with __is_constructible and variadic template. * pt.c (tsubst_tree_list): New. (tsubst, tsubst_copy_and_build): Use it. * decl2.c (is_late_template_attribute): Handle error_mark_node args.
2020-05-15x86: Also check if -fcf-protection worksH.J. Lu30-12/+133
When defaulting CET run-time support to auto, check if -fcf-protection works. Even if the stage1 GCC doesn't support -fcf-protection, since the final GCC does, CET run-time support will be enabled by default if binutils support CET. config/ PR bootstrap/95147 * cet.m4 (GCC_CET_FLAGS): Also check if -fcf-protection works when defaulting to auto. libatomic/ PR bootstrap/95147 * configure: Regenerated. libbacktrace/ PR bootstrap/95147 * configure: Regenerated. libgcc/ PR bootstrap/95147 * configure: Regenerated. libgfortran/ PR bootstrap/95147 * configure: Regenerated. libgomp/ PR bootstrap/95147 * configure: Regenerated. libitm/ PR bootstrap/95147 * configure: Regenerated. libobjc/ PR bootstrap/95147 * configure: Regenerated. libphobos/ PR bootstrap/95147 * configure: Regenerated. libquadmath/ PR bootstrap/95147 * configure: Regenerated. libsanitizer/ PR bootstrap/95147 * configure: Regenerated. libssp/ PR bootstrap/95147 * configure: Regenerated. libstdc++-v3/ PR bootstrap/95147 * configure: Regenerated. libvtv/ PR bootstrap/95147 * configure: Regenerated. zlib/ PR bootstrap/95147 * configure: Regenerated.
2020-05-15Fix undefined behavior in pr33922.c.Aldy Hernandez1-2/+1
It was causing evrp to perform an undefined transformation that rvrp was not doing and causing a trap.
2020-05-15[Fortran] OpenMP 5 – permit more sharing clauses for SIMD (PR94690)Tobias Burnus4-11/+82
gcc/fortran/ PR fortran/94690 * openmp.c (resolve_omp_do): Permit more clauses for SIMD iteration variables. gcc/testsuite/ PR fortran/94690 * gfortran.dg/gomp/openmp-simd-4.f90: New test.
2020-05-15i386: Allow SI, DI and TImode pushes from XMM registersUros Bizjak2-26/+62
Also change XMM register constraint from "x" to "v" in FP push insns. gcc/ChangeLog: 2020-05-15 Uroš Bizjak <ubizjak@gmail.com> * config/i386/i386.md (SWI48DWI): New mode iterator. (*push<mode>2): Allow XMM registers. (*pushdi2_rex64): Ditto. (*pushsi2_rex64): Ditto. (*pushsi2): Ditto. (push XMM reg splitter): New splitter (*pushdf) Change "x" operand constraint to "v". (*pushsf_rex64): Ditto. (*pushsf): Ditto.
2020-05-15c++: Fix thinkos in template_args_equal change.Nathan Sidwell2-2/+6
Arseny Solokha noticed I'd flubbed this patch, and it was not saying what I thought it was saying. Unfortunately that didn't break anything (otherwise I'd've noticed). Fixed thusly. * pt.c (template_args_equal): Fix thinkos in previous 'cleanup'.
2020-05-15tree-optimization/92260 - improve fixRichard Biener2-13/+12
This improves the fix for PR92260 changing the number of vector computation to the canonical one, not needing to look at the using stmt. 2020-05-15 Richard Biener <rguenther@suse.de> PR tree-optimization/92260 * tree-vect-slp.c (vect_get_constant_vectors): Compute the number of vector stmts in a canonical way.
2020-05-15Adjusts tests for rvrp execution.Aldy Hernandez35-34/+39
The following are the known regressions: > FAIL: gfortran.dg/integer_exponentiation_2.f90 -O2 (test for excess errors) > FAIL: gfortran.dg/integer_exponentiation_2.f90 -O3 -fomit-frame-pointer -funroll-loops -fpeel -loops -ftracer -finline-functions (test for excess errors) > FAIL: gfortran.dg/integer_exponentiation_2.f90 -O3 -g (test for excess errors) > FAIL: gfortran.dg/pr41043.f90 -O (test for excess errors) Fortran timeouts during compilation. Will analyze next week. > FAIL: gcc.dg/tree-ssa/pr88367.c scan-tree-dump-times optimized "bar \\(\\);" 2 -fno-delete-null-pointer-checks problem. Discussing with Andrew.
2020-05-15Fix clang [-Wmisleading-indentation] in hsa-gen.c.Martin Liska2-7/+12
* hsa-gen.c (get_symbol_for_decl): Fix misleading indentation warning.
2020-05-15WIP amdgcn: use unsigned extend for lshiftrtAndrew Stubbs2-1/+5
This fixes a wrong-code logic error in a previous patch. Detected by gcc.c-torture/execute/pr53645-2.c. 2020-05-15 Andrew Stubbs <ams@codesourcery.com> gcc/ * config/gcn/gcn-valu.md (v<expander><mode>3): Fix unsignedp.
2020-05-15contrib: Handle GDB specific test result typesAndrew Burgess3-3/+20
This commit is for the benefit of GDB, but as the binutils-gdb repository shares the contrib/ directory with gcc, this commit must first be applied to gcc then copied back to binutils-gdb. This commit extends the two scripts contrib/dg-extract-results.{py,sh} to handle some new, GDB specific test result types. These test results types should never appear in GCC, or any other tool that shares the contrib/ directly, so this change should be harmless. In this patch series: https://sourceware.org/pipermail/gdb-patches/2020-April/167847.html changes were made in GDB's use of Dejagnu so that two additional conditions could be detected, these are: 1. Test names that contain either the build or source paths. Such test names make it difficult to compare the results of two test runs of GDB from two different directories, and 2. Duplicate test names. Duplicates make it difficult to track down exactly which test has failed. When running Dejagnu on GDB we can now (sometimes) see two additional test result types matching the above conditions, these are '# of paths in test names' and '# of duplicate test names'. If the test is run in parallel mode (make -j...) then these extra test results will appear in the individual test summary files, but are not merged into the final summary file. Additionally, within the summary file there are now two new types of test summary line, these are 'PATH: ...' and 'DUPLICATE: ...', these allow users to quickly search the test summary to track down where the offending test names are. These lines are similarly not merged into the unified gdb.sum file after a parallel test run. This commit extends the dg-extract-results.* scripts to calculate the totals for the two new result types, and to copy the new test summary lines into the unified summary file. contrib/ChangeLog: * dg-extract-results.py: Handle GDB specific test types. * dg-extract-results.sh: Likewise.
2020-05-15tree-optimization/95133 - avoid abnormal edges in path splittingRichard Biener4-2/+34
When path splitting tries to detect a CFG diamond make sure it is composed of normal (non-EH, not abnormal) edges. Otherwise CFG manipulation later may fail. 2020-05-15 Richard Biener <rguenther@suse.de> PR tree-optimization/95133 * gimple-ssa-split-paths.c (find_block_to_duplicate_for_splitting_paths): Check for normal edges. * gcc.dg/pr95133.c: New testcase.
2020-05-15arm: Add support for interrupt routines to reg_needs_saving_pChristophe Lyon2-7/+27
reg_needs_saving_p is only used when dealing with non-interrupt routines, but it makes sense to extend it to support that context too, and make arm_compute_save_reg0_reg12_mask use it. Save only live registers for non-leaf functions, but assume a callee could clobber any register. 2020-05-15 Christophe Lyon <christophe.lyon@linaro.org> gcc/ * config/arm/arm.c (reg_needs_saving_p): Add support for interrupt routines. (arm_compute_save_reg0_reg12_mask): Use reg_needs_saving_p.
2020-05-15[OpenMP] Fix 'omp exit data' for Fortran arrays (PR 94635)Tobias Burnus4-1/+35
gcc/ PR middle-end/94635 * gimplify.c (gimplify_scan_omp_clauses): For MAP_TO_PSET with OMP_TARGET_EXIT_DATA, use 'release:' unless the associated item is 'delete:'. gcc/testsuite PR middle-end/94635 * gfortran.dg/gomp/target-exit-data.f90: New.
2020-05-15Remove gori_computable.Aldy Hernandez1-53/+0
Now that ranger VRP is running, there is no need for this.
2020-05-15libiberty: Handle @live attribute in D demangler.Iain Buclaw3-0/+17
Adds support for demangling D functions annotated with the new ownership/borrowing system attribute. libiberty/ChangeLog: * d-demangle.c (dlang_attributes): Add @live attribute. * testsuite/d-demangle-expected: Add new tests.
2020-05-15i386: Add V2SFmode hadd/hsub instructions [PR95046]Uros Bizjak4-21/+108
PFACC/PFNACC 3dNow! instructions got their corresponding SSE alternative in SSE3, so these can't be implemented with TARGET_MMX_WITH_SSE, which implies SSE2. These instructions are only generated via builtins, and since several 3dNow! insns have no corresponding SSE alternative, we can't avoid MMX registers with 3dNow! builtins anyway. Add SSE3/AVX alternatives to the insn pattern, so compiler will be able to use XMM registers when available, but don't prevent MMX registers, since they are needed when SSE3 is not active. Add additional generic insn patterns, used by the combiner to synthesize horizontal V2SFmode add/sub instructions. These patterns are active for TARGET_MMX_WITH_SSE only, and use only XMM registers. gcc/ChangeLog: PR target/95046 * config/i386/i386.md (isa): Add sse3_noavx. (enabled): Handle sse3_noavx. * config/i386/mmx.md (mmx_haddv2sf3): New expander. (*mmx_haddv2sf3): Rename from mmx_haddv2sf3. Add SSE/AVX alternatives. Match commutative vec_select selector operands. (*mmx_haddv2sf3_low): New insn pattern. (*mmx_hsubv2sf3): Add SSE/AVX alternatives. (*mmx_hsubv2sf3_low): New insn pattern. testsuite/ChangeLog: PR target/95046 * gcc.target/i386/pr95046-8.c: New test.
2020-05-15Enabled evrp trapping when IL changes but only iff -frvrp1-changes is set.Aldy Hernandez5-4/+35
Also, implement global -frvrp-changes that overrides the individual pass settings.
2020-05-15i386: Add V2SFmode hadd/hsub instructions [PR95046]Uros Bizjak1-0/+22
PFACC/PFNACC 3dNow! instructions got their corresponding SSE alternative in SSE3, so these can't be implemented with TARGET_MMX_WITH_SSE, which implies SSE2. These instructions are only generated via builtins, and since several 3dNow! insns have no corresponding SSE alternative, we can't avoid MMX registers with 3dNow! builtins anyway. Add SSE3/AVX alternatives to the insn pattern, so compiler will be able to use XMM registers when available, but don't prevent MMX registers, since they are needed when SSE3 is not active. Add additional generic insn patterns, used by the combiner to synthesize horizontal V2SFmode add/sub instructions. These patterns are active for TARGET_MMX_WITH_SSE only, and use only XMM registers. gcc/ChangeLog: PR target/95046 * config/i386/i386.md (isa): Add sse3_noavx. (enabled): Handle sse3_noavx. * config/i386/mmx.md (mmx_haddv2sf3): New expander. (*mmx_haddv2sf3): Rename from mmx_haddv2sf3. Add SSE/AVX alternatives. Match commutative vec_select selector operands. (*mmx_haddv2sf3_low): New insn pattern. (*mmx_hsubv2sf3): Add SSE/AVX alternatives. (*mmx_hsubv2sf3_low): New insn pattern. testsuite/ChangeLog: PR target/95046 * gcc.target/i386/pr95046-8.c: New test.
2020-05-15tree-optimization/33315 - common stores during sinkingRichard Biener6-5/+242
This implements commoning of stores to a common successor in a simple ad-hoc way. I've decided to put it into the code sinking pass since, well, it sinks stores. It's still separate since it does not really sink code into less executed places. It's ad-hoc since it does not perform any dataflow or alias analysis but simply only considers trailing stores in a block, iteratively though. If the stores are from different values a PHI node is inserted to merge them. gcc.dg/tree-ssa/split-path-7.c shows that path splitting will eventually undo this very transform, I've decided to not bother with it and simply disable sinking for the particular testcase. Doing this transform is good for code size when the stores are from constants, once we have to insert PHIs the situation becomes less clear but it's a transform we do elsewhere as well (cselim for one), and reversing the transform should be easy. 2020-05-15 Richard Biener <rguenther@suse.de> PR tree-optimization/33315 * tree-ssa-sink.c: Include tree-eh.h. (sink_stats): Add commoned member. (sink_common_stores_to_bb): New function implementing store commoning by sinking to the successor. (sink_code_in_bb): Call it, pass down TODO_cleanup_cfg returned. (pass_sink_code::execute): Likewise. Record commoned stores in statistics. * gcc.dg/tree-ssa/ssa-sink-13.c: New testcase. * gcc.dg/tree-ssa/ssa-sink-14.c: Likewise. * gcc.dg/tree-ssa/split-path-7.c: Disable sinking.
2020-05-15Remove vr_values_tester.Aldy Hernandez4-44/+4
It is no longer needed as we are running rvrp[12] and verifying usage the trap code.
2020-05-15Add loop_ranger::range_of_ssa_name that calls SCEV.Aldy Hernandez2-0/+21
2020-05-15Guard indent calculations in trace_ranger by dumping().Aldy Hernandez1-4/+4
This keeps the indentation from going haywire when GORI dumping is turned on and off during a compilation unit.
2020-05-15Move all branch local machinery into their own files (misc.*).Aldy Hernandez10-238/+607
Move all the classes and support routines that are not meant to be upstreamed, into their own files. Also, add the initial cut of the classes needed to compare and trap when IL changes are noticed in evrp. This is disabled for now.
2020-05-15Turn off simplify_conversion_using_ranges when rvrp1 IL changes are enabled.Aldy Hernandez1-0/+6
This conversion has nothing to do with ranges, and the way it uses global ranges versus local ranges is interfering with our ability to diagnose differences between evrp and rvrp1.
2020-05-15Turn off GORI/ranger dumps while dumping known ranges.Aldy Hernandez1-0/+3
Since the ranger is on-demand, dumping the known range for each SSA use causes us to calculate the ranges ahead of time, and confuse the listing. For now, turn it off, so the range calculation isn't displayed.
2020-05-15Add context stmt for simplify_using_ranges.Aldy Hernandez2-13/+18
This gives better ranges for the simplifier class since it's using the context in which the statement appears.
2020-05-15Return a better range for lshift::op1_range if LHS does not contain a 0.Aldy Hernandez1-6/+10
2020-05-15Run copy propagation before evrp.Aldy Hernandez3-2/+28
2020-05-14Fold (add -1; zero_ext; add +1) operations to zero_ext when not ↵Xionghu Luo4-1/+78
overflow(PR37451, PR61837) This "subtract/extend/add" existed for a long time and still annoying us (PR37451, part of PR61837) when converting from 32bits to 64bits, as the ctr register is used as 64bits on powerpc64, Andraw Pinski had a patch but caused some issue and reverted by Joseph S. Myers(PR37451, PR37782). Andraw: http://gcc.gnu.org/ml/gcc-patches/2008-09/msg01070.html http://gcc.gnu.org/ml/gcc-patches/2008-10/msg01321.html Joseph: https://gcc.gnu.org/legacy-ml/gcc-patches/2011-11/msg02405.html We still can do the simplification from "subtract/zero_ext/add" to "zero_ext" when loop iterations is known to be LT than MODE_MAX (only do simplify when counter+0x1 NOT overflow). Bootstrap and regression tested pass on Power8-LE. gcc/ChangeLog 2020-05-15 Xiong Hu Luo <luoxhu@linux.ibm.com> PR rtl-optimization/37451, part of PR target/61837 * loop-doloop.c (doloop_simplify_count): New function. Simplify (add -1; zero_ext; add +1) to zero_ext when not wrapping. (doloop_modify): Call doloop_simplify_count. gcc/testsuite/ChangeLog 2020-05-15 Xiong Hu Luo <luoxhu@linux.ibm.com> PR rtl-optimization/37451, part of PR target/61837 * gcc.target/powerpc/doloop-2.c: New test.
2020-05-15Daily bump.GCC Administrator1-1/+1
2020-05-14Skip jit tests for targets that don't support -lgccjitH.J. Lu5-0/+35
Since libgccjit.so is linked into jit tests, skip jit tests for targets that don't support -lgccjit. gcc/ PR jit/94778 * doc/sourcebuild.texi: Document effective target lgccjit. gcc/testsuite/ PR jit/94778 * jit.dg/jit.exp: Skip jit tests for targets that don't support -lgccjit. * lib/target-supports.exp (check_effective_target_lgccjit): New.
2020-05-14libiberty: Update D symbol demangling for latest ABI spec.Iain Buclaw3-261/+613
Some small improvements and clarifications have been done in the D ABI specification to remove all ambiguities found in the current grammar, this implementation now more closely resembles the spec, whilst maintaining compatibility with the old ABI. Three new rules have been added to the ABI. 1. Back references using 'Q', analogous to C++ substitutions, compresses repeated identifiers, types, and template symbol and value parameters. 2. Template aliases to externally mangled symbols are prefixed with 'X'. This includes any symbol that isn't extern(D), or has its name overriden with pragma(mangle). This fixes an ambiguity where it was not clear whether 'V' was an encoded calling convention, or the next template value parameter. 3. Alias parameters, templates, and tuple symbols no longer encode the symbol length of its subpart. Tuples are now terminated with 'Z'. This fixes another ambiguity where the first character of the mangled name can be a digit as well, so the demangler had to figure out where to split the two adjacent numbers by trying out each combination. libiberty/ChangeLog: * d-demangle.c (enum dlang_symbol_kinds): Remove enum. (struct dlang_info): New struct (dlang_decode_backref): New function. (dlang_backref): New function. (dlang_symbol_backref): New function. (dlang_type_backref): New function. (dlang_symbol_name_p): New function. (dlang_function_type_noreturn): New function. (dlang_function_type): Add 'info' parameter. Decode function type with dlang_function_type_noreturn. (dlang_function_args): Add 'info' parameter. (dlang_type): Add 'info' parameter. Handle back referenced types. (dlang_identifier): Replace 'kind' parameter with 'info'. Handle back referenced symbols. Split off decoding of plain identifiers to... (dlang_lname): ...here. (dlang_parse_mangle): Replace 'kind' parameter with 'info'. Decode function type and return with dlang_type. (dlang_parse_qualified): Replace 'kind' parameter with 'info', add 'suffix_modifier' parameter. Decode function type with dlang_function_type_noreturn. (dlang_parse_tuple): Add 'info' parameter. (dlang_template_symbol_param): New function. (dlang_template_args): Add 'info' parameter. Decode symbol parameter with dlang_template_symbol_param. Handle back referenced values, and externally mangled parameters. (dlang_parse_template): Add 'info' parameter. (dlang_demangle_init_info): New function. (dlang_demangle): Initialize and pass 'info' parameter. * testsuite/d-demangle-expected: Add new tests. Co-Authored-By: Rainer Schuetze <r.sagitario@gmx.de>
2020-05-14c++: Fix deferred noexcept on constructor [PR93901].Jason Merrill2-28/+32
My change in r10-4394 to only update clones when we actually instantiate a deferred noexcept-spec broke this because deferred parsing updates the primary function but not the clones. For GCC 10 I just reverted that change; this patch adjusts maybe_instantiate_noexcept to update only the clone passed as the argument. gcc/cp/ChangeLog 2020-05-14 Jason Merrill <jason@redhat.com> PR c++/93901 * pt.c (maybe_instantiate_noexcept): Change clone handling.
2020-05-14libgo: only build syscall test with -static on GNU/LinuxIan Lance Taylor3-2/+4
For PR go/95061 Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/234019
2020-05-14amdgcn: fix vcc clobber in vector load/storeAndrew Stubbs6-51/+217
This switches the code that expands scalar addresses to vectors of addresses from using VCC to using CC_SAVE_REG, for the lo-part to hi-part carry values. These were fine in code expanded in earlier passes, but addresses expanded late, such as for stack spills or reloads, could clobber live VCC values, causing execution failures. This is the first target-specific testcase for GCN, so the new .exp file is included. 2020-05-14 Andrew Stubbs <ams@codesourcery.com> gcc/ * config/gcn/gcn-valu.md (add<mode>3_zext_dup): Change to a define_expand, and rename the original to ... (add<mode>3_vcc_zext_dup): ... this, and add a custom VCC operand. (add<mode>3_zext_dup_exec): Likewise, with ... (add<mode>3_vcc_zext_dup_exec): ... this. (add<mode>3_zext_dup2): Likewise, with ... (add<mode>3_zext_dup_exec): ... this. (add<mode>3_zext_dup2_exec): Likewise, with ... (add<mode>3_zext_dup2): ... this. * config/gcn/gcn.c (gcn_expand_scalar_to_vector_address): Switch addv64di3_zext* calls to use addv64di3_vcc_zext*. gcc/testsuite/ * testsuite/gcc.target/gcn/gcn.exp: New file. * testsuite/gcc.target/gcn/vcc-clobber.c: New file.
2020-05-14i386: Add V2DFmode float trunc/extend functions [PR95046]Uros Bizjak4-0/+69
gcc/ChangeLog: PR target/95046 * config/i386/sse.md (truncv2dfv2df2): New insn pattern. (extendv2sfv2df2): Ditto. testsuite/ChangeLog: PR target/95046 * gcc.target/i386/pr95046-7.c: New test.
2020-05-14Adjust gimple_range_adjustment so it works for imagpart and pointer_diff.Aldy Hernandez2-6/+74
2020-05-14Fix off-by-one error in popcount folding.Aldy Hernandez1-1/+1
2020-05-14If argument of __builtin_constant_p resolves to a constant, return range of 1.Aldy Hernandez1-0/+6