- Aug 30, 2017
-
-
Richard Sandiford authored
This patch splits some cases out of scompare_loc_descriptor and emit_store_flag, which helps with the upcoming machmode series. 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org> gcc/ * dwarf2out.c (scompare_loc_descriptor_wide) (scompare_loc_descriptor_narrow): New functions, split out from... (scompare_loc_descriptor): ...here. * expmed.c (emit_store_flag_int): New function, split out from... (emit_store_flag): ...here. From-SVN: r251451
-
Richard Biener authored
2017-08-30 Richard Biener <rguenther@suse.de> * dwarf2out.c (dwarf2out_finish): Remove setting AT_pubnames. (dwarf2out_early_finish): Move setting of AT_pubnames from early debug output to early finish. From-SVN: r251450
-
Jozef Lawrynowicz authored
* gcc/config/msp430/msp430.h: Pass -mcode/data-region to the linker and -mdata-region to the assembler. From-SVN: r251449
-
Richard Biener authored
2017-08-30 Richard Biener <rguenther@suse.de> * dwarf2out.c (add_dwarf_attr): Check we don't add duplicate attributes. (gen_subprogram_die): Add DW_AT_object_pointer only early. (dwarf2out_early_global_decl): Only generate a DIE for the abstract origin if it doesn't already exist or is a declaration DIE. (resolve_addr): Do not add the linkage name twice when generating a stub DIE for the DW_TAG_GNU_call_site target. * g++.dg/pr78112-2.C: Do not expect duplicate DW_AT_object_pointer. From-SVN: r251448
-
Richard Sandiford authored
2017-08-30 Richard Sandiford <richard.sandiford@linaro.org> gcc/ * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Use machine_mode rather than int for arg1_mode. From-SVN: r251447
-
GCC Administrator authored
From-SVN: r251444
-
- Aug 29, 2017
-
-
Ian Lance Taylor authored
Reviewed-on: https://go-review.googlesource.com/59913 From-SVN: r251440
-
Ian Lance Taylor authored
Reviewed-on: https://go-review.googlesource.com/59912 From-SVN: r251439
-
Jason Merrill authored
* semantics.c (finish_id_expression): Remove special dependent case. Avoid some later pieces when dependent. (finish_qualified_id_expr): Do normal BASELINK handling in a template. Always build a SCOPE_REF for a destructor BIT_NOT_EXPR. (parsing_default_capturing_generic_lambda_in_template): Remove. * parser.c (cp_parser_postfix_dot_deref_expression): Always give an error for types that will never be complete. * mangle.c (write_expression): Add sanity check. * tree.c (build_qualified_name): Add sanity check. (cp_walk_subtrees): Walk into the class context of a BASELINK. * lambda.c (add_capture): Improve diagnostic for generic lambda capture failure. * call.c (build_new_method_call_1): Print the right constructor name. From-SVN: r251438
-
Ian Lance Taylor authored
Reviewed-on: https://go-review.googlesource.com/59911 From-SVN: r251436
-
Ian Lance Taylor authored
Reviewed-on: https://go-review.googlesource.com/59910 From-SVN: r251435
-
Jason Merrill authored
From-SVN: r251434
-
Jason Merrill authored
* cp-tree.h (LAMBDA_FUNCTION_P): Check DECL_DECLARES_FUNCTION_P. * decl.c (start_preparsed_function): Call start_lambda_scope. (finish_function): Call finish_lambda_scope. * init.c (get_nsdmi): Call start/finish_lambda_scope. * lambda.c (start_lambda_scope): Only ignore VAR_DECL in a function. * parser.c (cp_parser_function_definition_after_declarator): Don't call start/finish_lambda_scope. * pt.c (retrieve_specialization): Ignore lambda functions in templates. (find_parameter_packs_r): Ignore capture proxies. Look into lambdas. (check_for_bare_parameter_packs): Allow bare packs in lambdas. (tsubst_default_argument): Call start/finish_lambda_scope. (tsubst_function_decl): Handle lambda functions differently. (tsubst_template_decl): Likewise. (tsubst_expr) [DECL_EXPR]: Skip closure declarations and capture proxies. (tsubst_lambda_expr): Create a new closure rather than instantiate the one from the template. (tsubst_copy_and_build): Don't register a specialization of a pack. (regenerate_decl_from_template): Call start/finish_lambda_scope. (instantiate_decl): Remove special lambda function handling. * semantics.c (process_outer_var_ref): Remove special generic lambda handling. Don't implicitly capture in a lambda in a template. Look for an existing proxy. * class.c (current_nonlambda_class_type): Use decl_type_context. From-SVN: r251433
-
Michael Meissner authored
re PR target/82015 (PowerPC should check if 2nd argument to __builtin_unpackv1ti and similar functions is 0 or 1) [gcc] 2017-08-29 Michael Meissner <meissner@linux.vnet.ibm.com> PR target/82015 * config/rs6000/rs6000.c (rs6000_expand_binop_builtin): Insure that the second argument of the built-in functions to unpack 128-bit scalar types to 64-bit values is 0 or 1. Change to use a switch statement instead a lot of if statements. * config/rs6000/rs6000.md (unpack<mode>, FMOVE128_VSX iterator): Allow 64-bit values to be in Altivec registers as well as traditional floating point registers. (pack<mode>, FMOVE128_VSX iterator): Likewise. [gcc/testsuite] 2017-08-29 Michael Meissner <meissner@linux.vnet.ibm.com> PR target/82015 * gcc.target/powerpc/pr82015.c: New test. From-SVN: r251432
-
Jason Merrill authored
* g++.dg/cpp1y/lambda-generic-const5.C: New. From-SVN: r251431
-
Jason Merrill authored
* cp-tree.h (LAMBDA_EXPR_CLOSURE): Use TREE_TYPE. (LAMBDA_EXPR_RETURN_TYPE): Remove. (struct tree_lambda_expr): Remove closure and return_type fields. * lambda.c (build_lambda_expr): Don't set LAMBDA_EXPR_RETURN_TYPE. * pt.c (tsubst_copy_and_build): Likewise. * parser.c (cp_parser_lambda_declarator_opt): Track return type. (cp_parser_lambda_body): Adjust unspecified return type check. * ptree.c (cxx_print_lambda_node): Don't print closure or return type. From-SVN: r251430
-
Jason Merrill authored
* decl.c (check_for_uninitialized_const_var): Check is_instantiation_of_constexpr. * constexpr.c (ensure_literal_type_for_constexpr_object): Check is_instantiation_of_constexpr. (potential_constant_expression_1): Check var_in_maybe_constexpr_fn. From-SVN: r251429
-
Jason Merrill authored
* lambda.c (build_lambda_object): Check for error_mark_node. * pt.c (make_pack_expansion): Set PACK_EXPANSION_LOCAL_P on the type pack as well. (tsubst_decl) [FUNCTION_DECL]: Set DECL_CONTEXT on the parameters. (tsubst) [TEMPLATE_PARM_INDEX]: Check for error_mark_node. From-SVN: r251428
-
Jason Merrill authored
* call.c (convert_like_real): Call build_user_type_conversion_1 if cand is null. (add_conv_candidate): Build a ck_user conversion with no candidate. From-SVN: r251427
-
Jason Merrill authored
* method.c (synthesized_method_base_walk): Replace an inherited template with its specialization. (synthesized_method_walk): Make inheriting_ctor a pointer. (maybe_explain_implicit_delete, explain_implicit_non_constexpr) (deduce_inheriting_ctor, implicitly_declare_fn): Adjust. From-SVN: r251426
-
Jason Merrill authored
* pt.c (build_deduction_guide): Set DECL_ABSTRACT_ORIGIN on the template, not the function. (template_guide_p): Adjust. From-SVN: r251425
-
Jason Merrill authored
* cp-tree.h (enum lss_policy): New. (local_specialization_stack): Add policy parameter to default ctor. * pt.c (local_specialization_stack): Copy local_specializations if lss_copy. From-SVN: r251424
-
Jason Merrill authored
* constexpr.c (potential_constant_expression_1): Add "now" parm. (is_constant_expression, require_constant_expression): New. (is_static_init_expression, is_nondependent_constant_expression) (is_nondependent_static_init_expression): Drop "potential". * except.c (build_must_not_throw_expr): Do type conversion on value-dependent argument. * pt.c, semantics.c, typeck2.c: Use variants without "potential". From-SVN: r251423
-
Jason Merrill authored
* init.c (get_nsdmi): Remember NSDMI instantiations. * parser.c (inject_this_parameter): Be more picky about current_class_ptr. * pt.c (tsubst_copy): Simplify 'this' handling. (tsubst_default_argument): Remember default argument instantiations. Take parameter number. (tsubst_default_arguments): Pass it. * call.c (convert_default_arg): Likewise. From-SVN: r251422
-
Jason Merrill authored
* call.c (build_over_call): Check convert_default_arg result for error_mark_node. * parser.c (cp_parser_late_parsing_default_args): Remember error_mark_node. From-SVN: r251421
-
Ian Lance Taylor authored
Reviewed-on: https://go-review.googlesource.com/57550 From-SVN: r251420
-
Uros Bizjak authored
* gcc.target/i386/*.c: Remove excess braces from target selectors. From-SVN: r251419
-
Alexander Monakov authored
* ira-costs.c (record_address_regs): Handle both operands of PLUS for MAX_REGS_PER_ADDRESS == 1. From-SVN: r251418
-
Uros Bizjak authored
* gcc.target/i386/20030926-1.c: Add dg-additional-options. * gcc.target/i386/abi-2.c: Ditto. * gcc.target/i386/interrupt-sibcall-2.c: Ditto. * gcc.target/i386/pr22076.c: Ditto. * gcc.target/i386/pr37216.c: Ditto. * gcc.target/i386/pr39431.c: Ditto. * gcc.target/i386/pr40906-1.c: Ditto. * gcc.target/i386/pr40906-2.c: Ditto. * gcc.target/i386/pr43766.c: Ditto. * gcc.target/i386/pr46226.c: Ditto. * gcc.target/i386/pr46470.c: Ditto. * gcc.target/i386/pr59929.c: Ditto. * gcc.target/i386/sse-10.c: Ditto. * gcc.target/i386/vararg-1.c: Ditto. * gcc.target/i386/vararg-1.c: Ditto. * gcc.target/i386/asm-6.c: Compile for fpic target only. * gcc.target/i386/pr44223.c: Ditto. * gcc.target/i386/bitfield1.c (dg-options): Remove target selector. * gcc.target/i386/bitfield2.c (dg-options): Ditto. * gcc.target/i386/pr67480.c (dg-options): Ditto. * gcc.target/i386/vect-cond-1.c (dg-options): Ditto. * gcc.target/i386/bittest.c (scan-assembler-times): Ditto. * gcc.target/i386/darwin-fpmath.c (dg-do): Simplify target selector. * gcc.target/i386/mvc9.c: Compile for lto target only. * gcc.target/i386/pr45234.c: Compile for ia32 target only. * gcc.target/i386/pr49866.c: Compile for lp64 target only. * gcc.target/i386/pr57091.c: Ditto. * gcc.target/i386/pr61599-2.c: Ditto. From-SVN: r251417
-
Uros Bizjak authored
* config/i386/i386.opt (flag_fentry): Do not init to -1. * config/i386/i386.c (ix86_option_override_internal): Simplify setting of opts->x_flag_entry. From-SVN: r251416
-
Bill Schmidt authored
[gcc] 2017-08-29 Bill Schmidt <wschmidt@linux.vnet.ibm.com> Jakub Jelinek <jakub@redhat.com> Richard Biener <rguenther@suse.de> PR tree-optimization/81503 * gimple-ssa-strength-reduction.c (replace_mult_candidate): Ensure folded constant fits in the target type; reorder tests for clarity. [gcc/testsuite] 2017-08-29 Bill Schmidt <wschmidt@linux.vnet.ibm.com> PR tree-optimization/81503 * gcc.c-torture/execute/pr81503.c: New file. Co-Authored-By:
Jakub Jelinek <jakub@redhat.com> Co-Authored-By:
Richard Biener <rguenther@suse.de> From-SVN: r251414
-
Martin Liska authored
2017-08-29 Martin Liska <mliska@suse.cz> * passes.def: Include pass_lower_switch. * stmt.c (dump_case_nodes): Remove and move to tree-switch-conversion. (case_values_threshold): Likewise. (expand_switch_as_decision_tree_p): Likewise. (emit_case_decision_tree): Likewise. (expand_case): Likewise. (balance_case_nodes): Likewise. (node_has_low_bound): Likewise. (node_has_high_bound): Likewise. (node_is_bounded): Likewise. (emit_case_nodes): Likewise. (struct simple_case_node): New struct. (add_case_node): Remove. (emit_case_dispatch_table): Use vector instead of case_list. (reset_out_edges_aux): Remove. (compute_cases_per_edge): Likewise. (expand_case): Build list of simple_case_node. (expand_sjlj_dispatch_table): Use it. * tree-switch-conversion.c (struct case_node): Moved from stmt.c and adjusted. (emit_case_nodes): Likewise. (node_has_low_bound): Likewise. (node_has_high_bound): Likewise. (node_is_bounded): Likewise. (case_values_threshold): Likewise. (reset_out_edges_aux): Likewise. (compute_cases_per_edge): Likewise. (add_case_node): Likewise. (dump_case_nodes): Likewise. (balance_case_nodes): Likewise. (expand_switch_as_decision_tree_p): Likewise. (emit_jump): Likewise. (emit_case_decision_tree): Likewise. (try_switch_expansion): Likewise. (do_jump_if_equal): Likewise. (emit_cmp_and_jump_insns): Likewise. (fix_phi_operands_for_edge): New function. (record_phi_operand_mapping): Likewise. (class pass_lower_switch): New pass. (pass_lower_switch::execute): New function. (make_pass_lower_switch): Likewise. (conditional_probability): * timevar.def: Add TV_TREE_SWITCH_LOWERING. * tree-pass.h: Add make_pass_lower_switch. 2017-08-29 Martin Liska <mliska@suse.cz> * gcc.dg/tree-prof/update-loopch.c: Scan patterns in switchlower. * gcc.dg/tree-ssa/vrp104.c: Likewise. From-SVN: r251412
-
Jozef Lawrynowicz authored
PR target/80993 * gcc/config/msp430/msp430.c (msp430_attr): Mark interrupt handlers as used. From-SVN: r251410
-
Richard Biener authored
dwarf2out.c (add_dwarf_attr): When checking is enabled verify we do not add a DW_AT_inline attribute twice. 2017-08-29 Richard Biener <rguenther@suse.de> * dwarf2out.c (add_dwarf_attr): When checking is enabled verify we do not add a DW_AT_inline attribute twice. (gen_subprogram_die): Remove code setting DW_AT_inline on DECL_ABSTRACT_P nodes. From-SVN: r251409
-
Martin Liska authored
2017-08-29 Martin Liska <mliska@suse.cz> PR other/39851 * gcc-interface/trans.c (Pragma_to_gnu): Set argument to NULL. From-SVN: r251406
-
Richard Sandiford authored
This patch sets the nothrow flag for various calls to internal functions that are not inherently NOTHROW (and so can't be declared that way in internal-fn.def) but that are used in contexts that can guarantee NOTHROWness. 2017-08-29 Richard Sandiford <richard.sandiford@linaro.org> gcc/ * gimplify.c (gimplify_call_expr): Copy the nothrow flag to calls to internal functions. (gimplify_modify_expr): Likewise. * tree-call-cdce.c (use_internal_fn): Likewise. * tree-ssa-math-opts.c (pass_cse_reciprocals::execute): Likewise. (convert_to_divmod): Set the nothrow flag. * tree-if-conv.c (predicate_mem_writes): Likewise. * tree-vect-stmts.c (vectorizable_mask_load_store): Likewise. (vectorizable_call): Likewise. (vectorizable_store): Likewise. (vectorizable_load): Likewise. * tree-vect-patterns.c (vect_recog_pow_pattern): Likewise. (vect_recog_mask_conversion_pattern): Likewise. From-SVN: r251401
-
Martin Liska authored
2017-08-29 Martin Liska <mliska@suse.cz> PR other/39851 * gcc.c (driver_handle_option): Add new argument. * opts-common.c (handle_option): Pass target_option_override_hook. * opts-global.c (lang_handle_option): Add new option. (set_default_handlers): Add new argument. (decode_options): Likewise. * opts.c (target_handle_option): Likewise. (common_handle_option): Call target_option_override_hook. * opts.h (struct cl_option_handler_func): Add hook for target option override. (struct cl_option_handlers): Likewise. (set_default_handlers): Add new argument. (decode_options): Likewise. (common_handle_option): Likewise. (target_handle_option): Likewise. * toplev.c (toplev::main): Pass targetm.target_option.override hook. 2017-08-29 Martin Liska <mliska@suse.cz> PR other/39851 * c-common.c (parse_optimize_options): Add argument to function call. * c-pragma.c (handle_pragma_diagnostic): Likewise. From-SVN: r251400
-
Richard Biener authored
2017-08-29 Richard Biener <rguenther@suse.de> Dominik Infuehr <dominik.infuehr@theobroma-systems.com> * tree-vect-slp.c (vect_bb_slp_scalar_cost): Properly confine life to the active subtree. * gcc.dg/vect/costmodel/x86_64/costmodel-vect-slp.c: New testcase. Co-Authored-By:
Dominik Infuehr <dominik.infuehr@theobroma-systems.com> From-SVN: r251398
-
Jeff Law authored
* tree-ssa-dom.c (edge_info::record_simple_equiv): Call derive_equivalences. (derive_equivalences_from_bit_ior, record_temporary_equivalences): Code moved into.... (edge_info::derive_equivalences): New private member function * gcc.dg/torture/pr57214.c: Fix type of loop counter. * gcc.dg/tree-ssa/ssa-sink-16.c: Disable DOM. * gcc.dg/tree-ssa/ssa-dom-thread-11.c: New test. * gcc.dg/tree-ssa/ssa-dom-thread-12.c: New test. * gcc.dg/tree-ssa/ssa-dom-thread-13.c: New test. * gcc.dg/tree-ssa/ssa-dom-thread-14.c: New test. * gcc.dg/tree-ssa/ssa-dom-thread-15.c: New test. * gcc.dg/tree-ssa/ssa-dom-thread-16.c: New test. * gcc.dg/tree-ssa/ssa-dom-thread-17.c: New test. From-SVN: r251397
-
Jeff Law authored
* tree-ssa-dom.c (class edge_info): Changed from a struct to a class. Add ctor/dtor, methods and data members. (edge_info::edge_info): Renamed from allocate_edge_info. Initialize additional members. (edge_info::~edge_info): New. (free_dom_edge_info): Delete the edge info. (record_edge_info): Use new class & associated member functions. Tighten forms for testing for edge equivalences. (record_temporary_equivalences): Iterate over the simple equivalences rather than assuming there's only one per edge. (cprop_into_successor_phis): Iterate over the simple equivalences rather than assuming there's only one per edge. (optimize_stmt): Use operand_equal_p rather than pointer equality for mini-DSE code. From-SVN: r251396
-