- 13 Nov, 2018 16 commits
-
-
* gcc-interface/misc.c (gnat_init_gcc_eh): Set -fnon-call-exceptions for the runtime on platforms where System.Machine_Overflow is true. From-SVN: r266057
Eric Botcazou committed -
When lambdas were added in C++11 they were banned from unevaluated contexts as a way to avoid needing to deal with them in mangling or SFINAE. This proposal avoids that with a more narrow proposal: lambdas never compare as equivalent (so we don't need to mangle them), and substitution failures within a lambda are hard errors. Lambdas appearing in places that types couldn't previously have been declared introduces various complications; in particular, it seems likely to mean types with no linkage being used more broadly, risking ODR violations. I want to follow up this patch with some related diagnostics. * decl2.c (min_vis_expr_r): Handle LAMBDA_EXPR. * mangle.c (write_expression): Handle LAMBDA_EXPR. * parser.c (cp_parser_lambda_expression): Allow lambdas in unevaluated context. Start the tentative firewall sooner. (cp_parser_lambda_body): Use cp_evaluated. * pt.c (iterative_hash_template_arg): Handle LAMBDA_EXPR. (tsubst_function_decl): Substitute a lambda even if it isn't dependent. (tsubst_lambda_expr): Use cp_evaluated. Always complain. (tsubst_copy_and_build) [LAMBDA_EXPR]: Do nothing if tf_partial. * semantics.c (begin_class_definition): Allow in template parm list. * tree.c (strip_typedefs_expr): Pass through LAMBDA_EXPR. (cp_tree_equal): Handle LAMBDA_EXPR. From-SVN: r266056
Jason Merrill committed -
Previously, when we got a function template with explicit arguments for all of the template parameters, we still did "deduction", which of course couldn't deduce anything, but did other deduction-time checking of non-dependent conversions and such. This broke down with the unevaluated lambdas patch (to follow): substituting into the lambda multiple times, once to get the function type for deduction and then again to generate the actual decl, doesn't work, since different substitutions of a lambda produce different types. I believe that skipping the initial substitution when we have all the arguments is still conformant, and produces better diagnostics for some testcases. * pt.c (fn_type_unification): If we have a full set of explicit arguments, go straight to substitution. From-SVN: r266055
Jason Merrill committed -
* decl2.c (min_vis_expr_r, expr_visibility): New. We weren't properly constraining visibility based on names that appear in the mangled representation of expressions. This was made more obvious by the upcoming unevaluated lambdas patch. (min_vis_r): Call expr_visibility. (constrain_visibility_for_template): Likewise. From-SVN: r266054
Jason Merrill committed -
A destroying operator delete takes responsibility for calling the destructor for the object it is deleting; this is intended to be useful for sized delete of a class allocated with a trailing buffer, where the compiler can't know the size of the allocation, and so would pass the wrong size to the non-destroying sized operator delete. gcc/c-family/ * c-cppbuiltin.c (c_cpp_builtins): Define __cpp_impl_destroying_delete. gcc/cp/ * call.c (std_destroying_delete_t_p, destroying_delete_p): New. (aligned_deallocation_fn_p, usual_deallocation_fn_p): Use destroying_delete_p. (build_op_delete_call): Handle destroying delete. * decl2.c (coerce_delete_type): Handle destroying delete. * init.c (build_delete): Don't call dtor with destroying delete. * optimize.c (build_delete_destructor_body): Likewise. libstdc++-v3/ * libsupc++/new (std::destroying_delete_t): New. From-SVN: r266053
Jason Merrill committed -
Mostly this was straightforward; the tricky bit was finding, in the instantiation, the set of capture proxies built when instantiating the init-capture. The comment in lookup_init_capture_pack goes into detail. * parser.c (cp_parser_lambda_introducer): Parse pack init-capture. * pt.c (tsubst_pack_expansion): Handle init-capture packs. (lookup_init_capture_pack): New. (tsubst_expr) [DECL_EXPR]: Use it. (tsubst_lambda_expr): Remember field pack expansions for init-captures. From-SVN: r266052
Jason Merrill committed -
* cp-tree.h (struct cp_evaluated): New. This patch simplifies the saving/clearing/restoring of cp_unevaluated_operand and c_inhibit_evaluation_warnings in the presence of mid-block returns. * init.c (get_nsdmi): Use it. * parser.c (cp_parser_enclosed_template_argument_list): Use it. * pt.c (coerce_template_parms, tsubst_aggr_type): Use it. From-SVN: r266051
Jason Merrill committed -
People objected to the old macro name as unclear, so it was changed. * c-cppbuiltin.c (c_cpp_builtins): Change __cpp_explicit_bool to __cpp_conditional_explicit. From-SVN: r266050
Jason Merrill committed -
This patch removes a call only necessary when using reload. It also corrects a PRE_DEC address offset. * config/rs6000/rs6000.c (rs6000_secondary_reload_inner): Negate offset for PRE_DEC. (rs6000_secondary_reload_gpr): Don't call find_replacement. From-SVN: r266049
Alan Modra committed -
re PR middle-end/59634 (Documentation (info/man page): lack of information for cache size parameters (--param)) 2018-11-13 Sandra Loosemore <sandra@codesourcery.com> PR middle-end/59634 gcc/ * doc/invoke.texi (Optimize Options): Clarify that the l1-cache-line-size, l1-cache-size, and l2-cache-size parameters apply to data cache size. From-SVN: r266048
Sandra Loosemore committed -
* config/rs6000/rs6000.c (rs6000_emit_prologue): Comment fix. From-SVN: r266047
Alan Modra committed -
The testcase exercises one of the rotate patterns. gcc/ * config/rs6000/predicates.md (logical_const_operand), (logical_operand): Correct comment. gcc/testsuite/ * gcc.target/powerpc/rotmask.c: New. From-SVN: r266046
Alan Modra committed -
* config/rs6000/rs6000.md (addsi3_high): Prefix with '*'. From-SVN: r266045
Alan Modra committed -
This catches a few places where move insn patterns don't slightly disparage CTR, LR and VRSAVE regs. Also fixes the doc for the rs6000 h constraint, and removes an r->cl alternative covered by r->h. * gcc/doc/md.texi (Machine Constraints): Correct rs6000 h constraint description. * config/rs6000/rs6000.md (movsi_internal1): Delete MT%0 case covered by alternative. (movcc_internal1): Ignore h for register preference. (mov<mode>_hardfloat64): Likewise. (mov<mode>_softfloat): Ignore c, l, h for register preference. From-SVN: r266044
Alan Modra committed -
2018-11-12 Sandra Loosemore <sandra@codesourcery.com> PR preprocessor/47823 gcc/ * doc/cpp.texi (Alternatives to Wrapper #ifndef): Move #pragma once documentation to... (Pragmas): ...here. * doc/extend.texi (Pragmas): Note additional pragmas documented in the CPP manual. From-SVN: r266043
Sandra Loosemore committed -
From-SVN: r266042
GCC Administrator committed
-
- 12 Nov, 2018 17 commits
-
-
gcc/ChangeLog: 2018-11-13 Kugan Vivekanandarajah <kuganv@linaro.org> PR middle-end/86677 PR middle-end/87528 * tree-scalar-evolution.c (expression_expensive_p): Make BUILTIN POPCOUNT as expensive when backend does not define it. gcc/testsuite/ChangeLog: 2018-11-13 Kugan Vivekanandarajah <kuganv@linaro.org> PR middle-end/86677 PR middle-end/87528 * g++.dg/tree-ssa/pr86544.C: Run only for target supporting popcount pattern. * gcc.dg/tree-ssa/popcount.c: Likewise. * gcc.dg/tree-ssa/popcount2.c: Likewise. * gcc.dg/tree-ssa/popcount3.c: Likewise. * gcc.target/aarch64/popcount4.c: New test. * lib/target-supports.exp (check_effective_target_popcountl): New. From-SVN: r266039
Kugan Vivekanandarajah committed -
The Linux kernel requires and emulates LL and SC for the R5900 too. The special --without-llsc default for the R5900 is therefore not applicable in that case. Reviewed-by: Maciej W. Rozycki <macro@linux-mips.org> 2018-11-12 Fredrik Noring <noring@nocrew.org> gcc/ * config.gcc: Update with-llsc defaults for MIPS r5900. From-SVN: r266038
Fredrik Noring committed -
2018-11-12 Martin Liska <mliska@suse.cz> PR gcov-profile/87442 * common.opt: Add -fprofile-filter-files and -fprofile-exclude-files options. * doc/invoke.texi: Document them. * tree-profile.c (parse_profile_filter): New. (parse_profile_file_filtering): Likewise. (release_profile_file_filtering): Likewise. (include_source_file_for_profile): Likewise. (tree_profiling): Filter source files based on the newly added options. 2018-11-12 Martin Liska <mliska@suse.cz> PR gcov-profile/87442 * gcc.dg/profile-filtering-1.c: New test. * gcc.dg/profile-filtering-2.c: New test. From-SVN: r266037
Martin Liska committed -
2018-11-12 Martin Liska <mliska@suse.cz> PR target/87903 * doc/extend.texi: Add missing values for __builtin_cpu_is and __builtin_cpu_supports for x86 target. From-SVN: r266036
Martin Liska committed -
2018-11-12 Sandra Loosemore <sandra@codesourcery.com> PR middle-end/21110 gcc/ * doc/rtl.texi (Constants): Clarify that mode of "high" doesn't have to be Pmode. (Arithmetic): Likewise for "lo_sum". From-SVN: r266035
Sandra Loosemore committed -
gcc/testsuite/ChangeLog: * gcc.dg/Wattribute-alias.c: Require ifunc support. From-SVN: r266034
Martin Sebor committed -
[PR87815]Don't generate shift sequence for load replacement in DSE when the mode size is not compile-time constant The patch adds a check if the gap is compile-time constant. This happens when dse decides to replace the load with previous store value. The problem is that, shift sequence could not accept compile-time non-constant mode operand. gcc/ 2018-11-12 Renlin Li <renlin.li@arm.com> PR target/87815 * dse.c (get_stored_val): Add check for compile-time constantness of gap. gcc/testsuite/ 2018-11-12 Renlin Li <renlin.li@arm.com> PR target/87815 * gcc.target/aarch64/sve/pr87815.c: New. From-SVN: r266033
Renlin Li committed -
PR libstdc++/87963 * src/c++17/memory_resource.cc (chunk::_M_bytes): Change type from unsigned to uint32_t. (chunk): Fix static assertion for 64-bit targets that aren't LP64. (bigblock::all_ones): Fix undefined shift. From-SVN: r266032
Jonathan Wakely committed -
This patch adds -march=armv8.5-a to the Arm backend. Armv8.5-A also adds two new security features: - Speculation Barrier instruction - Execution and Data Prediction Restriction Instructions These are made optional to all older Armv8-A versions. Thus we are adding two new options "+sb" and "+predres" to all older Armv8-A. These are passed on to the assembler and have no code generation effects and have already gone in the trunk of binutils. *** gcc/ChangeLog *** 2018-11-12 Sudakshina Das <sudi.das@arm.com> * config/arm/arm-cpus.in (armv8_5, sb, predres): New features. (ARMv8_5a): New fgroup. (armv8.5-a): New arch. (armv8-a, armv8.1-a, armv8.2-a, armv8.3-a, armv8.4-a): New options sb and predres. * config/arm/arm-tables.opt: Regenerate. * config/arm/t-aprofile: Add matching rules for -march=armv8.5-a * config/arm/t-arm-elf (all_v8_archs): Add armv8.5-a. * config/arm/t-multilib (v8_5_a_simd_variants): New variable. Add matching rules for -march=armv8.5-a and extensions. * doc/invoke.texi (ARM options): Document -march=armv8.5-a. Add sb and predres to all armv8-a except armv8.5-a. *** gcc/testsuite/ChangeLog *** 2018-11-12 Sudakshina Das <sudi.das@arm.com> * gcc.target/arm/multilib.exp: Add some -march=armv8.5-a combination tests. From-SVN: r266031
Sudakshina Das committed -
* tree-vrp.h (value_range[_base]::set): Make public. Provide overload for single value. (value_range[_base]::set_nonnull): New. (value_range[_base]::set_null): Likewise. (value_range): Document bitmap copying behavior, mark copy constructor and assignment operator deleted. (value_range::move): New. (value_range::set_and_canonicalize): Default bitmap to zero. (set_value_range_to_nonnull): Remove. (set_value_range_to_null): Likewise. (set_value_range): Likewise. (set_value_range_to_value): Likewise. (extract_range_from_unary_expr): Work on value_range_base. (extract_range_from_binary_expr_1): Likewise. Rename to... (extract_range_from_binary_expr): ... this. * tree-vrp.c (value_range::update): Clear equiv bitmap if required. (value_range::move): New, move equiv bitmap. (value_range_base::set_undefined): Avoid assignment. (value_range::set_undefined): Likewise. (value_range_base::set_varying): Likewise. (value_range::set_varying): Likewise. (set_value_range): Remove. (value_range_base::set): New overload for value. (value_range::set): Likewise. (set_value_range_to_nonnull): Remove. (value_range_base::set_nonnull): New. (value_range::set_nonnull): Likewise. (set_value_range_to_null): Remove. (value_range_base::set_null): New. (value_range::set_null): Likewise. (range_is_null): Work on value_range_base. (range_is_nonnull): Likewise. (ranges_from_anti_range): Likewise. (extract_range_into_wide_ints): Likewise. (extract_range_from_multiplicative_op): Likewise. (extract_range_from_binary_expr): Likewise. Update for API changes. (extract_range_from_unary_expr): Likewise. Remove OBJ_TYPE_REF handling. (value_range::intersect_helper): Avoid copy and assignment. (value_range::union_helper): Likewise. (determine_value_range_1): Adjust. * gimple-ssa-evrp-analyze.c (evrp_range_analyzer::try_find_new_range): Avoid assignment by using move. (evrp_range_analyzer::record_ranges_from_stmt): Avoid assignment. * tree-ssa-threadedge.c (record_temporary_equivalences_from_phis): Likewise. * tree-ssanames.c (get_range_info): Likewise. * vr-values.h (vr_values::get_vr_for_comparison): Adjust API. * vr-values.c (vr_values::get_value_range): Adjust. (vr_values::update_value_range): Likewise. (symbolic_range_based_on_p): Work on value_range_base. (vr_values::extract_range_from_binary_expr): Use value_range_base. (vr_values::extract_range_from_unary_expr): Likewise. (vr_values::extract_range_from_cond_expr): Avoid assignment. (vr_values::extract_range_from_comparison): Adjust. (vr_values::check_for_binary_op_overflow): Use value_range_base. (vr_values::extract_range_basic): Adjust. (vr_values::adjust_range_with_scev): Likewise. (vr_values::vrp_visit_assignment_or_call): Likewise. (vr_values::get_vr_for_comparison): Change API to avoid assignment and copy construction. (vr_values::compare_name_with_value): Adjust accordingly. (vr_values::compare_names): Likewise. (vr_values::extract_range_from_phi_node): Avoid assignment and bogus in-place modify of equiv bitmap. (vr_values::simplify_bit_ops_using_ranges): Use value_range_base. * ipa-prop.c (ipa_compute_jump_functions_for_edge): Adjust for extract_range_from_unary_expr API change. * ipa-cp.c (ipa_vr_operation_and_type_effects): Likewise. From-SVN: r266030
Richard Biener committed -
From-SVN: r266029
Eric Botcazou committed -
2018-11-12 Richard Biener <rguenther@suse.de> * tree-vrp.h (value_range_base::symbolic_p, value_range_base::constant_p, value_range_base::zero_p, value_range_base::singleton_p): Move from value_range. (value_range::dump): Add. * gimple-ssa-evrp-analyze.c (evrp_range_analyzer::record_ranges_from_phis): Use set_varying. * ipa-cp.c (ipcp_vr_lattice::print): Use dump_value_range. * tree-ssa-threadedge.c (record_temporary_equivalences_from_phis): Use set_varying. * tree-vrp.c (value_range::symbolic_p): Move to value_range_base. (value_range::constant_p): Likewise. (value_range::singleton_p): Likewise. (value_range_base::dump): Add. (set_value_range_to_undefined): Remove. (set_value_range_to_varying): Likewise. (range_int_cst_p): Take value_range_base argument. (range_int_cst_singleton_p): Likewise. (value_range_constant_singleton): Likewise. (vrp_set_zero_nonzero_bits): Likewise. (extract_range_from_multiplicative_op): Use set_varying. (extract_range_from_binary_expr_1): Likewise. Use set_undefined. (extract_range_from_unary_expr): Likewise. (dump_value_range_base): Change to overload of dump_value_range. (vrp_prop::vrp_initialize): Use set_varying and set_undefined. (vrp_prop::visit_stmt): Likewise. (value_range::intersect_helper): Likewise. (value_range::union_helper): Likewise. (determine_value_range_1): Likewise. From-SVN: r266028
Richard Biener committed -
2018-11-12 Richard Biener <rguenther@suse.de> * tree-vrp.c (set_value_range_to_nonnull): Clear equiv. (set_value_range_to_null): Likewise. * vr-values.c (vr_values::extract_range_from_comparison): Clear equiv for constant singleton ranges. From-SVN: r266027
Richard Biener committed -
2018-11-12 Wei Xiao <wei3.xiao@intel.com> * config/i386/sse.md: Combine VFIXUPIMM* patterns (<avx512>_fixupimm<mode>_maskz<round_saeonly_expand_name>): Update. (<avx512>_fixupimm<mode><sd_maskz_name><round_saeonly_name>): Update. (<avx512>_fixupimm<mode>_mask<round_saeonly_name>): Remove. (avx512f_sfixupimm<mode>_maskz<round_saeonly_expand_name>): Update. (avx512f_sfixupimm<mode><sd_maskz_name><round_saeonly_name>): Update. (avx512f_sfixupimm<mode>_mask<round_saeonly_name>): Remove. From-SVN: r266026
Wei Xiao committed -
2018-11-11 Sandra Loosemore <sandra@codesourcery.com> PR c/69502 gcc/ * doc/extend.texi (Common Type Attributes): For the align type attribute, copy language about decreasing alignment from the corresponding variable attribute. From-SVN: r266025
Sandra Loosemore committed -
2018-11-11 Xianmiao Qu <xianmiao_qu@c-sky.com> gcc/ * config/csky/csky.md (*fpuv2_nmulsf3_1, *fpuv2_nmuldf3_1): Handle -frounding-math. gcc/testsuite * gcc.target/csky/fnmul-1.c: New. * gcc.target/csky/fnmul-2.c: New. * gcc.target/csky/fnmul-3.c: New. * gcc.target/csky/fnmul-4.c: New. From-SVN: r266024
Xianmiao Qu committed -
From-SVN: r266023
GCC Administrator committed
-
- 11 Nov, 2018 7 commits
-
-
2018-11-11 Sandra Loosemore <sandra@codesourcery.com> PR c++/43105 gcc/ * doc/invoke.texi (C++ Dialect Options): Add warning about mixing -frtti and -fno-rtti code. From-SVN: r266020
Sandra Loosemore committed -
From-SVN: r266019
Hans-Peter Nilsson committed -
re PR libstdc++/54005 (Use __atomic_always_lock_free in libstdc++ is_lock_free instead of __atomic_is_lock_free) PR libstdc++-v3/54005 * include/bits/atomic_base.h (__atomic_base<_TTp>::is_lock_free(), __atomic_base<_PTp*>::is_lock_free()): Call __atomic_always_lock_free with the type-derived _S_alignment instead of __alignof the object. * include/std/atomic (atomic<T>::is_lock_free()): Likewise. From-SVN: r266018
Hans-Peter Nilsson committed -
2018-11-11 Sandra Loosemore <sandra@codesourcery.com> PR c/26366 gcc/ * doc/extend.texi (Other Builtins): Document probability associated with __builtin_expect. From-SVN: r266017
Sandra Loosemore committed -
PR target/87928 * config/i386/i386.h (STACK_BOUNDARY): Use TARGET_64BIT_MS_ABI instead of (TARGET_64BIT && ix86_abi == MS_ABI). * config/i386/darwin.h (STACK_BOUNDARY): Ditto. * config/i386/cygming.h (STACK_BOUNDARY): Remove. testsuite /Changelog: PR target/87928 * gcc.target/i386/pr87928.c: New test. From-SVN: r266016
Uros Bizjak committed -
2018-11-11 Xianmiao Qu <xianmiao_qu@c-sky.com> * config/csky/csky-linux-elf.h (CC1_SPEC): Support -profile. From-SVN: r266013
Xianmiao Qu committed -
2018-11-11 Xianmiao Qu <xianmiao_qu@c-sky.com> * config/csky/csky.h (ASM_PREFERRED_EH_DATA_FORMAT): Define. From-SVN: r266012
Xianmiao Qu committed
-