aboutsummaryrefslogtreecommitdiff
path: root/gcc
AgeCommit message (Collapse)AuthorFilesLines
2017-05-04All cores which add a cpu_addrcost_table use a non-zero value for HI and TI...Wilco Dijkstra2-2/+7
All cores which add a cpu_addrcost_table use a non-zero value for HI and TI mode shifts (a non-zero value for general indexing also applies to all shifts). Given this, it makes no sense to use a different setting in generic_addrcost_table. So change it so that all supported cores, including -mcpu=generic, now generate the same: int f(short *p, short *q, long x) { return p[x] + q[x]; } lsl x2, x2, 1 ldrsh w3, [x0, x2] ldrsh w0, [x1, x2] add w0, w3, w0 ret gcc/ * config/aarch64/aarch64.c (generic_addrcost_table): Change HI/TI mode setting. From-SVN: r247606
2017-05-04[PR 80622] Treat const pools as initialized in SRAMartin Jambor4-10/+57
2017-05-04 Martin Jambor <mjambor@suse.cz> PR tree-optimization/80622 * tree-sra.c (comes_initialized_p): New function. (build_accesses_from_assign): Only set write lazily when comes_initialized_p is false. (analyze_access_subtree): Use comes_initialized_p. (propagate_subaccesses_across_link): Assert !comes_initialized_p instead of testing for PARM_DECL. testsuite/ * gcc.dg/tree-ssa/pr80622.c: New test. From-SVN: r247604
2017-05-04[AArch64] Accept more addressing modes for PRFMKyrylo Tkachov8-10/+76
* config/aarch64/aarch64.md (prefetch); Adjust predicate and constraint on operand 0 to allow more general addressing modes. Adjust output template. * config/aarch64/aarch64.c (aarch64_address_valid_for_prefetch_p): New function. * config/aarch64/aarch64-protos.h (aarch64_address_valid_for_prefetch_p): Declare prototype. * config/aarch64/constraints.md (Dp): New address constraint. * config/aarch64/predicates.md (aarch64_prefetch_operand): New predicate. * gcc.target/aarch64/prfm_imm_offset_1.c: New test. From-SVN: r247603
2017-05-04Update .po files.Joseph Myers17-5648/+5749
* be.po, da.po, el.po, fi.po, hr.po, id.po, ja.po, nl.po, ru.po, sr.po, sv.po, tr.po, uk.po, vi.po, zh_CN.po, zh_TW.po: Update. From-SVN: r247601
2017-05-04More global trees.Nathan Sidwell7-57/+47
* cp-tree.h (enum cp_tree_index): Add CPTI_GLOBAL, CPTI_GLOBAL_TYPE, CPTI_GLOBAL_IDENTIFIER, CPTI_ANON_IDENTIFIER, CPTI_INIT_LIST_IDENTIFIER. (global_namespace, global_type_node, global_identifier) anon_identifier, init_list_identifier): New. * decl.c (global_type_node, global_scope_name): Delete. (initialize_predefined_identifiers): Add new identifiers. (cxx_init_decl_processing): Adjust. * name-lookup.h (global_namespace, global_type_node): Delete. * name-lookup.c (global_namespace, anonymous_namespace_name) get_anonymous_namespace_name): Delete. (namespace_scope_ht_size, begin_scope, pushtag_1) push_namespace): Adjust, * call.c (type_has_extended_temps): Use init_list_identifier. * pt.c (listify): Likewise. (((--This line, and those below, will be ignored-- M cp/name-lookup.c M cp/name-lookup.h M cp/ChangeLog M cp/call.c M cp/pt.c M cp/cp-tree.h M cp/decl.c From-SVN: r247599
2017-05-04ipa-cp.c (perform_estimation_of_a_value): Drop base_time parameter; update ↵Jan Hubicka7-19/+35
use of estimate_ipcp_clone_size_and_time. * ipa-cp.c (perform_estimation_of_a_value): Drop base_time parameter; update use of estimate_ipcp_clone_size_and_time. (estimate_local_effects): Update use of estimate_ipcp_clone_size_and_time and perform_estimation_of_a_value. * ipa-inline.h (estimate_ipcp_clone_size_and_time): Update prototype. * ipa-inline-analysis.c (estimate_ipcp_clone_size_and_time): Return nonspecialized time. * gcc.dg/ipa/ipcp-2.c: Decrease ipcp threshold * gcc.dg/tree-ssa/ipa-cp-1.c: Likewise. From-SVN: r247597
2017-05-04tree-ssa-alias.c (get_continuation_for_phi): Improve looking for the last ↵Richard Biener4-94/+107
VUSE which def dominates the PHI. 2017-05-04 Richard Biener <rguenther@suse.de> * tree-ssa-alias.c (get_continuation_for_phi): Improve looking for the last VUSE which def dominates the PHI. Directly call maybe_skip_until. (get_continuation_for_phi_1): Remove. * gcc.dg/tree-ssa/ssa-fre-58.c: New testcase. From-SVN: r247596
2017-05-04name-lookup.c: Reorder functions to make merging from modules branch simpler.Nathan Sidwell2-725/+730
* name-lookup.c: Reorder functions to make merging from modules branch simpler. From-SVN: r247592
2017-05-04Cap niter_for_unrolled_loop to upper boundRichard Sandiford4-0/+58
For the reasons explained in PR77536, niter_for_unrolled_loop assumes 5 iterations in the absence of profiling information, although it doesn't increase beyond the estimate for the original loop. This left a hole in which the new estimate could be less than the old one but still greater than the limit imposed by CEIL (nb_iterations_upper_bound, unroll factor). 2017-05-04 Richard Sandiford <richard.sandiford@linaro.org> gcc/ * tree-ssa-loop-manip.c (niter_for_unrolled_loop): Add commentary to explain the use of truncating division. Cap the number of iterations to the maximum given by nb_iterations_upper_bound, if defined. gcc/testsuite/ * gcc.dg/vect/vect-profile-1.c: New test. From-SVN: r247591
2017-05-04Fix previous commitRichard Sandiford3-9/+8
From-SVN: r247589
2017-05-04configure.ac (--enable-mingw-wildcard): Add new configurable feature.Thomas Preud'homme7-2/+78
2017-05-04 Thomas Preud'homme <thomas.preudhomme@arm.com> * configure.ac (--enable-mingw-wildcard): Add new configurable feature. * configure: Regenerate. * config.in: Regenerate. * config/i386/driver-mingw32.c: new file. * config/i386/x-mingw32: Add rule to build driver-mingw32.o. * config.host: Link driver-mingw32.o on MinGW host. * doc/install.texi: Document new --enable-mingw-wildcard configure option. From-SVN: r247588
2017-05-04Remove bogus top-level ChangeLog commit (sorry!)Richard Sandiford3-8/+9
From-SVN: r247587
2017-05-04re PR tree-optimization/80612 (ICE in get_range_info, at tree-ssanames.c:375)Marek Polacek4-1/+26
PR tree-optimization/80612 * calls.c (get_size_range): Check for INTEGRAL_TYPE_P. * gcc.dg/torture/pr80612.c: New test. From-SVN: r247586
2017-05-04[ARM] Enable Purecode for ARMv8-M BaselinePrakhar Bahuguna6-34/+81
This patch adds support for purecode to ARMv8-M Baseline, in addition to the existing support for ARMv7-M and ARMv8-M Mainline. 2017-05-04 Prakhar Bahuguna <prakhar.bahuguna@arm.com> Andre Simoes Dias Vieira <andre.simoesdiasvieira@arm.com> gcc/ * config/arm/arm.md (movsi): Change TARGET_32BIT to TARGET_HAVE_MOVT. (movt splitter): Likewise. * config/arm/arm.c (arm_option_check_internal): Change arm_arch_thumb2 to TARGET_HAVE_MOVT, and merge with -mslow-flash-data check. (const_ok_for_arm): Change else to else if (TARGET_THUMB2) and add else block for Thumb-1 with MOVT. (thumb2_legitimate_address_p): Move code block ... (can_avoid_literal_pool_for_label_p): ... into this new function. (thumb1_legitimate_address_p): Add check for TARGET_HAVE_MOVT and literal pool. (thumb_legitimate_constant_p): Add conditional on TARGET_HAVE_MOVT * doc/invoke.texi (-mpure-code): Change "ARMv7-M targets" for "M-profile targets with the MOVT instruction". gcc/testsuite/ * gcc.target/arm/pure-code/pure-code.exp: Add conditional for check_effective_target_arm_thumb1_movt_ok. Co-Authored-By: Andre Vieira <andre.simoesdiasvieira@arm.com> From-SVN: r247585
2017-05-04[ARM] Rename FPSCR builtins to correct namesPrakhar Bahuguna4-2/+28
The GCC documentation in section 6.60.8 ARM Floating Point Status and Control Intrinsics states that the FPSCR register can be read and written to using the intrinsics __builtin_arm_get_fpscr and __builtin_arm_set_fpscr. However, these are misnamed within GCC itself and these intrinsic names are not recognised. This patch corrects the intrinsic names to match the documentation, and adds tests to verify these intrinsics generate the correct instructions. 2017-05-04 Prakhar Bahuguna <prakhar.bahuguna@arm.com> gcc/ * gcc/config/arm/arm-builtins.c (arm_init_builtins): Rename __builtin_arm_ldfscr to __builtin_arm_get_fpscr, and rename __builtin_arm_stfscr to __builtin_arm_set_fpscr. gcc/testsuite/ * gcc.target/arm/fpscr.c: New file. From-SVN: r247584
2017-05-04Remove an unused variable.Martin Liska2-1/+5
2017-05-04 Martin Liska <mliska@suse.cz> * tree-vrp.c (simplify_cond_using_ranges_2): Remove unused variable cond_code. From-SVN: r247583
2017-05-04Require c99_runtime for pr78622.cThomas Preud'homme2-0/+6
2017-05-04 Thomas Preud'homme <thomas.preudhomme@arm.com> gcc/testsuite/ * gcc.c-torture/execute/pr78622.c: Require c99_runtime effective target. From-SVN: r247582
2017-05-04tree.c (array_at_struct_end_p): Handle arrays at struct end with flexarrays ↵Richard Biener6-25/+65
more conservatively. 2017-05-04 Richard Biener <rguenther@suse.de> * tree.c (array_at_struct_end_p): Handle arrays at struct end with flexarrays more conservatively. Refactor and treat arrays of arrays or aggregates more strict. Fix VIEW_CONVERT_EXPR handling. Remove allow_compref argument. * tree.c (array_at_struct_end_p): Adjust prototype. * emit-rtl.c (set_mem_attributes_minus_bitpos): Adjust. * gimple-fold.c (get_range_strlen): Likewise. * tree-chkp.c (chkp_may_narrow_to_field): Likewise. From-SVN: r247581
2017-05-04Replace absolute line numbers in g++.dg/warnTom de Vries6-36/+59
2017-05-04 Tom de Vries <tom@codesourcery.com> PR testsuite/80557 * g++.dg/warn/Wstrict-aliasing-float-ref-int-obj.C: Replace absolute line numbers. * g++.dg/warn/miss-format-1.C: Same. * g++.dg/warn/overflow-warn-1.C: Same. * g++.dg/warn/overflow-warn-3.C: Same. * g++.dg/warn/overflow-warn-4.C: Same. From-SVN: r247580
2017-05-04Replace absolute line numbers in gcc.target/i386Tom de Vries6-14/+18
2017-05-04 Tom de Vries <tom@codesourcery.com> PR testsuite/80557 * gcc.target/i386/pr57655.c: Replace absolute line numbers. * gcc.target/i386/pr68657.c: Same. * gcc.target/i386/pr69255-1.c: Same. * gcc.target/i386/pr69255-2.c: Same. * gcc.target/i386/pr69255-3.c: Same. From-SVN: r247579
2017-05-04re PR tree-optimization/31130 (VRP no longer derives range for division ↵Richard Biener8-579/+175
after negation) 2017-05-04 Richard Biener <rguenther@suse.de> PR tree-optimization/31130 * tree-vrp.c (needs_overflow_infinity): Remove as always returning false. (supports_overflow_infinity): Likewise. (is_negative_overflow_infinity): Likewise. (is_positive_overflow_infinity): Likewise. (is_overflow_infinity): Likewise. (stmt_overflow_infinity): Likewise. (overflow_infinity_range_p): Likewise. (usable_range_p): Remove as always returning true. (make_overflow_infinity): Remove. (negative_overflow_infinity): Likewise. (positive_overflow_infinity): Likewise. (avoid_overflow_infinity): Likewise. (set_value_range): Adjust accordingly. (set_value_range_to_nonnegative): Likewise, remove now unused overflow_infinity arg. (vrp_operand_equal_p): Adjust. (update_value_range): Likewise. (range_int_cst_singleton_p): Likewise. (operand_less_p): Likewise. (compare_values_warnv): Likewise. (extract_range_for_var_from_comparison_expr): Likewise. (vrp_int_const_binop): Likewise. (zero_nonzero_bits_from_vr): Likewise. (extract_range_from_multiplicative_op_1): Likewise. (extract_range_from_binary_expr_1): Likewise. (extract_range_from_unary_expr): Likewise. (extract_range_from_comparison): Likewise. (extract_range_basic): Likewise. (adjust_range_with_scev): Likewise. (compare_ranges): Likewise. (compare_range_with_value): Likewise. (dump_value_range): Likewise. (test_for_singularity): Likewise, remove strict_overflow_p parameter never used. (simplify_cond_using_ranges): Adjust. * gcc.dg/Wstrict-overflow-12.c: XFAIL. * gcc.dg/Wstrict-overflow-13.c: Likewise. * gcc.dg/Wstrict-overflow-21.c: Likewise. * gcc.dg/pr52904.c: Remove XFAIL. * gcc.dg/tree-ssa/vrp114.c: New testcase. From-SVN: r247578
2017-05-04Removed accidentally committed conflict marker.Pekka Jääskeläinen1-1/+0
From-SVN: r247577
2017-05-04Minor BRIG/HSAIL frontend updates and bug fixes:Pekka Jääskeläinen5-1/+42
* brig-builtins.def: Added a builtin for class_f64. * builtin-types.def: Added a builtin type needed by class_f64. * brigfrontend/brig-code-entry-handler.cc (brig_code_entry_handler::build_address_operand): Fix a bug with reg+offset addressing on 32b segments. In large mode, the offset is treated as 32bits unless it's global, readonly or kernarg address space. * rt/workitems.c: Removed a leftover comment. * rt/arithmetic.c (__hsail_class_f32, __hsail_class_f64): Fix the check for signaling/non-signalling NaN. Add class_f64 default implementation. From-SVN: r247576
2017-05-04Daily bump.GCC Administrator1-1/+1
From-SVN: r247575
2017-05-03* de.po: Update.Joseph Myers2-355/+365
From-SVN: r247570
2017-05-03invoke.texi: Note that -faligned-new is on by default for C++17.Jason Merrill1-0/+2
* doc/invoke.texi: Note that -faligned-new is on by default for C++17. From-SVN: r247564
2017-05-03timevar.def: Add TV_CONSTEXPR.Jason Merrill4-0/+12
* timevar.def: Add TV_CONSTEXPR. * constexpr.c (cxx_eval_outermost_constant_expr): Use TV_CONSTEXPR. From-SVN: r247563
2017-05-03Fix typo in common.optDavid Malcolm2-1/+5
gcc/ChangeLog: * common.opt (fdiagnostics-parseable-fixits): Fix typo. From-SVN: r247562
2017-05-03Remove ipa_update_after_lto_readMartin Jambor5-19/+8
2017-05-03 Martin Jambor <mjambor@suse.cz> * ipa-prop.c (ipa_update_after_lto_read): Removed. * ipa-prop.h (ipa_update_after_lto_read): Remove declaration. * ipa-cp.c (ipcp_propagate_stage): Do not call ipa_update_after_lto_read. * ipa-inline.c (ipa_inline): Likewise. From-SVN: r247559
2017-05-03Use call_summary in ipa-prop and ipa-cpMartin Jambor5-61/+95
2017-05-03 Martin Jambor <mjambor@suse.cz> * ipa-prop.h (ipa_edge_args): Make a class. Mark with for_user GTY tag. Added a default constructor and a destructor. (ipa_edge_args_sum_t): New class; (ipa_edge_args_sum): Declare. (ipa_edge_args_vector): Remove declaration. (IPA_EDGE_REF): Use ipa_edge_args_sum. (ipa_free_edge_args_substructures): Remove declaration. (ipa_check_create_edge_args): Use ipa_edge_args_sum. (ipa_edge_args_info_available_for_edge_p): Likewise. * ipa-prop.c (ipa_edge_args_vector): Removed. (edge_removal_hook_holder): Likewise. (edge_duplication_hook_holder): Likewise. (ipa_edge_args_sum): New variable. (ipa_propagate_indirect_call_infos): Test ipa_edge_args_sum instead of ipa_edge_args_vector. (ipa_free_edge_args_substructures): Likewise. (ipa_free_all_edge_args): Free ipa_edge_args_sum instead of ipa_edge_args_vector. (ipa_edge_removal_hook): Turned into method ipa_edge_args_sum_t::remove. (ipa_edge_duplication_hook): Turned into method ipa_edge_args_sum_t::duplicate. (ipa_register_cgraph_hooks): Create ipa_edge_args_sum instead of registering edge hooks. (ipa_unregister_cgraph_hooks): Do not unregister edge hooks. * ipa-inline-analysis.c (estimate_function_body_sizes): Test ipa_edge_args_sum instead of ipa_edge_args_vector. * ipa-profile.c (ipa_profile): Likewise. From-SVN: r247558
2017-05-03call_summary to keep info about cgraph_edgesMartin Jambor2-4/+219
2017-05-03 Martin Jambor <mjambor@suse.cz> * symbol-summary.h (function_summary): New method exists. (function_summary::symtab_removal): Deallocate through release. (call_summary): New class. (gt_ggc_mx): New overload. (gt_pch_nx): Likewise. (gt_pch_nx): Likewise. From-SVN: r247557
2017-05-03re PR tree-optimization/78496 (Missed opportunities for jump threading)Jeff Law4-6/+108
PR tree-optimization/78496 * tree-vrp.c (simplify_cond_using_ranges_1): Renamed from simplify_cond_using_ranges. Split off code to walk backwards through casts into ... (simplify_cond_using_ranges_2): New function. (simplify_stmt_using_ranges): Call simplify_cond_using_ranges_1. (execute_vrp): After identifying jump threads, call simplify_cond_using_ranges_2. PR tree-optimization/78496 * gcc.dg/tree-ssa/ssa-thread-15.c: New test. From-SVN: r247556
2017-05-03re PR ipa/80609 (crash_signal in reset_inline_summary on ia64 bootstrap)Jan Hubicka2-1/+19
PR bootstrap/80609 * ipa-inline.h (inline_summary): Add ctor. (create_ggc): Do not use ggc_cleared_alloc. From-SVN: r247555
2017-05-03Support escaping special characters in specsJeff Downs3-17/+78
2017-05-03 Jeff Downs <heydowns@somuchpressure.net> Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> * gcc.c (handle_braces): Support escaping in switch matching text. * doc/invoke.texi (Spec Files): Document it. Remove superfluous @code markup in items. Co-Authored-By: Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> From-SVN: r247552
2017-05-03pr79671_0.C (foo): Fix asm constraints.Uros Bizjak2-2/+7
* g++.dg/lto/pr79671_0.C (foo): Fix asm constraints. From-SVN: r247550
2017-05-03New fix-it printerDavid Malcolm2-38/+550
The existing fix-it printer can lead to difficult-to-read output when fix-it hints are near each other. For example, in a recent patch to add fix-it hints to the C++ frontend's -Wold-style-cast, e.g. for: foo *f = (foo *)ptr->field; ^~~~~ the fix-it hints: replace the open paren with "const_cast<" replace the close paren with "> (" insert ")" after the "ptr->field" would be printed in this odd-looking way: foo *f = (foo *)ptr->field; ^~~~~ - const_cast< - > ( ) class rich_location consolidates adjacent fix-it hints, which helps somewhat, but the underlying problem is that the existing printer simply walks through the list of hints printing them, starting newlines as necessary. This patch reimplements fix-it printing by introducing a planning stage: a new class line_corrections "plans" how to print the fix-it hints affecting a line, generating a vec of "correction" instances. Hints that are sufficiently close to each other are consolidated at this stage. This leads to the much more reasonable output for the above case: foo *f = (foo *)ptr->field; ^~~~~ ----------------- const_cast<foo *> (ptr->field); where the 3 hints are consolidated into one "correction" at printing. gcc/ChangeLog: * diagnostic-show-locus.c (struct column_range): New struct. (get_affected_columns): New function. (get_printed_columns): New function. (struct correction): New struct. (correction::ensure_capacity): New function. (correction::ensure_terminated): New function. (struct line_corrections): New struct. (line_corrections::~line_corrections): New dtor. (line_corrections::add_hint): New function. (layout::print_trailing_fixits): Reimplement in terms of the new classes. (selftest::test_overlapped_fixit_printing): New function. (selftest::diagnostic_show_locus_c_tests): Call it. From-SVN: r247548
2017-05-03cp-tree.h (enum cp_tree_index, [...]): Move earlier, along with #defines, to ↵Nathan Sidwell2-176/+181
before name-lookup include. * cp-tree.h (enum cp_tree_index, cp_global_trees): Move earlier, along with #defines, to before name-lookup include. From-SVN: r247547
2017-05-03Canonicalize canonical type hashingNathan Sidwell5-100/+109
Canonicalize canonical type hashing gcc/ * tree.h (type_hash_canon_hash): Declare. * tree.c (type_hash_list, attribute_hash_list): Move into type_hash_canon_hash. (build_type_attribute_qual_variant): Break out hash code calc into type_hash_canon_hash. (type_hash_canon_hash): New. Generic type hash computation. (build_range_type_1, build_array_type_1, build_function_type) build_method_type_directly, build_offset_type, build_complex_type, make_vector_type): Call it. gcc/c-family/ * c-common.c (complete_array_type): Use type_hash_canon. (--This line, and those below, will be ignored-- M gcc/tree.c M gcc/tree.h M gcc/c-family/ChangeLog M gcc/c-family/c-common.c M gcc/ChangeLog From-SVN: r247546
2017-05-03tree-vect-data-refs.c (vect_enhance_data_refs_alignment): When all DRs have ↵Richard Biener4-7/+27
unknown misaligned do not always peel when... 2017-05-03 Richard Biener <rguenther@suse.de> * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): When all DRs have unknown misaligned do not always peel when there is a store but apply the same costing model as if there were only loads. * gcc.dg/vect/costmodel/x86_64/costmodel-alignpeel.c: New testcase. From-SVN: r247544
2017-05-03revert: re PR tree-optimization/80492 (Wrong code when unrolling a loop with ↵Richard Biener2-5/+9
inline asm and local regs) 2017-05-03 Richard Biener <rguenther@suse.de> Revert PR tree-optimization/80492 * tree-ssa-alias.c (decl_refs_may_alias_p): Handle compare_base_decls returning dont-know properly. From-SVN: r247543
2017-05-03[ARM] Set mode for success result of atomic compare and swapThomas Preud'homme4-14/+47
2017-05-03 Thomas Preud'homme <thomas.preudhomme@arm.com> gcc/ * config/arm/iterators.md (CCSI): New mode iterator. (arch): New mode attribute. * config/arm/sync.md (atomic_compare_and_swap<mode>_1): Rename into ... (atomic_compare_and_swap<CCSI:arch><NARROW:mode>_1): This and ... (atomic_compare_and_swap<CCSI:arch><SIDI:mode>_1): This. Use CCSI code iterator for success result mode. * config/arm/arm.c (arm_expand_compare_and_swap): Adapt code to use the corresponding new insn generators. From-SVN: r247542
2017-05-03Revert r247509 2017-05-02 Bin Cheng <bin.cheng@arm.com>Bin Cheng2-8/+6
Revert r247509 2017-05-02 Bin Cheng <bin.cheng@arm.com> * rtlanal.c (rtx_cost): Handle TRUNCATE between tieable modes. From-SVN: r247541
2017-05-03Wrap tree-data-ref.h macro argumentsRichard Sandiford2-13/+22
gcc/ 2016-05-03 Richard Sandiford <richard.sandiford@linaro.org> * tree-data-ref.h (SUB_CONFLICTS_IN_A): Wrap SUB argument in brackets. (SUB_CONFLICTS_IN_B, SUB_LAST_CONFLICT, SUB_DISTANCE): Likewise. (DDR_A): Wrap DDR argument in brackets. (DDR_B, DDR_AFFINE_P, DDR_ARE_DEPENDENT, DDR_SUBSCRIPTS): Likewise. (DDR_LOOP_NEST, DDR_INNER_LOOP, DDR_SELF_REFERENCE): Likewise. (DDR_REVERSED_P): Likewise. From-SVN: r247539
2017-05-03re PR tree-optimization/79472 (x86-64: Switch table generation fails if ↵Jakub Jelinek8-71/+716
default case has different code) PR tree-optimization/79472 * tree-switch-conversion.c (struct switch_conv_info): Add contiguous_range and default_case_nonstandard fields. (collect_switch_conv_info): Compute contiguous_range and default_case_nonstandard fields, don't clear final_bb if contiguous_range and only the default case doesn't have the required structure. (check_all_empty_except_final): Set default_case_nonstandard instead of failing if contiguous_range and the default case doesn't have empty block. (check_final_bb): Add SWTCH argument, don't fail if contiguous_range and only the default case doesn't have the required constants. Skip virtual phis. (gather_default_values): Skip virtual phis. Allow non-NULL CASE_LOW if default_case_nonstandard. (build_constructors): Build constant 1 just once. Assert that default values aren't inserted in between cases if contiguous_range. Skip virtual phis. (build_arrays): Skip virtual phis. (prune_bbs): Add DEFAULT_BB argument, don't remove that bb. (fix_phi_nodes): Don't add e2f phi arg if default_case_nonstandard. Handle virtual phis. (gen_inbound_check): Handle default_case_nonstandard case. (process_switch): Adjust check_final_bb caller. Call gather_default_values with the first non-default case instead of default case if default_case_nonstandard. * gcc.dg/tree-ssa/vrp40.c: Add -fno-tree-switch-conversion to dg-options. * gcc.dg/tree-ssa/vrp113.c: New test. * gcc.dg/tree-ssa/cswtch-3.c: New test. * gcc.dg/tree-ssa/cswtch-4.c: New test. * gcc.dg/tree-ssa/cswtch-5.c: New test. From-SVN: r247538
2017-05-03Replace absolute line numbers in c-c++-commonTom de Vries14-39/+51
2017-05-03 Tom de Vries <tom@codesourcery.com> PR testsuite/80557 * c-c++-common/Wshift-negative-value-1.c: Replace absolute line numbers. * c-c++-common/Wshift-negative-value-2.c: Same. * c-c++-common/Wshift-negative-value-3.c: Same. * c-c++-common/Wshift-negative-value-4.c: Same. * c-c++-common/cilk-plus/AN/pr57541.c: Same. * c-c++-common/cpp/pr60400.c: Same. * c-c++-common/fmax-errors.c: Same. * c-c++-common/goacc/data-2.c: Same. * c-c++-common/goacc/host_data-2.c: Same. * c-c++-common/gomp/simd4.c: Same. * c-c++-common/pr28656.c: Same. * c-c++-common/pr43395.c: Same. * c-c++-common/torture/pr57945.c: Same. From-SVN: r247537
2017-05-03Add quotes to numerical comment arg of dg directiveTom de Vries4-7/+14
2017-05-03 Tom de Vries <tom@codesourcery.com> * c-c++-common/goacc/data-default-1.c: Add quotes to numerical comment arg of dg directive. * c-c++-common/goacc/routine-3.c: Same. * c-c++-common/goacc/routine-4.c: Same. From-SVN: r247536
2017-05-03Daily bump.GCC Administrator1-1/+1
From-SVN: r247533
2017-05-02ggc-page.c (move_ptes_to_front): Replace unsigned >0 with i-- check.Nathan Sidwell2-5/+8
* ggc-page.c (move_ptes_to_front): Replace unsigned >0 with i-- check. Fix formatting. From-SVN: r247529
2017-05-02ipa-inline-analysis.c (estimate_node_size_and_time): Allow roundoff errors ↵Jan Hubicka2-1/+19
when comparing specialized and unspecialized times. * ipa-inline-analysis.c (estimate_node_size_and_time): Allow roundoff errors when comparing specialized and unspecialized times. From-SVN: r247528
2017-05-02pt.c (is_auto_or_concept): Remove.Paolo Carlini4-34/+11
2017-05-02 Paolo Carlini <paolo.carlini@oracle.com> * pt.c (is_auto_or_concept): Remove. (type_uses_auto_or_concept): Remove, unused. (find_parameter_packs_r, extract_autos_r, is_auto_r): Adjust. * parser.c (tree_type_is_auto_or_concept): Remove, unused. * cp-tree.h (is_auto_or_concept): Remove. From-SVN: r247526