aboutsummaryrefslogtreecommitdiff
path: root/gcc
AgeCommit message (Collapse)AuthorFilesLines
2018-01-26rl78.c: if operand 2 is const avoid addition with 0 and use incw and decw ↵Sebastian Perta3-2/+62
where possible 2018-01-25 Sebastian Perta <sebastian.perta@renesas.com> * config/rl78/rl78.c: if operand 2 is const avoid addition with 0 and use incw and decw where possible * testsuite/gcc.target/rl78/test_addsi3_internal.c: new file From-SVN: r257079
2018-01-26Fix gcc.target/aarch64/sve/peel_ind_1.c for -mcmodel=tinySzabolcs Nagy4-3/+9
gcc/testsuite/ChangeLog: 2018-01-26 Szabolcs Nagy <szabolcs.nagy@arm.com> * gcc.target/aarch64/sve/peel_ind_1.c: Match (adrp|adr) in scan-assembler. * gcc.target/aarch64/sve/peel_ind_2.c: Likewise. * gcc.target/aarch64/sve/peel_ind_3.c: Likewise. From-SVN: r257078
2018-01-26re PR tree-optimization/81082 (Failure to vectorise after reassociating ↵Richard Biener6-5/+67
index computation) 2018-01-26 Richard Biener <rguenther@suse.de> PR tree-optimization/81082 * fold-const.c (fold_plusminus_mult_expr): Do not perform the association if it requires casting to unsigned. * match.pd ((A * C) +- (B * C) -> (A+-B)): New patterns derived from fold_plusminus_mult_expr to catch important cases late when range info is available. * gcc.dg/vect/pr81082.c: New testcase. * gcc.dg/tree-ssa/loop-15.c: XFAIL the (int)((unsigned)n + -1U) * n + n simplification to n * n. From-SVN: r257077
2018-01-26Configure USE_HIDDEN_LINKONCE on Solaris/x86Rainer Orth8-8/+75
gcc/testsuite: * gcc.target/i386/mcount_pic.c: Only xfail get_pc_thunk scan on Solaris 10. * gcc.target/i386/pr63620.c: Likewise. gcc: * config/i386/sol2.h (USE_HIDDEN_LINKONCE): Remove. * configure.ac (hidden_linkonce): New test. * configure: Regenerate. * config.in: Regenerate. From-SVN: r257076
2018-01-26Fix various x86 avx512{bitalg, vpopcntdq, vbmi2} issues (PR target/83488)Julia Koval10-28/+44
gcc/ * config/i386/avx512bitalgintrin.h (_mm512_bitshuffle_epi64_mask, _mm512_mask_bitshuffle_epi64_mask, _mm256_bitshuffle_epi64_mask, _mm256_mask_bitshuffle_epi64_mask, _mm_bitshuffle_epi64_mask, _mm_mask_bitshuffle_epi64_mask): Fix type. * config/i386/i386-builtin-types.def (UHI_FTYPE_V2DI_V2DI_UHI, USI_FTYPE_V4DI_V4DI_USI): Remove. * config/i386/i386-builtin.def (__builtin_ia32_vpshufbitqmb512_mask, __builtin_ia32_vpshufbitqmb256_mask, __builtin_ia32_vpshufbitqmb128_mask): Fix types. * config/i386/i386.c (ix86_expand_args_builtin): Remove old types. * config/i386/sse.md (VI1_AVX512VLBW): Change types. gcc/testsuite/ * gcc.target/i386/avx512bitalg-vpshufbitqmb-1.c: Add -mavx512f -mavx512bw. * gcc.target/i386/avx512bitalgvl-vpshufbitqmb-1.c: Add -mavx512bw. * gcc.target/i386/i386.exp: Fix types. From-SVN: r257075
2018-01-26Daily bump.GCC Administrator1-1/+1
From-SVN: r257073
2018-01-26PR84033, powerpc64le -moptimize-swaps bad code with vec_vbpermqAlan Modra4-6/+52
vbpermq produces its output in bits 48..63 of the target vector reg, so the output cannot be lane swapped. gcc/ PR target/84033 * config/rs6000/rs6000-p8swap.c (rtx_is_swappable_p): Exclude UNSPEC_VBPERMQ. Sort other unspecs. gcc/testsuite/ PR target/84033 * gcc.target/powerpc/swaps-p8-46.c: New. From-SVN: r257070
2018-01-25compiler: look through aliases when looking for methodsIan Lance Taylor3-22/+49
Add a Type::is_alias method to remove some existing loops and avoid adding a new one. Test case is https://golang.org/cl/89935. Fixes golang/go#23489 Reviewed-on: https://go-review.googlesource.com/89975 From-SVN: r257069
2018-01-25compiler: deref receiver types in mangled namesIan Lance Taylor3-18/+22
This was the original intent, as reflected in the long comment at the start of names.cc, but I forgot to implement it. Also, remove a leading ".0" from the final name. That could occur for a method whose receiver type starts with 'u', as in that case we prepend a space to the mangled name, to avoid confusion with the Unicode mangling, and the space turns into ".0". Also, if the Unicode encoding would cause the final to start with "..u" or "..U", add a leading underscore. Patch gotest to not get fooled by some names. The result of these changes is that all symbols start with a letter or an underscore. Reviewed-on: https://go-review.googlesource.com/90015 From-SVN: r257068
2018-01-25jit: remove some unused fields from recording::union_ (PR jit/81672)David Malcolm2-4/+6
gcc::jit::recording::union_ has some stray fields, which are duplicates of those in the compound_type base class. It looks like these have been present since the initial merger of the jit branch to trunk (r217374), where it had three duplicate fields: location *m_loc; string *m_name; fields *m_fields; I removed the duplicate field "m_fields" in r219564 but missed the other two. This patch removes them. gcc/jit/ChangeLog: PR jit/81672 * jit-recording.h (gcc::jit::recording::union_): Remove fields "m_loc" and "m_name". From-SVN: r257066
2018-01-25re PR fortran/37577 ([meta-bug] change internal array descriptor format for ↵Paul Thomas16-83/+210
better syntax, C interop TR, rank 15) 2018-25-01 Paul Thomas <pault@gcc.gnu.org> PR fortran/37577 * array.c (gfc_match_array_ref): If standard earlier than F2008 it is an error if the reference dimension is greater than 7. libgfortran.h : Increase GFC_MAX_DIMENSIONS to 15. Change the dtype masks and shifts accordingly. * trans-array.c (gfc_conv_descriptor_dtype): Use the dtype type node to check the field. (gfc_conv_descriptor_dtype): Access the rank field of dtype. (duplicate_allocatable_coarray): Access the rank field of the dtype descriptor rather than the dtype itself. * trans-expr.c (get_scalar_to_descriptor_type): Store the type of 'scalar' on entry and use its TREE_TYPE if it is ARRAY_TYPE (ie. a character). (gfc_conv_procedure_call): Pass TREE_OPERAND (tmp,0) to get_scalar_to_descriptor_type if the actual expression is a constant. (gfc_trans_structure_assign): Assign the rank directly to the dtype rank field. * trans-intrinsic.c (gfc_conv_intrinsic_rank): Cast the result to default integer kind. (gfc_conv_intrinsic_sizeof): Obtain the element size from the 'elem_len' field of the dtype. * trans-io.c (gfc_build_io_library_fndecls): Replace gfc_int4_type_node with dtype_type_node where necessary. (transfer_namelist_element): Use gfc_get_dtype_rank_type for scalars. * trans-types.c : Provide 'get_dtype_type_node' to acces the dtype_type_node and, if necessary, build it. The maximum size of an array element is now determined by the maximum value of size_t. Update the description of the array descriptor, including the type def for the dtype_type. (gfc_get_dtype_rank_type): Build a constructor for the dtype. Distinguish RECORD_TYPEs that are BT_DERIVED or BT_CLASS. (gfc_get_array_descriptor_base): Change the type of the dtype field to dtype_type_node. (gfc_get_array_descr_info): Get the offset to the rank field of the dtype. * trans-types.h : Add a prototype for 'get_dtype_type_node ()'. * trans.h : Define the indices of the dtype fields. 2018-25-01 Paul Thomas <pault@gcc.gnu.org> PR fortran/37577 * gfortran.dg/coarray_18.f90: Allow dimension 15 for F2008. * gfortran.dg/coarray_lib_this_image_2.f90: Change 'array1' to 'array01' in the tree dump comparison. * gfortran.dg/coarray_lib_token_4.f90: Likewise. * gfortran.dg/inline_sum_1.f90: Similar - allow two digits. * gfortran.dg/rank_1.f90: Allow dimension 15 for F2008. 2018-25-01 Paul Thomas <pault@gcc.gnu.org> PR fortran/37577 * caf/single.c (_gfortran_caf_failed_images): Access the 'type' and 'elem_len' fields of the dtype instead of the shifts. (_gfortran_caf_stopped_images): Likewise. * intrinsics/associated.c (associated): Compare the 'type' and 'elem_len' fields instead of the dtype. * caf/date_and_time.c : Access the dtype fields rather using shifts and masks. * io/transfer.c (transfer_array ): Comment on item count. (set_nml_var,st_set_nml_var): Change dtype type and use fields. (st_set_nml_dtio_var): Likewise. * libgfortran.h : Change definition of GFC_ARRAY_DESCRIPTOR and add a typedef for the dtype_type. Change the GFC_DTYPE_* macros to access the dtype fields. From-SVN: r257065
2018-01-25Change -march to -mcpu.David Edelsohn1-1/+1
From-SVN: r257064
2018-01-25* doc/invoke.texi (PowerPC Options): Document 'native' cpu type.David Edelsohn2-1/+11
From-SVN: r257063
2018-01-25runtime: fix lfstackUnpack on ia64Ian Lance Taylor1-1/+1
The top three region number bits must be masked out before right-shifting the address bits into place, otherwise they will be copied down into the lower always-zero address bits. Reviewed-on: https://go-review.googlesource.com/84535 From-SVN: r257061
2018-01-25re PR tree-optimization/83055 (ICE in operator>, at profile-count.h:834)Jan Hubicka4-13/+35
PR middle-end/83055 * predict.c (drop_profile): Do not push/pop cfun; update also node->count. (handle_missing_profiles): Fix logic looking for zero profiles. * gcc.dg/torture/pr83055.c: New testcase. From-SVN: r257059
2018-01-25re PR c++/84031 (structured binding unpacks nameless padding bitfields)Jakub Jelinek4-7/+39
PR c++/84031 * decl.c (find_decomp_class_base): Ignore unnamed bitfields. Ignore recursive calls that return ret. (cp_finish_decomp): Ignore unnamed bitfields. * g++.dg/cpp1z/decomp36.C: New test. From-SVN: r257057
2018-01-25re PR middle-end/83977 (ICE in simd_clone_clauses_extract, at ↵Jakub Jelinek6-8/+23
omp-simd-clone.c:184) PR middle-end/83977 * ipa-fnsummary.c (compute_fn_summary): Clear can_change_signature on functions with #pragma omp declare simd or functions with simd attribute. * omp-simd-clone.c (expand_simd_clones): Revert 2018-01-24 change. * config/i386/i386.c (ix86_simd_clone_compute_vecsize_and_simdlen): Remove trailing \n from warning_at calls. * c-c++-common/gomp/pr83977-1.c: Add -w to dg-options. From-SVN: r257051
2018-01-25compiler: don't write sink constants to C header fileIan Lance Taylor2-2/+4
Reviewed-on: https://go-review.googlesource.com/89815 From-SVN: r257049
2018-01-25[nvptx, PR84028] Add exit insn after noreturn call for neutered workersTom de Vries2-2/+8
2018-01-25 Tom de Vries <tom@codesourcery.com> PR target/84028 * config/nvptx/nvptx.c (nvptx_single): Add exit insn after noreturn call for neutered workers. * testsuite/libgomp.oacc-fortran/pr84028.f90: New test. From-SVN: r257046
2018-01-25Fix vect-reduc-or_[12].c changes in r257022Richard Sandiford3-2/+8
I'd somehow thought that the dump lines in these two tests were already correctly guarded, but they weren't. 2018-01-25 Richard Sandiford <richard.sandiford@linaro.org> gcc/testsuite/ * gcc.dg/vect/vect-reduc-or_1.c: Require whole_vector_shift for the shift dump line. * gcc.dg/vect/vect-reduc-or_2.c: Likewise. From-SVN: r257044
2018-01-25re PR target/81550 (gcc.target/powerpc/loop_align.c fails starting with r250482)Michael Meissner2-2/+9
[gcc/testsuite] 2018-01-24 Michael Meissner <meissner@linux.vnet.ibm.com> PR target/81550 * gcc.target/powerpc/loop_align.c: Use unsigned long for the loop index instead of int, which allows IVOPTs to properly optimize the loop. From-SVN: r257038
2018-01-25Fix jit.dg/test-alignment* (PR jit/82846)David Malcolm3-2/+9
These testcases jit-compile functions that return char, but were erroneously calling them as if they returned int. This led to errors for certain target configurations (e.g. reading from %eax (32-bit) in the harness when only %al (8-bit) had been written to in the jit-compiled function). gcc/testsuite/ChangeLog: PR jit/82846 * jit.dg/test-alignment.c (create_aligned_code): Fix return type of "fn_type" typedef. * jit.dg/test-alignment.cc (verify_aligned_code): Likewise. From-SVN: r257037
2018-01-25Daily bump.GCC Administrator1-1/+1
From-SVN: r257036
2018-01-24compiler: rationalize external symbol namesIan Lance Taylor13-352/+899
Encode all external symbol names using only ASCII alphanumeric characters, underscore, and dot. Use a scheme that can be reliably demangled to a somewhat readable version as described in the long comment in names.cc. A minor cleanup discovered during this was that we were treating function types as different if one had a NULL parameters_ field and another has a non-NULL parameters_ field that has no parameters. This worked because we mangled them slightly differently. We now mangle them the same, so we treat them as equal, as we should anyhow. Reviewed-on: https://go-review.googlesource.com/89555 * go.go-torture/execute/names-1.go: New test. From-SVN: r257033
2018-01-24Fix m68k-linux-gnu libgcc build for ColdFire (PR target/68467).Joseph Myers2-0/+27
PR target/68467 is libgcc failing to build for m68k-linux-gnu configured for ColdFire. Jeff has an analysis in the PR identifying the problem as resulting from the callers of libcalls with 1-byte or 2-byte arguments wanting to push just 1 or 2 bytes on the stack, while the libcall implementations have the normal C ABI and expect 4-byte arguments. For normal C functions, I believe the TARGET_PROMOTE_PROTOTYPES definition would ensure such arguments get passed as 4-byte, but that does not apply for libcalls. This patch fixes the issue by defining TARGET_PROMOTE_FUNCTION_MODE for m68k. The definition is conservative, only applying promotions in the case of arguments to libcalls; otherwise it returns the unpromoted type, which I believe matches what the default implementation of the hook would have done on m68k. I have tested that this fixes the libgcc build for ColdFire, and, in conjunction with one glibc patch, this enables glibc to build cleanly for ColdFire and to pass the compilation parts of the glibc testsuite except for one test unrelated to this patch (while glibc and the compilation parts of the testsuite continue to build OK for non-ColdFire m68k, as expected). I have *not* run any GCC tests for this patch, or any execution tests for m68k. PR target/68467 * config/m68k/m68k.c (m68k_promote_function_mode): New function. (TARGET_PROMOTE_FUNCTION_MODE): New macro. From-SVN: r257032
2018-01-24re PR target/83994 (%ebx is clobbered by stack-clash probing for regparm-3 ↵Jeff Law4-19/+56
function in PIC mode) PR target/83994 * i386.c (get_probe_interval): Move to earlier point. (ix86_compute_frame_layout): If -fstack-clash-protection and the frame is larger than the probe interval, then use pushes to save registers rather than reg->mem moves. (ix86_expand_prologue): Remove conditional for int_registers_saved assertion. PR target/83994 * gcc.target/i386/pr83994.c: New test. From-SVN: r257031
2018-01-24re PR target/84014 (ICE in setup_min_max_allocno_live_range_point, at ↵Vladimir Makarov4-1/+38
ira-build.c:2762) 2018-01-24 Vladimir Makarov <vmakarov@redhat.com> PR target/84014 * ira-build.c (setup_min_max_allocno_live_range_point): Set up min/max for never referenced object. 2018-01-24 Vladimir Makarov <vmakarov@redhat.com> PR target/84014 * gcc.target/powerpc/pr84014.c: New. From-SVN: r257029
2018-01-24re PR middle-end/83977 (ICE in simd_clone_clauses_extract, at ↵Jakub Jelinek9-10/+113
omp-simd-clone.c:184) PR middle-end/83977 * tree.c (free_lang_data_in_decl): Don't clear DECL_ABSTRACT_ORIGIN here. * omp-low.c (create_omp_child_function): Remove "omp declare simd" attributes from DECL_ATTRIBUTES (decl) without affecting DECL_ATTRIBUTES (current_function_decl). * omp-simd-clone.c (expand_simd_clones): Ignore DECL_ARTIFICIAL functions with non-NULL DECL_ABSTRACT_ORIGIN. * c-c++-common/gomp/pr83977-1.c: New test. * c-c++-common/gomp/pr83977-2.c: New test. * c-c++-common/gomp/pr83977-3.c: New test. * gfortran.dg/gomp/pr83977.f90: New test. From-SVN: r257023
2018-01-24Remove explicit dg-do runs from gcc.dg/vect (PR 83889)Richard Sandiford22-30/+30
The failures in this PR were from forcing { dg-do run } even when vect.exp chooses options that are incompatible with the runtime. The default vect.exp behaviour is to execute when possible, so there's no need for a dg-do at all. The patch removes other unconditional { dg-do run }s too. Many of them were already failing in the same way. Also, the dg-do run condition in vect-reduc-or* seems unnecessary: the test should run correctly whatever happens, and the scan tests are already guarded properly. 2018-01-24 Richard Sandiford <richard.sandiford@linaro.org> gcc/testsuite/ PR testsuite/83889 * gcc.dg/vect/pr79920.c: Remove explicit dg-do run. * gcc.dg/vect/pr80631-1.c: Likewise. * gcc.dg/vect/pr80631-2.c: Likewise. * gcc.dg/vect/pr81410.c: Likewise. * gcc.dg/vect/pr81633.c: Likewise. * gcc.dg/vect/pr81815.c: Likewise. * gcc.dg/vect/pr82108.c: Likewise. * gcc.dg/vect/pr83857.c: Likewise. * gcc.dg/vect/vect-alias-check-8.c: Likewise. * gcc.dg/vect/vect-alias-check-9.c: Likewise. * gcc.dg/vect/vect-alias-check-10.c: Likewise. * gcc.dg/vect/vect-alias-check-11.c: Likewise. * gcc.dg/vect/vect-alias-check-12.c: Likewise. * gcc.dg/vect/vect-reduc-11.c: Likewise. * gcc.dg/vect/vect-tail-nomask-1.c: Likewise. * gcc.dg/vect/vect-reduc-in-order-1.c: Remove dg-do run and use dg-xfail-run-if instead. * gcc.dg/vect/vect-reduc-in-order-2.c: Likewise. * gcc.dg/vect/vect-reduc-in-order-3.c: Likewise. * gcc.dg/vect/vect-reduc-in-order-4.c: Likewise. * gcc.dg/vect/vect-reduc-or_1.c: Remove conditional dg-do run. * gcc.dg/vect/vect-reduc-or_2.c: Likewise. From-SVN: r257022
2018-01-24Fix use of boolean_true/false_node (PR 83979)Richard Sandiford4-12/+30
r255913 changed some constant_boolean_node calls to boolean_true_node and boolean_false_node, which meant that the returned tree didn't always have the right type. 2018-01-24 Richard Sandiford <richard.sandiford@linaro.org> gcc/ PR tree-optimization/83979 * fold-const.c (fold_comparison): Use constant_boolean_node instead of boolean_{true,false}_node. gcc/testsuite/ PR tree-optimization/83979 * g++.dg/pr83979.c: New test. From-SVN: r257021
2018-01-24ipa-profile.c (ipa_propagate_frequency_1): Fix logic skipping calls with ↵Jan Hubicka2-5/+8
zero counts. * ipa-profile.c (ipa_propagate_frequency_1): Fix logic skipping calls with zero counts. From-SVN: r257020
2018-01-24rs6000.md (*call_indirect_nonlocal_sysv<mode>): Simplify the clause that ↵Bill Schmidt2-50/+33
sets the length attribute. 2018-01-24 Bill Schmidt <wschmidt@linux.vnet.ibm.com> * config/rs6000/rs6000.md (*call_indirect_nonlocal_sysv<mode>): Simplify the clause that sets the length attribute. (*call_value_indirect_nonlocal_sysv<mode>): Likewise. (*sibcall_nonlocal_sysv<mode>): Clean up code block; simplify the clause that sets the length attribute. (*sibcall_value_nonlocal_sysv<mode>): Likewise. From-SVN: r257019
2018-01-24PR c++/82249 - wrong mismatched pack length error.Jason Merrill3-3/+43
* pt.c (extract_fnparm_pack, tsubst_pack_expansion): Handle unsubstituted function parameter pack. From-SVN: r257018
2018-01-24[testsuite] Fix arm options in gcc.dg/lto/20110201-1_0.cKyrylo Tkachov2-1/+7
This test fails on arm hardfloat targets because it sets an explicit -mfloat-abi=softfp. The usual approach to setting the NEON options is to use dg-add-options arm_neon. But in the lto tests we don't have that framework, we can only set them explicitly with dg-lto-options. The solution is to remove the explicit -mfloat-abi=softfp and instead add an effective target check for arm_neon_ok_no_float_abi that makes sure we only run this test if -mfpu=neon is enough to get NEON without any -mfloat-abi options. In fact, this is what the comment above check_effective_target_arm_neon_ok_no_float_abi_nocache recommends for lto tests. That way on my hardfloat toolchain the test doesn't try to link the softfp binary against a hard-float runtime/test glue and all is good. I've tested that the test is appropriately skipped when testing a --with-float=soft toolchain. * gcc.dg/lto/20110201-1_0.c: Remove explicit -mfloat-abi=softfp option. Add arm_neon_ok_no_float_abi check. From-SVN: r257017
2018-01-24[nvptx, PR83589] Workaround for branch-around-nothing JIT bugTom de Vries3-0/+111
2018-01-24 Tom de Vries <tom@codesourcery.com> PR target/83589 * config/nvptx/nvptx.c (WORKAROUND_PTXJIT_BUG_2): Define to 1. (nvptx_pc_set, nvptx_condjump_label): New function. Copy from jump.c. Add strict parameter. (prevent_branch_around_nothing): Insert dummy insn between branch to label and label with no ptx insn inbetween. * config/nvptx/nvptx.md (define_insn "fake_nop"): New insn. * testsuite/libgomp.oacc-c-c++-common/pr83589.c: New test. From-SVN: r257016
2018-01-24[nvptx, PR81352] Add exit insn after noreturn call for neutered threads in warpTom de Vries3-1/+18
2018-01-24 Tom de Vries <tom@codesourcery.com> PR target/81352 * config/nvptx/nvptx.c (nvptx_single): Add exit insn after noreturn call for neutered threads in warp. * config/nvptx/nvptx.md (define_insn "exit"): New insn. * testsuite/libgomp.oacc-fortran/pr81352.f90: New test. From-SVN: r257014
2018-01-24re PR tree-optimization/83176 ([graphite] ICE in set_codegen_error, at ↵Richard Biener4-4/+87
graphite-isl-ast-to-gimple.c:206) 2018-01-24 Richard Biener <rguenther@suse.de> PR tree-optimization/83176 * tree-chrec.c (chrec_fold_plus_1): Handle (signed T){(T) .. } operands. * gcc.dg/graphite/pr83176.c: New testcase. From-SVN: r257013
2018-01-24re PR tree-optimization/82819 ([graphite] ICE in set_codegen_error, at ↵Richard Biener4-1/+35
graphite-isl-ast-to-gimple.c:206) 2018-01-24 Richard Biener <rguenther@suse.de> PR tree-optimization/82819 * graphite-isl-ast-to-gimple.c (binary_op_to_tree): Avoid code generating pluses that are no-ops in the target precision. * gcc.dg/graphite/pr82819.c: New testcase. From-SVN: r257012
2018-01-24re PR fortran/84000 (ICE in replace_loop_annotate, at tree-cfg.c:352)Richard Biener2-0/+6
2018-01-24 Richard Biener <rguenther@suse.de> PR middle-end/84000 * tree-cfg.c (replace_loop_annotate): Handle annot_expr_parallel_kind. From-SVN: r257011
2018-01-24cfgcleanup.c (try_crossjump_to_edge): Use combine_with_count to merge ↵Jan Hubicka6-48/+92
probabilities. * cfgcleanup.c (try_crossjump_to_edge): Use combine_with_count to merge probabilities. * predict.c (probably_never_executed): Also mark as cold functions with global 0 profile and guessed local profile. * profile-count.c (profile_probability::combine_with_count): New member function. * profile-count.h (profile_probability::operator*, profile_probability::operator*=, profile_probability::operator/, profile_probability::operator/=): Reduce precision to adjusted and set value to guessed on contradictory divisions. (profile_probability::combine_with_freq): Remove. (profile_probability::combine_wiht_count): Declare. (profile_count::force_nonzero):: Set to adjusted. (profile_count::probability_in):: Set quality to adjusted. * tree-ssa-tail-merge.c (replace_block_by): Use combine_with_count. From-SVN: r257010
2018-01-24re PR c++/83921 (GCC rejects constexpr initialization of empty aggregate.)Paolo Carlini10-26/+103
/cp 2018-01-23 Paolo Carlini <paolo.carlini@oracle.com> PR c++/83921 * decl.c (check_for_uninitialized_const_var): Not static; add bool and tsubst_flags_t parameters; adjust to be used both in constexpr context and not. * constexpr.c (potential_constant_expression_1): Use the above. * cp-tree.h (check_for_uninitialized_const_var): Declare. /testsuite 2018-01-23 Paolo Carlini <paolo.carlini@oracle.com> PR c++/83921 * g++.dg/cpp1y/constexpr-83921-1.C: New. * g++.dg/cpp1y/constexpr-83921-2.C: Likewise. * g++.dg/cpp1y/constexpr-83921-3.C: Likewise. * g++.dg/ext/stmtexpr20.C: Likewise. * g++.dg/ext/stmtexpr21.C: Likewise. From-SVN: r257009
2018-01-24Daily bump.GCC Administrator1-1/+1
From-SVN: r257008
2018-01-23RISC-V: Add -mpreferred-stack-boundary option.Andrew Waterman5-5/+57
2018-01-23 Andrew Waterman <andrew@sifive.com> gcc/ * config/riscv/riscv.c (riscv_stack_boundary): New. (riscv_option_override): Set riscv_stack_boundary. Handle riscv_preferred_stack_boundary_arg. * config/riscv/riscv.h (MIN_STACK_BOUNDARY, ABI_STACK_BOUNDARY): New. (BIGGEST_ALIGNMENT): Set to STACK_BOUNDARY. (STACK_BOUNDARY): Set to riscv_stack_boundary. (RISCV_STACK_ALIGN): Use STACK_BOUNDARY. * config/riscv/riscv.opt (mpreferred-stack-boundary): New. * doc/invoke.tex (RISC-V Options): Add -mpreferred-stack-boundary. Co-Authored-By: Jim Wilson <jimw@sifive.com> From-SVN: r257005
2018-01-23* g++.dg/cpp1y/lambda-generic.C: Remove libstdc++ dependency.Jason Merrill1-4/+5
From-SVN: r257001
2018-01-23PR c++/83947 - ICE with auto declarations.Jason Merrill4-3/+21
* pt.c (do_auto_deduction): Don't deduce from an auto decl. * decl.c (undeduced_auto_decl): Limit to vars and fns. From-SVN: r257000
2018-01-23C++: Fix ICE in fold_for_warn on CAST_EXPR (PR c++/83974)David Malcolm4-4/+22
gcc/cp/ChangeLog: PR c++/83974 * pt.c (tsubst_copy_and_build) <CONSTRUCTOR>: Remove early bailout for pointer to member function types. gcc/testsuite/ChangeLog: PR c++/83974 * g++.dg/warn/pr83974.C: New test case. From-SVN: r256999
2018-01-23re PR sanitizer/83987 (ICE with OpenMP, sanitizer and virtual bases)Jakub Jelinek4-11/+47
PR sanitizer/83987 * tree.c (cp_free_lang_data): Change DECL_VALUE_EXPR of DECL_OMP_PRIVATIZED_MEMBER vars to error_mark_node. * g++.dg/ubsan/pr83987.C: New test. From-SVN: r256997
2018-01-23i386: Use const reference of struct ix86_frame to avoid copyH.J. Lu2-12/+20
We can use const reference of struct ix86_frame to avoid making a local copy of ix86_frame. ix86_expand_epilogue makes a local copy of struct ix86_frame and uses the reg_save_offset field as a local variable. This patch uses a separate local variable for reg_save_offset. Tested on x86-64 with ada. PR target/83905 * config/i386/i386.c (ix86_expand_prologue): Use cost reference of struct ix86_frame. (ix86_expand_epilogue): Likewise. Add a local variable for the reg_save_offset field in struct ix86_frame. From-SVN: r256996
2018-01-23re PR fortran/83866 (ICE in gfc_release_symbol, at fortran/symbol.c:3087)Paul Thomas4-1/+30
2018-23-01 Paul Thomas <pault@gcc.gnu.org> PR fortran/83866 * decl.c (gfc_match_derived_decl): If eos not matched, recover and emit error about garbage after declaration. 2018-23-01 Paul Thomas <pault@gcc.gnu.org> PR fortran/83866 * gfortran.dg/pdt_29.f03 : New test. From-SVN: r256995
2018-01-23re PR fortran/83898 (ICE in gfc_conv_expr_descriptor, at ↵Paul Thomas4-1/+24
fortran/trans-array.c:7181) 2018-23-01 Paul Thomas <pault@gcc.gnu.org> PR fortran/83898 * trans-stmt.c (trans_associate_var): Do not set cst_array_ctor for characters. 2018-23-01 Paul Thomas <pault@gcc.gnu.org> PR fortran/83898 * gfortran.dg/associate_33.f03 : New test. From-SVN: r256994