jiwang [Fri, 7 Aug 2015 13:26:23 +0000 (13:26 +0000)]
[AArch64] Check branch types for noplt testcases
2015-08-07 Jiong Wang <jiong.wang@arm.com>
gcc/testsuite/
* gcc.target/aarch64/noplt_1.c: Check branch type instead of relocation
modifers.
* gcc.target/aarch64/noplt_2.c: Likewise.
* gcc.target/aarch64/noplt_3.c: Likewise.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@226721
138bc75d-0d04-0410-961f-
82ee72b054a4
uros [Fri, 7 Aug 2015 12:12:41 +0000 (12:12 +0000)]
* Makefile.in (.INTERMEDIATE): Add gpl.pod.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@226720
138bc75d-0d04-0410-961f-
82ee72b054a4
ian [Fri, 7 Aug 2015 10:10:00 +0000 (10:10 +0000)]
libgo/testsuite: don't call kill without args
If the timeout subshell has no child processes,
the "xargs | kill" will fail. Ensure there is
some input for kill before calling it.
Reviewed-on: https://go-review.googlesource.com/13295
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@226719
138bc75d-0d04-0410-961f-
82ee72b054a4
jason [Fri, 7 Aug 2015 08:41:33 +0000 (08:41 +0000)]
ville
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@226716
138bc75d-0d04-0410-961f-
82ee72b054a4
kkojima [Fri, 7 Aug 2015 08:11:45 +0000 (08:11 +0000)]
* config/sh/sh.c (sh_recog_treg_set_expr): Return false during
expand phase to avoid codegen differences with -g.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@226715
138bc75d-0d04-0410-961f-
82ee72b054a4
uros [Fri, 7 Aug 2015 06:38:07 +0000 (06:38 +0000)]
* doc/texi2pod.pl: Escape braces in regexp involving @strong{...}.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@226714
138bc75d-0d04-0410-961f-
82ee72b054a4
jason [Fri, 7 Aug 2015 05:44:49 +0000 (05:44 +0000)]
Add C++ Concepts TS support.
gcc/c-family/
* c-common.c (c_common_reswords): Add __is_same_as, concept, requires.
* c-common.h (enum rid): Add RID_IS_SAME_AS, RID_CONCEPT, RID_REQUIRES.
(D_CXX_CONCEPTS, D_CXX_CONCEPTS_FLAGS): New.
* c-cppbuiltin.c (c_cpp_builtins): Define __cpp_concepts.
* c-opts.c (set_std_cxx1z): Set flag_concepts.
* c.opt (fconcepts): New.
gcc/cp/
* constraint.cc, logic.cc: New files.
* Make-lang.in (CXX_AND_OBJCXX_OBJS): Add constraint.o and logic.o.
(c++.tags): Also process .cc files.
* call.c (enum rejection_reason_code): Add rr_constraint_failure.
(print_z_candidate): Handle it.
(constraint_failure): New.
(add_function_candidate): Check constraints.
(build_new_function_call): Handle evaluating concepts.
(joust): Check more_constrained.
* class.c (add_method): Check equivalently_constrained.
(build_clone): Copy constraints.
(currently_open_class): Return tree.
(resolve_address_of_overloaded_function): Check constraints.
* constexpr.c (cxx_eval_constant_expression): Handle REQUIRES_EXPR.
(potential_constant_expression_1): Likewise.
* cp-objcp-common.c (cp_tree_size): Handle CONSTRAINT_INFO.
(cp_common_init_ts): Handle WILDCARD_DECL and REQUIRES_EXPR.
* cp-tree.def: Add CONSTRAINT_INFO, WILDCARD_DECL, REQUIRES_EXPR,
SIMPLE_REQ, TYPE_REQ, COMPOUND_REQ, NESTED_REQ, PRED_CONSTR,
EXPR_CONSTR, TYPE_CONSTR, ICONV_CONSTR, DEDUCT_CONSTR,
EXCEPT_CONSTR, PARM_CONSTR, CONJ_CONSTR, DISJ_CONSTR.
* cp-tree.h (struct tree_constraint_info, check_nonnull)
(check_constraint_info, CI_TEMPLATE_REQS, CI_DECLARATOR_REQS)
(CI_ASSOCIATED_CONSTRAINTS, CI_NORMALIZED_CONSTRAINTS)
(CI_ASSUMPTIONS, TEMPLATE_PARMS_CONSTRAINTS)
(TEMPLATE_PARM_CONSTRAINTS, COMPOUND_REQ_NOEXCEPT_P)
(PLACEHOLDER_TYPE_CONSTRAINTS, PRED_CONSTR_EXPR, EXPR_CONSTR_EXPR)
(TYPE_CONSTR_TYPE, ICONV_CONSTR_EXPR, ICONV_CONSTR_TYPE)
(DEDUCT_CONSTR_EXPR, DEDUCT_CONSTR_PATTERN)
(DEDUCT_CONSTR_PLACEHOLDER, EXCEPT_CONSTR_EXPR, PARM_CONSTR_PARMS)
(PARM_CONSTR_OPERAND, CONSTRAINT_VAR_P, CONSTRAINED_PARM_CONCEPT)
(CONSTRAINED_PARM_EXTRA_ARGS, CONSTRAINED_PARM_PROTOTYPE)
(DECL_DECLARED_CONCEPT_P, WILDCARD_PACK_P, struct cp_unevaluated)
(struct local_specialization_stack, enum auto_deduction_context)
(variable_concept_p, concept_template_p)
(struct deferring_access_check_sentinel): New.
(enum cp_tree_node_structure_enum): Add TS_CP_CONSTRAINT_INFO.
(union lang_tree_node): Add constraint_info field.
(struct lang_decl_base): Add concept_p flag.
(enum cp_decl_spec): Add ds_concept.
(struct cp_declarator): Add requires_clause.
* cxx-pretty-print.c (cxx_pretty_printer::primary_expression)
(cxx_pretty_printer::expression): Handle REQUIRES_EXPR,
TRAIT_EXPR, *_CONSTR.
(pp_cxx_parameter_declaration_clause): Accept a chain of
PARM_DECLs.
(cxx_pretty_printer::declarator): Print requires-clause.
(pp_cxx_template_declaration): Likewise.
(pp_cxx_trait_expression): Handle CPTK_IS_SAME_AS.
(pp_cxx_requires_clause, pp_cxx_requirement)
(pp_cxx_requirement_list, pp_cxx_requirement_body)
(pp_cxx_requires_expr, pp_cxx_simple_requirement)
(pp_cxx_type_requirement, pp_cxx_compound_requirement)
(pp_cxx_nested_requirement, pp_cxx_predicate_constraint)
(pp_cxx_expression_constraint, pp_cxx_type_constraint)
(pp_cxx_implicit_conversion_constraint)
(pp_cxx_argument_deduction_constraint)
(pp_cxx_exception_constraint, pp_cxx_parameterized_constraint)
(pp_cxx_conjunction, pp_cxx_disjunction, pp_cxx_constraint): New.
* cxx-pretty-print.h: Declare them.
* decl.c (decls_match): Compare constraints.
(duplicate_decls): Likewise. Remove constraints before freeing.
(cxx_init_decl_processing): Call init_constraint_processing.
(cp_finish_decl): Diagnose concept without initializer.
(grokfndecl, grokvardecl): Handle concepts and constraints.
(grokdeclarator): Handle concept, requires-clause.
(grokparms): No longer static.
(xref_tag_1): Check constraints.
(finish_function): Call check_function_concept.
(cp_tree_node_structure): Handle CONSTRAINT_INFO.
(check_concept_refinement, is_concept_var, check_concept_fn): New.
* decl2.c (check_classfn): Compare constraints.
(mark_used): Don't instantiate concepts.
* error.c (dump_template_decl): Print constraints.
(dump_function_decl): Likewise.
(dump_expr): Handle REQUIRES_EXPR, *_REQ, *_CONSTR.
* lex.c (init_reswords): Set D_CXX_CONCEPTS.
* method.c (implicitly_declare_fn): Copy constraints from
inherited ctor.
* parser.h (struct cp_parser): Add in_result_type_constraint_p and
prevent_constrained_type_specifiers fields.
* parser.c (make_call_declarator): Add requires_clause parm.
(cp_parser_new): Clear prevent_constrained_type_specifiers.
(cp_parser_primary_expression): Handle RID_IS_SAME_AS, RID_REQUIRES.
(cp_parser_postfix_expression): Set prevent_constrained_type_specifiers.
(cp_parser_trait_expr): Handle RID_IS_SAME_AS.
(cp_parser_declaration): Handle concept introduction.
(cp_parser_member_declaration): Likewise.
(cp_parser_template_parameter): Handle constrained parameter.
(cp_parser_type_parameter): Handle constraints.
(cp_parser_decl_specifier_seq): Handle RID_CONCEPT.
(cp_parser_template_id): Handle partial concept id.
(cp_parser_type_name): Add overload that takes typename_keyword_p.
Handle constrained parameter.
(cp_parser_nonclass_name): Handle concept names.
(cp_parser_alias_declaration): Handle constraints.
(cp_parser_late_return_type_opt): Also handle requires-clause.
(cp_parser_type_id_1): Handle deduction constraint.
(cp_parser_parameter_declaration): Handle constrained parameters.
(cp_parser_class_specifier_1): Handle constraints.
(cp_parser_template_declaration_after_parameters): Split out from
cp_parser_template_declaration_after_export.
(cp_parser_single_declaration): Handle constraints.
(synthesize_implicit_template_parm): Handle constraints.
(cp_parser_maybe_concept_name, cp_parser_maybe_partial_concept_id)
(cp_parser_introduction_list, get_id_declarator)
(get_unqualified_id, is_constrained_parameter)
(cp_parser_check_constrained_type_parm)
(cp_parser_constrained_type_template_parm)
(cp_parser_constrained_template_template_parm)
(constrained_non_type_template_parm, finish_constrained_parameter)
(declares_constrained_type_template_parameter)
(declares_constrained_template_template_parameter)
(check_type_concept, cp_parser_maybe_constrained_type_specifier)
(cp_parser_maybe_concept_name, cp_parser_maybe_partial_concept_id)
(cp_parser_requires_clause, cp_parser_requires_clause_opt)
(cp_parser_requires_expression)
(cp_parser_requirement_parameter_list, cp_parser_requirement_body)
(cp_parser_requirement_list, cp_parser_requirement)
(cp_parser_simple_requirement, cp_parser_type_requirement)
(cp_parser_compound_requirement, cp_parser_nested_requirement)
(cp_parser_template_introduction)
(cp_parser_explicit_template_declaration)
(get_concept_from_constraint): New.
* pt.c (local_specialization_stack): Implement.
(maybe_new_partial_specialization): New.
(maybe_process_partial_specialization): Use it.
(retrieve_local_specialization, register_local_specialization)
(template_parm_to_arg, build_template_decl, extract_fnparm_pack)
(tsubst_expr): No longer static.
(spec_hasher::equal): Compare constraints.
(determine_specialization): Handle constraints.
(check_explicit_specialization): Handle concepts.
(process_template_parm): Handle constraints.
(end_template_parm_list): Add overload taking no arguments.
(process_partial_specialization): Handle concepts and constraints.
Register partial specializations of variable templates.
(redeclare_class_template): Handle constraints.
(convert_template_argument): Handle WILDCARD_DECL. Check
is_compatible_template_arg.
(coerce_template_parameter_pack): Handle wildcard packs.
(coerce_template_parms): DR 1430 also applies to concepts. Add
overloads taking fewer parameters.
(lookup_template_class_1): Handle constraints.
(lookup_template_variable): Concepts are always bool.
(finish_template_variable): Handle concepts and constraints.
(tsubst_friend_class): Handle constraints.
(gen_elem_of_pack_expansion_instantiation): Handle constraints.
(tsubst_pack_expansion): Handle local parameters.
(tsubst_decl) [FUNCTION_DECL]: Handle constraints.
(tsubst) [TEMPLATE_TYPE_PARM]: Handle deduction constraints.
(tsubst_copy_and_build): Handle REQUIRES_EXPR.
(more_specialized_fn, more_specialized_partial_spec): Check constraints.
(more_specialized_inst): Split out from most_specialized_instantiation.
(most_specialized_partial_spec): Check constraints.
(instantiate_decl): Never instantiate a concept.
(value_dependent_expression_p): Handle REQUIRES_EXPR, TYPE_REQ,
variable concepts.
(type_dependent_expression_p): Handle WILDCARD_DECL, REQUIRES_EXPR.
(instantiation_dependent_r): Handle REQUIRES_EXPR and concepts.
(do_auto_deduction): Add overload taking tsubst flags and context enum.
Handle constraints.
(get_template_for_ordering, most_constrained_function)
(is_compatible_template_arg, convert_wildcard_argument)
(struct constr_entry, struct constr_hasher, decl_constraints)
(valid_constraints_p, get_constraints, set_constraints)
(remove_constraints, init_constraint_processing): New.
* ptree.c (cxx_print_xnode): Handle CONSTRAINT_INFO.
* search.c (lookup_member): Do lookup in the open partial
instantiation.
* semantics.c (finish_template_template_parm): Handle constraints.
(fixup_template_type): New.
(finish_template_type): Call it.
(trait_expr_value, finish_trait_expr): Handle CPTK_IS_SAME_AS.
* tree.c (cp_tree_equal): Handle local parameters, CONSTRAINT_INFO.
(cp_walk_subtrees): Handle REQUIRES_EXPR.
* typeck.c (cp_build_function_call_vec): Check constraints.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@226713
138bc75d-0d04-0410-961f-
82ee72b054a4
dj [Fri, 7 Aug 2015 05:13:52 +0000 (05:13 +0000)]
2015-08-06 Yaakov Selkowitz <yselkowi@redhat.com>
* Makefile.def (libiconv): Define bootstrap=true.
Mark pdf/html/info as missing.
(configure-gcc): Depend on all-libiconv.
(all-gcc): Ditto.
(configure-libcpp): Ditto.
(all-libcpp): Ditto.
(configure-intl): Ditto.
(all-intl): Ditto.
* Makefile.in: Regenerate.
intl/
* configure: Reflects renaming of configure.in to configure.ac
libcpp/
* configure: Regenerate.
gcc/
* configure.ac: Define LIBICONV_DEP with in-tree libiconv.
* configure: Regenerate.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@226712
138bc75d-0d04-0410-961f-
82ee72b054a4
gccadmin [Fri, 7 Aug 2015 00:16:11 +0000 (00:16 +0000)]
Daily bump.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@226705
138bc75d-0d04-0410-961f-
82ee72b054a4
mikael [Thu, 6 Aug 2015 20:47:36 +0000 (20:47 +0000)]
Move one condition out of gfc_trans_scalar_assign
* trans.h (gfc_trans_scalar_assign): Remove fourth argument.
* trans-expr.c (gfc_trans_scalar_assign): Merge fourth into sixth
argument.
(gfc_conv_subref_array_arg, gfc_trans_subarray_assign,
gfc_trans_subcomponent_assign, gfc_trans_assignment_1): Update callers.
* trans-array.c (gfc_conv_expr_descriptor): Ditto.
* trans-stmt.c (forall_make_variable_temp,
generate_loop_for_temp_to_lhs, generate_loop_for_rhs_to_temp,
gfc_trans_where_assign, gfc_trans_where_3): Ditto.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@226700
138bc75d-0d04-0410-961f-
82ee72b054a4
dmalcolm [Thu, 6 Aug 2015 19:05:52 +0000 (19:05 +0000)]
jit.dg/test-benchmark.c: add a summary of timings
gcc/testsuite/ChangeLog:
* jit.dg/test-benchmark.c (main): Record all elapsed times at each
optimization level, and print a summary at the end.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@226697
138bc75d-0d04-0410-961f-
82ee72b054a4
fxcoudert [Thu, 6 Aug 2015 17:42:19 +0000 (17:42 +0000)]
* runtime/compile_options.c (set_options): Fix typos.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@226686
138bc75d-0d04-0410-961f-
82ee72b054a4
jason [Thu, 6 Aug 2015 16:33:14 +0000 (16:33 +0000)]
PR c++/66533
* parser.c (cp_parser_primary_expression): Don't skip to the end
of the statement if we're parsing tentatively.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@226684
138bc75d-0d04-0410-961f-
82ee72b054a4
jiwang [Thu, 6 Aug 2015 16:08:39 +0000 (16:08 +0000)]
[AArch64] Improve TLS Descriptor pattern to release RTL loop IV opt
The instruction sequences for preparing argument for TLS descriptor
runtime resolver and the later function call to resolver can actually be
hoisted out of the loop.
Currently we can't because we have exposed the hard register X0 as
destination of "set". While GCC's RTL data flow infrastructure will
skip or do very conservative assumption when hard register involved in
and thus some loop IV opportunities are missed.
This patch add another "tlsdesc_small_pseudo_<mode>" pattern, and avoid
expose x0 to gcc generic code.
Generally, we define a new register class FIXED_R0 which only contains register
0, so the instruction sequences generated from the new add pattern is the same
as tlsdesc_small_<mode>, while the operand 0 is wrapped as pseudo register that
RTL IV opt can handle it.
Ideally, we should allow operand 0 to be any pseudo register, but then
we can't model the override of x0 caused by the function call which is
hidded by the UNSPEC.
So here, we restricting operand 0 to be x0, the override of x0 can be
reflected to the gcc.
2015-08-06 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
Jiong Wang <jiong.wang@arm.com>
gcc/
* config/aarch64/aarch64.d (tlsdesc_small_pseudo_<mode>): New pattern.
* config/aarch64/aarch64.h (reg_class): New enumeration FIXED_REG0.
(REG_CLASS_NAMES): Likewise.
(REG_CLASS_CONTENTS): Likewise.
* config/aarch64/aarch64.c (aarch64_class_max_nregs): Likewise.
(aarch64_register_move_cost): Likewise.
(aarch64_load_symref_appropriately): Invoke the new added pattern if
possible.
* config/aarch64/constraints.md (Uc0): New constraint.
gcc/testsuite/
* gcc.target/aarch64/tlsdesc_hoist.c: New testcase.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@226683
138bc75d-0d04-0410-961f-
82ee72b054a4
jiwang [Thu, 6 Aug 2015 16:02:16 +0000 (16:02 +0000)]
[AArch64] Tighten direct call pattern for sibcall to repair -fno-plt
2015-08-06 Jiong Wang <jiong.wang@arm.com>
gcc/
* config/aarch64/constraints.md (Usf): Add the test of
aarch64_is_noplt_call_p.
gcc/testsuite/
* gcc.target/aarch64/noplt_3.c: New testcase.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@226682
138bc75d-0d04-0410-961f-
82ee72b054a4
jiwang [Thu, 6 Aug 2015 15:57:36 +0000 (15:57 +0000)]
[AArch64] Tighten direct call pattern to repair -fno-plt
2015-08-06 Jiong Wang <jiong.wang@arm.com>
gcc/
* config/aarch64/aarch64-protos.h (aarch64_is_noplt_call_p): New declaration.
* config/aarch64/aarch64.c (aarch64_is_noplt_call_p): New function.
* config/aarch64/aarch64.md (call_value_symbol): Check noplt scenarios.
(call_symbol): Likewise.
gcc/testsuite/
* gcc.target/aarch64/noplt_1.c: New testcase.
* gcc.target/aarch64/noplt_2.c: Likewise.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@226681
138bc75d-0d04-0410-961f-
82ee72b054a4
jason [Thu, 6 Aug 2015 14:26:18 +0000 (14:26 +0000)]
PR c++/67130
PR c++/67131
PR c++/66260
* mangle.c (write_expression) [TEMPLATE_ID_EXPR]: Handle variable
templates.
* pt.c (tsubst_copy_and_build): Check for argument substitution
failure.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@226676
138bc75d-0d04-0410-961f-
82ee72b054a4
vekumar [Thu, 6 Aug 2015 12:00:57 +0000 (12:00 +0000)]
Vectorize mult expressions with power 2 constants via shift, for targets has no vector multiplication support.
2015-08-06 Venkataramanan Kumar <Venkataramanan.kumar@amd.com>
* tree-vect-patterns.c (vect_recog_mult_pattern): New function
for vectorizing multiplication patterns.
* tree-vectorizer.h: Adjust the number of patterns.
2015-08-06 Venkataramanan Kumar <Venkataramanan.kumar@amd.com>
* gcc.dg/vect/vect-mult-pattern-1.c: New test.
* gcc.dg/vect/vect-mult-pattern-2.c: New test.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@226675
138bc75d-0d04-0410-961f-
82ee72b054a4
uros [Thu, 6 Aug 2015 11:12:06 +0000 (11:12 +0000)]
* config/i386/sse.md (*vec_concatv2df): Declare added
alternatives as sselog type.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@226674
138bc75d-0d04-0410-961f-
82ee72b054a4
krebbel [Thu, 6 Aug 2015 10:23:38 +0000 (10:23 +0000)]
S/390: Fix dwarf reg size table for -m31 -mzarch.
gcc/ChangeLog:
* config/s390/s390.c (s390_dwarf_frame_reg_mode): Return Pmode for
all GPRs.
gcc/testsuite/ChangeLog:
* gcc.target/s390/dwarfregtable-1.c: New test.
* gcc.target/s390/dwarfregtable-2.c: New test.
* gcc.target/s390/dwarfregtable-3.c: New test.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@226673
138bc75d-0d04-0410-961f-
82ee72b054a4
krebbel [Thu, 6 Aug 2015 10:21:41 +0000 (10:21 +0000)]
S/390: Clobber VRs in __builtin_tbegin.
gcc/ChangeLog:
* config/s390/s390.c (s390_expand_tbegin): Expand either
tbegin_1_z13 or tbegin_1 depending on VX flag.
* config/s390/s390.md ("tbegin_1_z13"): New expander.
gcc/testsuite/ChangeLog:
* gcc.target/s390/htm-builtins-z13-1.c: New test.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@226672
138bc75d-0d04-0410-961f-
82ee72b054a4
krebbel [Thu, 6 Aug 2015 10:18:20 +0000 (10:18 +0000)]
S/390: Doc: Add documentation for -mhtm, -mvx, and -mzvector.
gcc/ChangeLog:
* config/s390/s390.opt: Clarify description for -mzvector
* doc/invoke.texi: Add documentation for -mhtm, -mvx, and
-mzvector.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@226671
138bc75d-0d04-0410-961f-
82ee72b054a4
fxcoudert [Thu, 6 Aug 2015 09:22:30 +0000 (09:22 +0000)]
PR fortran/64022
* gfortran.dg/ieee/large_2.f90: New test.
* gfortran.dg/ieee/large_3.F90: New test.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@226670
138bc75d-0d04-0410-961f-
82ee72b054a4
rguenth [Thu, 6 Aug 2015 08:51:59 +0000 (08:51 +0000)]
2015-08-06 Richard Biener <rguenther@suse.de>
* gimple.h (gimple_call_set_fn): Access op member directly.
(gimple_call_chain_ptr): Likewise.
(gimple_call_set_chain): Likewise.
(gimple_cond_lhs_ptr): Likewise.
(gimple_cond_set_lhs): Likewise.
(gimple_cond_rhs_ptr): Likewise.
(gimple_cond_set_rhs): Likewise.
(gimple_cond_true_label): Likewise.
(gimple_cond_set_true_label): Likewise.
(gimple_cond_set_false_label): Likewise.
(gimple_cond_false_label): Likewise.
(gimple_label_label): Likewise.
(gimple_label_set_label): Likewise.
(gimple_goto_set_dest): Likewise.
(gimple_asm_input_op): Likewise.
(gimple_asm_input_op_ptr): Likewise.
(gimple_asm_set_input_op): Likewise.
(gimple_asm_output_op): Likewise.
(gimple_asm_output_op_ptr): Likewise.
(gimple_asm_set_output_op): Likewise.
(gimple_asm_clobber_op): Likewise.
(gimple_asm_set_clobber_op): Likewise.
(gimple_asm_label_op): Likewise.
(gimple_asm_set_label_op): Likewise.
(gimple_switch_index): Likewise.
(gimple_switch_index_ptr): Likewise.
(gimple_return_retval_ptr): Likewise.
(gimple_return_retval): Likewise.
(gimple_return_set_retval): Likewise.
(gimple_switch_set_index): Likewise. Remove superfluous GIMPLE_CHECK.
(gimple_switch_label): Likewise.
(gimple_switch_set_label): Likewise.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@226669
138bc75d-0d04-0410-961f-
82ee72b054a4
rguenth [Thu, 6 Aug 2015 08:45:52 +0000 (08:45 +0000)]
2015-08-06 Richard Biener <rguenther@suse.de>
* gimple-fold.c (gimple_fold_stmt_to_constant_1): Simplify
bool comparison canonicalization and restrict to integers.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@226668
138bc75d-0d04-0410-961f-
82ee72b054a4
fxcoudert [Thu, 6 Aug 2015 08:38:59 +0000 (08:38 +0000)]
PR fortran/64022
* gfortran.dg/ieee/large_1.f90: Adjust test.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@226665
138bc75d-0d04-0410-961f-
82ee72b054a4
jason [Thu, 6 Aug 2015 01:33:32 +0000 (01:33 +0000)]
* pt.c (determine_specialization): Print candidates after 'no
match' error.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@226653
138bc75d-0d04-0410-961f-
82ee72b054a4
jason [Thu, 6 Aug 2015 01:33:27 +0000 (01:33 +0000)]
* decl.c (cp_finish_decl): Tidy.
* typeck.c (finish_class_member_access_expr): Use
type_dependent_expression_p.
* semantics.c (finish_id_expression): Use
type_dependent_expression_p. Don't build_qualified_name for a
decl in non-dependent scope.
* pt.c (type_dependent_expression_p): A TEMPLATE_ID_EXPR of an
identifier is dependent. Remove variable_template_p check.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@226652
138bc75d-0d04-0410-961f-
82ee72b054a4
gccadmin [Thu, 6 Aug 2015 00:16:14 +0000 (00:16 +0000)]
Daily bump.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@226651
138bc75d-0d04-0410-961f-
82ee72b054a4
amacleod [Wed, 5 Aug 2015 23:18:09 +0000 (23:18 +0000)]
2015-08-05 Andrew MacLeod <amacleod@redhat.com>
* coretypes.h (enum symbol_visibility): Relocate here.
* flag-types.h (enum symbol_visibility): Remove.
* tree-core.h (enum symbol_visibility): Remove.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@226648
138bc75d-0d04-0410-961f-
82ee72b054a4
redi [Wed, 5 Aug 2015 20:57:03 +0000 (20:57 +0000)]
2015-08-05 Nikolai Bozhenov <n.bozhenov@samsung.com>
* testsuite/20_util/enable_shared_from_this/cons/constexpr.cc: Remove
redundant -save-temps option.
* testsuite/20_util/shared_ptr/cons/constexpr.cc: Likewise.
* testsuite/20_util/unique_ptr/cons/constexpr.cc: Likewise.
* testsuite/20_util/weak_ptr/cons/constexpr.cc: Likewise.
* testsuite/30_threads/future/cons/constexpr.cc: Likewise.
* testsuite/30_threads/shared_future/cons/constexpr.cc: Likewise.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@226647
138bc75d-0d04-0410-961f-
82ee72b054a4
boger [Wed, 5 Aug 2015 18:07:16 +0000 (18:07 +0000)]
2015-08-15 Lynn Boger <laboger@linux.vnet.ibm.com>
PR target/66870
* gcc/config/rs6000/rs6000.c (rs6000_emit_prologue): Check
for no_split_stack function attribute along with
flag_split_stack.
(rs6000_expand_split_stack_prologue): Likewise.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@226643
138bc75d-0d04-0410-961f-
82ee72b054a4
jason [Wed, 5 Aug 2015 17:56:14 +0000 (17:56 +0000)]
PR c++/66260
PR c++/66596
PR c++/66649
PR c++/66923
* pt.c (lookup_template_variable): Use NULL_TREE for type.
(instantiate_template_1): Also set DECL_TI_ARGS based on
the immediate parent.
(tsubst_copy_and_build) [TEMPLATE_ID_EXPR]: Handle variable templates.
(finish_template_variable): Add complain parm.
* cp-tree.h: Adjust.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@226642
138bc75d-0d04-0410-961f-
82ee72b054a4
jason [Wed, 5 Aug 2015 17:51:29 +0000 (17:51 +0000)]
PR c++/65195
PR c++/66619
* semantics.c (finish_id_expression): Call convert_from_reference
for variable template.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@226641
138bc75d-0d04-0410-961f-
82ee72b054a4
manu [Wed, 5 Aug 2015 17:36:29 +0000 (17:36 +0000)]
gcc/ChangeLog:
2015-08-05 Manuel López-Ibáñez <manu@gcc.gnu.org>
Jeff Law <law@redhat.com>
PR c/16351
* doc/invoke.texi (Wnull-dereference): New.
* tree-vrp.c (infer_value_range): Update call to infer_nonnull_range.
* gimple-ssa-isolate-paths.c (find_implicit_erroneous_behaviour):
Warn for potential NULL dereferences.
(find_explicit_erroneous_behaviour): Warn for NULL dereferences.
* ubsan.c (instrument_nonnull_arg): Call
infer_nonnull_range_by_attribute.
(instrument_nonnull_return): Likewise.
* common.opt (Wnull-dereference); New.
* gimple.c (infer_nonnull_range): Remove bool arguments.
(infer_nonnull_range_by_dereference): New.
(infer_nonnull_range_by_attribute): New.
* gimple.h: Update declarations.
gcc/testsuite/ChangeLog:
2015-08-05 Manuel López-Ibáñez <manu@gcc.gnu.org>
Jeff Law <law@redhat.com>
PR c/16351
* gcc.dg/tree-ssa/isolate-2.c: Close comment.
* gcc.dg/tree-ssa/isolate-4.c: Likewise.
* gcc.dg/tree-ssa/wnull-dereference.c: New test.
* gcc.dg/tree-ssa/isolate-1.c: Test warnings with -Wnull-dereference.
* gcc.dg/tree-ssa/isolate-3.c: Likewise.
* gcc.dg/tree-ssa/isolate-5.c: Likewise.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@226640
138bc75d-0d04-0410-961f-
82ee72b054a4
rsandifo [Wed, 5 Aug 2015 15:47:31 +0000 (15:47 +0000)]
gcc/
* gensupport.c (sequence_num): Replace with...
(insn_sequence_num, split_sequence_num, peephole2_sequence_num):
...these new variables.
(init_rtx_reader_args_cb): Update accordingly.
(get_num_code_insns): Likewise.
(read_md_rtx): Rework to use a while loop and get_c_test.
Use the new counters. Remove redundant DEFINE_SUBST case.
* genoutput.c (gen_split): Delete.
(main): Don't call it.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@226635
138bc75d-0d04-0410-961f-
82ee72b054a4
rsandifo [Wed, 5 Aug 2015 15:46:02 +0000 (15:46 +0000)]
gcc/
* gensupport.h (get_c_test): Declare.
* gensupport.c (get_c_test): New function.
* genconditions.c (main): Use it.
* genrecog.c (validate_pattern): Likewise.
(match_pattern_1): Likewise. Remove c_test argument.
(match_pattern): Update accordingly and remove c_test argument.
(main): Update accordingly.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@226634
138bc75d-0d04-0410-961f-
82ee72b054a4
rsandifo [Wed, 5 Aug 2015 15:44:23 +0000 (15:44 +0000)]
gcc/
* gensupport.h (get_num_insn_codes): Declare.
* gensupport.c (get_num_insn_codes): New function.
* genattrtab.c (optimize_attrs): Rename max_insn_code to
num_insn_codes.
(main): Likewise. Use get_num_insn_codes.
* gencodes.c (main): Remove "last" and use get_num_insn_codes.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@226633
138bc75d-0d04-0410-961f-
82ee72b054a4
rsandifo [Wed, 5 Aug 2015 14:23:42 +0000 (14:23 +0000)]
gcc/
PR middle-end/66311
* wide-int.cc (wi::from_mpz): Make sure that absolute mpz value
is zero- rather than sign-extended.
gcc/testsuite/
2015-08-05 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
PR middle-end/66311
* gfortran.dg/pr66311.f90: New file.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@226632
138bc75d-0d04-0410-961f-
82ee72b054a4
rsandifo [Wed, 5 Aug 2015 14:21:11 +0000 (14:21 +0000)]
gcc/
* target-insns.def (can_extend): Delete.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@226631
138bc75d-0d04-0410-961f-
82ee72b054a4
rguenth [Wed, 5 Aug 2015 14:16:51 +0000 (14:16 +0000)]
2015-08-05 Richard Biener <rguenther@suse.de>
PR tree-optimization/67121
* tree-if-conv.c (combine_blocks): Clear range-info produced
by stmts no longer executed conditionally.
* gcc.dg/torture/pr67121.c: New testcase.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@226630
138bc75d-0d04-0410-961f-
82ee72b054a4
nickc [Wed, 5 Aug 2015 13:09:43 +0000 (13:09 +0000)]
gcc * config/rl78/rl78.c (rl78_force_nonfar_3): Remove optimization
to allow identical far pointers to remain.
tests * gcc.target/rl78: New directory.
* gcc.target/rl78/rl78.exp: New file: Test driver.
* gcc.target/rl78/test_addm3.c: New file: Test adds.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@226624
138bc75d-0d04-0410-961f-
82ee72b054a4
rguenth [Wed, 5 Aug 2015 12:47:59 +0000 (12:47 +0000)]
2015-08-05 Richard Biener <rguenther@suse.de>
PR middle-end/67120
* match.pd: Compare address bases with == if they are decls
or SSA names, not operand_equal_p. Otherwise fail.
* gcc.dg/torture/pr67120.c: New testcase.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@226623
138bc75d-0d04-0410-961f-
82ee72b054a4
pault [Wed, 5 Aug 2015 12:06:25 +0000 (12:06 +0000)]
2015-08-05 Paul Thomas <pault@gcc.gnu.org>
PR fortran/52846
* module.c (check_access): Return true if new static flag
'dump_smod' is true..
(gfc_dump_module): Rename original 'dump_module' and call from
new version. Use 'dump_smod' rather than the stack state to
determine if a submodule is being processed. The new version of
this procedure sets 'dump_smod' depending on the stack state and
then writes both the mod and smod files if a module is being
processed or just the smod for a submodule.
(gfc_use_module): Eliminate the check for module_name and
submodule_name being the same.
* trans-decl.c (gfc_finish_var_decl, gfc_build_qualified_array,
get_proc_pointer_decl): Set TREE_PUBLIC unconditionally and use
the conditions to set DECL_VISIBILITY as hidden and to set as
true DECL_VISIBILITY_SPECIFIED.
2015-08-05 Paul Thomas <pault@gcc.gnu.org>
PR fortran/52846
* lib/fortran-modules.exp: Call cleanup-submodules from
cleanup-modules.
* gfortran.dg/public_private_module_2.f90: Add two XFAILS to
cover the cases where private entities are no longer optimized
away.
* gfortran.dg/public_private_module_6.f90: Add an XFAIL for the
same reason.
* gfortran.dg/submodule_1.f08: Change cleanup module names.
* gfortran.dg/submodule_5.f08: The same.
* gfortran.dg/submodule_9.f08: The same.
* gfortran.dg/submodule_10.f08: New test
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@226622
138bc75d-0d04-0410-961f-
82ee72b054a4
paolo [Wed, 5 Aug 2015 10:07:57 +0000 (10:07 +0000)]
2015-08-05 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/66595
* g++.dg/cpp1y/var-templ35.C: New.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@226617
138bc75d-0d04-0410-961f-
82ee72b054a4
rguenth [Wed, 5 Aug 2015 10:01:12 +0000 (10:01 +0000)]
2015-08-05 Richard Biener <rguenther@suse.de>
PR tree-optimization/67055
* tree-ssa-ccp.c (fold_builtin_alloca_with_align): Handle
NULL gimple_block.
* g++.dg/torture/pr67055.C: New testcase.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@226616
138bc75d-0d04-0410-961f-
82ee72b054a4
kyukhin [Wed, 5 Aug 2015 08:01:19 +0000 (08:01 +0000)]
Disable AVX-512VL insns for scalar mode operands on -march=knl.
gcc/
* config/i386/i386.md (define_attr "isa"): Addd avx512vl and
noavx512vl.
(define_attr "enabled"): Handle avx521vl and noavx512vl.
* config/i386/sse.md (define_insn "vec_dupv2df<mask_name>"): Split
AVX-512 alternative out of SSE.
(define_insn "*vec_concatv2df"): Ditto.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@226612
138bc75d-0d04-0410-961f-
82ee72b054a4
kyukhin [Wed, 5 Aug 2015 07:58:54 +0000 (07:58 +0000)]
Merge SSE and AVX ptest patterns.
gcc/
* config/i386/i386.c (bdesc_args): Rename CODE_FOR_sse4_1_ptest into
CODE_FOR_sse4_1_ptestv2di and CODE_FOR_avx_vtestps256 into
CODE_FOR_avx_ptestv4di.
* config/i386/sse.md (define_mode_iterator V_AVX): New.
(define_mode_attr sse4_1): Extend to other 128/256-bit modes.
(define_insn "avx_ptest256"): Merge this ...
(define_insn "sse4_1_ptest"): And this ...
(define_insn "<sse4_1>_ptest<mode>"): Into this. Use V_AVX iterator.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@226611
138bc75d-0d04-0410-961f-
82ee72b054a4
rguenth [Wed, 5 Aug 2015 07:48:34 +0000 (07:48 +0000)]
2015-08-05 Richard Biener <rguenther@suse.de>
PR tree-optimization/67109
* tree-vect-data-refs.c (vect_analyze_group_access_1): Check
against too big groups. Print whether this is a load or store
group. Rename from ...
(vect_analyze_group_access): ... this which is now a wrapper
dissolving an invalid group.
(vect_analyze_data_ref_accesses): Print whether this is a load
or store group.
* gcc.dg/torture/pr67109.c: New testcase.
* gcc.dg/vect/vect-119.c: Adjust.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@226610
138bc75d-0d04-0410-961f-
82ee72b054a4
rguenth [Wed, 5 Aug 2015 07:42:54 +0000 (07:42 +0000)]
2015-08-05 Richard Biener <rguenther@suse.de>
PR middle-end/67107
* match.pd: Guard const_binop result checking against NULL_TREE
result.
* gcc.dg/pr67107.c: New testcase.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@226609
138bc75d-0d04-0410-961f-
82ee72b054a4
kugan [Wed, 5 Aug 2015 01:08:49 +0000 (01:08 +0000)]
gcc/ChangeLog:
2015-08-05 Kugan Vivekanandarajah <kuganv@linaro.org>
* cse.c (cse_insn): Restoring old behaviour for src_eqv
when dest and value in the REG_EQUAL are same and dest
is STRICT_LOW_PART.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@226606
138bc75d-0d04-0410-961f-
82ee72b054a4
gccadmin [Wed, 5 Aug 2015 00:16:11 +0000 (00:16 +0000)]
Daily bump.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@226601
138bc75d-0d04-0410-961f-
82ee72b054a4
ian [Tue, 4 Aug 2015 23:46:09 +0000 (23:46 +0000)]
compiler: Verify pointer type's underlying type.
Fixes golang/go#11547.
Reviewed-on: https://go-review.googlesource.com/13031
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@226598
138bc75d-0d04-0410-961f-
82ee72b054a4
ian [Tue, 4 Aug 2015 22:27:48 +0000 (22:27 +0000)]
compiler: Use context to determine types of complex expressions.
When determining the type of a complex expression, it is important
to recognize cases where a complex value can be represented as a
real number.
Fixes golang/go#11572.
Reviewed-on: https://go-review.googlesource.com/12541
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@226596
138bc75d-0d04-0410-961f-
82ee72b054a4
aesok [Tue, 4 Aug 2015 19:51:28 +0000 (19:51 +0000)]
[MOXIE] Hookize PRINT_OPERAND and PRINT_OPERAND_ADDRESS
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@226594
138bc75d-0d04-0410-961f-
82ee72b054a4
paolo [Tue, 4 Aug 2015 17:22:05 +0000 (17:22 +0000)]
2015-08-04 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/66197
* g++.dg/cpp1z/abbrev2.C: New.
2015-08-04 Paolo Carlini <paolo.carlini@oracle.com>
* g++.dg/cpp1z/static_assert-nomsg.C: Fix DejaGnu directive.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@226591
138bc75d-0d04-0410-961f-
82ee72b054a4
nsz [Tue, 4 Aug 2015 16:22:32 +0000 (16:22 +0000)]
[AArch64] PR target/66731 Fix fnmul insn with -frounding-math (rtx costs)
2015-08-04 Szabolcs Nagy <szabolcs.nagy@arm.com>
PR target/66731
* config/aarch64/aarch64.c (aarch64_rtx_costs): Fix NEG cost for FNMUL.
(aarch64_rtx_mult_cost): Fix MULT cost with -frounding-math.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@226586
138bc75d-0d04-0410-961f-
82ee72b054a4
uros [Tue, 4 Aug 2015 16:15:45 +0000 (16:15 +0000)]
* texi2pod.pl: Escape braces in regexp involving @strong{...}.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@226585
138bc75d-0d04-0410-961f-
82ee72b054a4
jason [Tue, 4 Aug 2015 15:18:45 +0000 (15:18 +0000)]
* pt.c (lookup_template_class_1): Clear elt.spec.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@226581
138bc75d-0d04-0410-961f-
82ee72b054a4
jason [Tue, 4 Aug 2015 15:18:40 +0000 (15:18 +0000)]
* tree.c (build_target_expr): Copy the location from value.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@226580
138bc75d-0d04-0410-961f-
82ee72b054a4
paolo [Tue, 4 Aug 2015 14:54:07 +0000 (14:54 +0000)]
2015-08-04 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/66392
* g++.dg/init/explicit4.C: New.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@226579
138bc75d-0d04-0410-961f-
82ee72b054a4
wschmidt [Tue, 4 Aug 2015 14:09:23 +0000 (14:09 +0000)]
2015-08-04 Bill Schmidt <wschmidt@vnet.linux.ibm.com>
* gcc.target/powerpc/vec-cmp-sel.c: Avoid test failure on machines
without VSX an Power8 vector support.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@226578
138bc75d-0d04-0410-961f-
82ee72b054a4
rguenth [Tue, 4 Aug 2015 13:55:26 +0000 (13:55 +0000)]
2015-08-04 Richard Biener <rguenther@suse.de>
* genmatch.c (dt_node::gen_kids_1): Use gassign and gcall in
generated code.
(dt_operand::gen_gimple_expr): Adjust.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@226577
138bc75d-0d04-0410-961f-
82ee72b054a4
rguenth [Tue, 4 Aug 2015 13:51:50 +0000 (13:51 +0000)]
2015-08-04 Richard Biener <rguenther@suse.de>
* gimple-fold.c (gimple_fold_stmt_to_constant_1): Canonicalize
bool compares on RHS.
* match.pd: Add X ==/!= !X is false/true pattern.
* gcc.dg/tree-ssa/ssa-ccp-38.c: New testcase.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@226576
138bc75d-0d04-0410-961f-
82ee72b054a4
rsandifo [Tue, 4 Aug 2015 13:44:41 +0000 (13:44 +0000)]
gcc/
2015-08-04 Pawel Kupidura <pawel.kupidura@arm.com>
* config/aarch64/aarch64.c: Change inner loop statement cost
to be consistent with other targets.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@226575
138bc75d-0d04-0410-961f-
82ee72b054a4
clyon [Tue, 4 Aug 2015 13:24:26 +0000 (13:24 +0000)]
2015-08-04 Christophe Lyon <christophe.lyon@linaro.org>
* config/arm/neon.md (neon_vget_lanev2di): Handle big-endian
targets.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@226574
138bc75d-0d04-0410-961f-
82ee72b054a4
nathan [Tue, 4 Aug 2015 13:14:14 +0000 (13:14 +0000)]
* config/nvptx/nvptx.h (struct nvptx_pseudo_info): Delete.
(machine_function): Remove pseudos field.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@226573
138bc75d-0d04-0410-961f-
82ee72b054a4
bje [Tue, 4 Aug 2015 12:59:57 +0000 (12:59 +0000)]
Fix incorrect date in 2015-07-28 change.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@226572
138bc75d-0d04-0410-961f-
82ee72b054a4
hjl [Tue, 4 Aug 2015 11:54:20 +0000 (11:54 +0000)]
Compile IAMCU tests with -fno-pie -no-pie
Since IAMCU tests clear all scratch integer registers with:
asm __volatile__ ("xor %%eax, %%eax\n\t" \
"xor %%edx, %%edx\n\t" \
"xor %%ecx, %%ecx\n\t" \
::: "eax", "edx", "ecx");
PIC register may be trashed between setting PIC register and using it.
This patch compiles AMCU tests with -fno-pie -no-pie.
PR target/67110
* gcc.target/i386/iamcu/abi-iamcu.exp (additional_flags): Add
-fno-pie -no-pie.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@226570
138bc75d-0d04-0410-961f-
82ee72b054a4
paolo [Tue, 4 Aug 2015 11:05:02 +0000 (11:05 +0000)]
2015-08-04 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/66427
* g++.dg/cpp1y/var-templ34.C: New.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@226568
138bc75d-0d04-0410-961f-
82ee72b054a4
ktkachov [Tue, 4 Aug 2015 10:45:48 +0000 (10:45 +0000)]
[AArch64][14/14] Reuse target_option_current_node when passing pragma string to target attribute
* config/aarch64/aarch64.c (aarch64_option_valid_attribute_p):
Exit early and use target_option_current_node if processing current
pragma.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@226567
138bc75d-0d04-0410-961f-
82ee72b054a4
ktkachov [Tue, 4 Aug 2015 10:43:15 +0000 (10:43 +0000)]
[doc][13/14] Document AArch64 target attributes and pragmas
* doc/extend.texi (AArch64 Function Attributes): New node.
(AArch64 Pragmas): Likewise.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@226566
138bc75d-0d04-0410-961f-
82ee72b054a4
ktkachov [Tue, 4 Aug 2015 10:41:31 +0000 (10:41 +0000)]
[AArch64][12/14] Target attributes and target pragmas tests
* gcc.target/aarch64/pragma_cpp_predefs_1.c: New test.
* gcc.target/aarch64/target_attr_1.c: Likewise.
* gcc.target/aarch64/target_attr_2.c: Likewise.
* gcc.target/aarch64/target_attr_3.c: Likewise.
* gcc.target/aarch64/target_attr_4.c: Likewise.
* gcc.target/aarch64/target_attr_5.c: Likewise.
* gcc.target/aarch64/target_attr_6.c: Likewise.
* gcc.target/aarch64/target_attr_7.c: Likewise.
* gcc.target/aarch64/target_attr_8.c: Likewise.
* gcc.target/aarch64/target_attr_9.c: Likewise.
* gcc.target/aarch64/target_attr_10.c: Likewise.
* gcc.target/aarch64/target_attr_11.c: Likewise.
* gcc.target/aarch64/target_attr_12.c: Likewise.
* gcc.target/aarch64/target_attr_13.c: Likewise.
* gcc.target/aarch64/target_attr_14.c: Likewise.
* gcc.target/aarch64/target_attr_15.c: Likewise.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@226565
138bc75d-0d04-0410-961f-
82ee72b054a4
ktkachov [Tue, 4 Aug 2015 10:39:42 +0000 (10:39 +0000)]
[AArch64][11/14] Re-layout SIMD builtin types on builtin expansion
* config/aarch64/aarch64.c (aarch64_option_valid_attribute_p):
Initialize simd builtins if TARGET_SIMD.
* config/aarch64/aarch64-builtins.c (aarch64_init_simd_builtins):
Make sure that the builtins are initialized only once no matter how
many times the function is called.
(aarch64_init_builtins): Unconditionally initialize crc builtins.
(aarch64_relayout_simd_param): New function.
(aarch64_simd_expand_args): Use above during argument expansion.
* config/aarch64/aarch64-c.c (aarch64_pragma_target_parse): Initialize
simd builtins if TARGET_SIMD.
* config/aarch64/aarch64-protos.h (aarch64_init_simd_builtins): New
prototype.
(aarch64_relayout_simd_types): Likewise.
* gcc.target/aarch64/target_attr_crypto_ice_1.c: New test.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@226564
138bc75d-0d04-0410-961f-
82ee72b054a4
ktkachov [Tue, 4 Aug 2015 10:35:16 +0000 (10:35 +0000)]
[AArch64][10/14] Implement target pragmas
* config.gcc (aarch64*-*-*): Specify c_target_objs and cxx_target_objs.
* config/aarch64/aarch64.h (REGISTER_TARGET_PRAGMAS): Define.
(TARGET_CPU_CPP_BUILTINS): Redefine to call aarch64_cpu_cpp_builtins.
* config/aarch64/aarch64.c (aarch64_override_options_internal): Remove
static keyword.
(aarch64_reset_previous_fndecl): New function.
(aarch64_handle_attr_isa_flags): Handle "+nothing" in the beginning of
the string.
* config/aarch64/aarch64-c.c: New file.
* config/aarch64/arm_acle.h: Add pragma +crc+nofp at the top.
Push and pop options at beginning and end. Remove ifdef
__ARM_FEATURE_CRC32.
* config/aarch64/arm_neon.h: Remove #ifdef check on __ARM_NEON.
Add pragma +nothing+simd and +nothing+crypto where appropriate.
* config/aarch64/t-aarch64 (aarch64-c.o): New rule.
* config/aarch64/aarch64-protos.h (aarch64_cpu_cpp_builtins):
Define prototype.
(aarch64_register_pragmas): Likewise.
(aarch64_reset_previous_fndecl): Likewise.
(aarch64_process_target_attr): Likewise.
(aarch64_override_options_internal): Likewise.
* gcc.target/aarch64/arm_neon-nosimd-error.c: Delete.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@226563
138bc75d-0d04-0410-961f-
82ee72b054a4
ktkachov [Tue, 4 Aug 2015 10:17:13 +0000 (10:17 +0000)]
[AArch64][9/14] Implement TARGET_CAN_INLINE_P
* config/aarch64/aarch64.c (aarch64_tribools_ok_for_inlining_p):
New function.
(aarch64_can_inline_p): Likewise.
(TARGET_CAN_INLINE_P): Define.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@226561
138bc75d-0d04-0410-961f-
82ee72b054a4
ktkachov [Tue, 4 Aug 2015 10:14:00 +0000 (10:14 +0000)]
[AArch64][8/14] Implement TARGET_OPTION_VALID_ATTRIBUTE_P
* common/config/aarch64/aarch64-common.c (aarch64_handle_option):
Remove static. Handle OPT_mgeneral_regs_only,
OPT_mfix_cortex_a53_835769, OPT_mstrict_align,
OPT_momit_leaf_frame_pointer.
* config/aarch64/aarch64.c: Include opts.h and diagnostic.h
(aarch64_attr_opt_type): New enum.
(aarch64_attribute_info): New struct.
(aarch64_handle_attr_arch): New function.
(aarch64_handle_attr_cpu): Likewise.
(aarch64_handle_attr_tune): Likewise.
(aarch64_handle_attr_isa_flags): Likewise.
(aarch64_attributes): New table.
(aarch64_process_one_target_attr): New function.
(num_occurences_in_str): Likewise.
(aarch64_process_target_attr): Likewise.
(aarch64_option_valid_attribute_p): Likewise.
(TARGET_OPTION_VALID_ATTRIBUTE_P): Define.
* config/aarch64/aarch64-protos.h: Include input.h
(aarch64_handle_option): Declare prototype.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@226560
138bc75d-0d04-0410-961f-
82ee72b054a4
ktkachov [Tue, 4 Aug 2015 10:10:28 +0000 (10:10 +0000)]
[AArch64][7/14] Implement TARGET_SET_CURRENT_FUNCTION
* config/aarch64/aarch64.h (SWITCHABLE_TARGET): Define.
* config/aarch64/aarch64.c: Include target-globals.h
(aarch64_previous_fndecl): New variable.
(aarch64_set_current_function): New function.
(TARGET_SET_CURRENT_FUNCTION): Define.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@226559
138bc75d-0d04-0410-961f-
82ee72b054a4
ktkachov [Tue, 4 Aug 2015 10:06:51 +0000 (10:06 +0000)]
[AArch64][6/14] Implement TARGET_OPTION_SAVE/TARGET_OPTION_RESTORE
* config/aarch64/aarch64.opt (explicit_tune_core): New TargetVariable.
(explicit_arch): Likewise.
(x_aarch64_isa_flags): Likewise.
(mgeneral-regs-only): Mark as Save.
(mfix-cortex-a53-835769): Likewise.
(mcmodel=): Likewise.
(mstrict-align): Likewise.
(momit-leaf-frame-pointer): Likewise.
(mtls-dialect): Likewise.
(master=): Likewise.
* config/aarch64/aarch64.h (ASM_DECLARE_FUNCTION_NAME): Define.
(aarch64_isa_flags): Remove extern declaration.
* config/aarch64/aarch64.c (aarch64_validate_mcpu): Return a bool
to indicate success or failure.
(aarch64_validate_march): Likewise.
(aarch64_validate_mtune): Likewise.
(aarch64_isa_flags): Delete.
(aarch64_override_options_internal): Access opts->x_aarch64_isa_flags
instead of aarch64_isa_flags.
(aarch64_get_tune_cpu): New function.
(aarch64_get_arch): Likewise.
(aarch64_override_options): Use above and set up explicit_tune_core
and explicit_arch.
(aarch64_print_extension): Move earlier in file. Add isa_flags
argument and use that instead of the global aarch64_isa_flags.
(aarch64_option_save): New function.
(aarch64_option_restore): Likewise.
(aarch64_option_print): Likewise.
(aarch64_declare_function_name): Likewise.
(aarch64_start_file): Delete.
(TARGET_ASM_FILE_START): Do not define.
(TARGET_OPTION_RESTORE, TARGET_OPTION_PRINT): Define.
* config/aarch64/aarch64-protos.h (aarch64_declare_function_name):
Declare prototype.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@226558
138bc75d-0d04-0410-961f-
82ee72b054a4
ktkachov [Tue, 4 Aug 2015 10:02:56 +0000 (10:02 +0000)]
[AArch64][5/14] Make flag_omit_leaf_frame_pointer intialize to 2. Define and use TARGET_OMIT_LEAF_FRAME_POINTER
* config/aarch64/aarch64.opt (momit-leaf-frame-pointer): Initialize
flag_omit_leaf_frame_pointer to 2.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@226557
138bc75d-0d04-0410-961f-
82ee72b054a4
ktkachov [Tue, 4 Aug 2015 10:01:06 +0000 (10:01 +0000)]
[AArch64][4/14] Create TARGET_FIX_ERR_A53_835769 and use that instead of aarch64_fix_a53_err835769
* config/aarch64/aarch64.h (TARGET_FIX_ERR_A53_835769_DEFAULT): Always
define to 0 or 1.
(TARGET_FIX_ERR_A53_835769): New macro.
* config/aarch64/aarch64.c (aarch64_override_options_internal): Remove
handling of opts->x_aarch64_fix_a53_err835769.
(aarch64_madd_needs_nop): Check for TARGET_FIX_ERR_A53_835769 rather
than aarch64_fix_a53_err835769.
* config/aarch64/aarch64-elf-raw.h: Update for above changes.
* config/aarch64/aarch64-linux.h: Likewise.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@226556
138bc75d-0d04-0410-961f-
82ee72b054a4
uros [Tue, 4 Aug 2015 09:54:08 +0000 (09:54 +0000)]
* config/i386/i386.c (ix86_expand_int_movcc): Check result of
ix86_expand_int_movcc as boolean.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@226555
138bc75d-0d04-0410-961f-
82ee72b054a4
ktkachov [Tue, 4 Aug 2015 09:52:52 +0000 (09:52 +0000)]
[AArch64][3/14] Refactor option override code
* config/aarch64/aarch64.opt (aarch64_arch_string): Delete.
(aarch64_cpu_string): Likewise.
(aarch64_tune_string): Likewise.
* config/aarch64/aarch64.c (aarch64_parse_opt_result): New enum.
(aarch64_parse_extension): Return aarch64_parse_opt_result.
Add extra argument to put result into.
(aarch64_parse_arch): Likewise. Do not set selected_cpu.
(aarch64_parse_cpu): Add arguments to put results into. Return
aarch64_parse_opt_result.
(aarch64_parse_tune): Likewise.
(aarch64_override_options_after_change_1): New function.
(aarch64_override_options_internal): New function.
(aarch64_validate_mcpu): Likewise.
(aarch64_validate_march): Likewise.
(aarch64_validate_mtune): Likewise.
(aarch64_override_options): Update to reflect above changes.
Move some logic into aarch64_override_options_internal.
Initialize target_option_default_node and target_option_current_node.
(aarch64_override_options_after_change): Move logic into
aarch64_override_options_after_change_1 and call it with global_options.
(initialize_aarch64_code_model): Take a gcc_options pointer and use the
flag values from that.
* gcc.target/aarch64/cpu-diagnostics-3.c: Update expected error
message.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@226554
138bc75d-0d04-0410-961f-
82ee72b054a4
ktkachov [Tue, 4 Aug 2015 09:47:49 +0000 (09:47 +0000)]
[AArch64][2/14] Refactor arches handling, add arch enum identifier
* config/aarch64/aarch64.h (TARGET_CPU_CPP_BUILTINS): Define
__ARM_ARCH_8A directly rather than with cpp_define_formatted.
* config/aarch64/aarch64.c (struct processor): Add arch field.
(all_architectures): Handle above, move above all_cores.
(all_cores): Handle above.
(aarch64_parse_arch): Handle above changes.
* config/aarch64/aarch64-arches.def (armv8-a): Extend according to
above. Update comments.
(armv8.1-a): Likewise.
* config/aarch64/aarch64-cores.def: Update according to above.
* config/aarch64/aarch64-opts.h (aarch64_arch): New enum.
* config/aarch64/driver-aarch64.c (struct aarch64_arch): Rename to
aarch64_arch_driver_info.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@226553
138bc75d-0d04-0410-961f-
82ee72b054a4
ktkachov [Tue, 4 Aug 2015 09:44:18 +0000 (09:44 +0000)]
[AArch64][1/14] Add ident field to struct processor
* config/aarch64/aarch64.c (struct processor): Add ident field.
Rename core sched_core.
(all_cores): Handle above changes.
(all_architectures): Likewise.
(aarch64_parse_arch): Likewise.
(aarch64_override_options): Likewise.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@226552
138bc75d-0d04-0410-961f-
82ee72b054a4
rguenth [Tue, 4 Aug 2015 09:40:54 +0000 (09:40 +0000)]
2015-08-04 Richard Biener <rguenther@suse.de>
* gimple-fold.c (gimple_fold_stmt_to_constant_1): Remove
dispatching to fold_binary for GIMPLE_BINARY_RHS and for
comparisons embedded in [VEC_]COND_EXPRs.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@226551
138bc75d-0d04-0410-961f-
82ee72b054a4
uros [Tue, 4 Aug 2015 09:24:15 +0000 (09:24 +0000)]
* config/fpu-387.h: Remove unwanted whitespace.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@226550
138bc75d-0d04-0410-961f-
82ee72b054a4
uros [Tue, 4 Aug 2015 09:16:52 +0000 (09:16 +0000)]
* config/fpu-387.h (get_fpu_trap_exceptions): Add temporary variable
to improve generated code.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@226549
138bc75d-0d04-0410-961f-
82ee72b054a4
fxcoudert [Tue, 4 Aug 2015 07:27:19 +0000 (07:27 +0000)]
PR fortran/64022
* simplify.c (gfc_simplify_ieee_selected_real_kind): Extend IEEE
support to all real kinds.
* ieee/ieee_exceptions.F90: Support all real kinds.
* ieee/ieee_arithmetic.F90: Likewise.
* ieee/ieee_helper.c (ieee_class_helper_10,
ieee_class_helper_16): New functions
* gfortran.map (GFORTRAN_1.7): Add entries.
* gfortran.dg/ieee/ieee_7.f90: Adjust test.
* gfortran.dg/ieee/large_1.f90: New test.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@226548
138bc75d-0d04-0410-961f-
82ee72b054a4
law [Tue, 4 Aug 2015 03:53:10 +0000 (03:53 +0000)]
* tree-if-conv.c: Fix various typos in comments.
* tree-vect-stmts.c: Likewise.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@226544
138bc75d-0d04-0410-961f-
82ee72b054a4
ian [Tue, 4 Aug 2015 03:39:21 +0000 (03:39 +0000)]
runtime: initialize variable to avoid compiler warning
Reviewed-on: https://go-review.googlesource.com/13095
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@226543
138bc75d-0d04-0410-961f-
82ee72b054a4
thopre01 [Tue, 4 Aug 2015 02:11:58 +0000 (02:11 +0000)]
2015-08-04 Thomas Preud'homme <thomas.preudhomme@arm.com>
gcc/
PR tree-optimization/67043
* loop-invariant.c (move_invariant_reg): Recompute luids in loop
preheader after hoisting invariant in it.
(find_defs): Force recomputation of all luids.
gcc/testsuite/
PR tree-optimization/67043
* gcc.dg/pr67043.c: New test.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@226540
138bc75d-0d04-0410-961f-
82ee72b054a4
nathan [Tue, 4 Aug 2015 00:40:18 +0000 (00:40 +0000)]
* plugin/plugin-nvptx.c: Don't include dlfcn.h.
(cuda_errlist): Constify.
(errmsg): Move into ...
(cuda_error): ... here. Make smaller.
(_XSTR, _STR): Delete.
(cuda_synames): Delete.
(verify_device_library): Delete.
(nvptx_init): Don't call it.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@226539
138bc75d-0d04-0410-961f-
82ee72b054a4
gccadmin [Tue, 4 Aug 2015 00:16:13 +0000 (00:16 +0000)]
Daily bump.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@226538
138bc75d-0d04-0410-961f-
82ee72b054a4
ian [Mon, 3 Aug 2015 21:18:56 +0000 (21:18 +0000)]
syscall: RawSockaddr fix for ppc64, ppc64le
The struct RawSockaddr contains a field Data which
should be uint8 on ppc64 and ppc64le, but is declared
as int8 in gccgo. This change adds a two new files
which contain the structure declaration for
RawSockaddr, one with the correct types for for ppc64
and ppc64le, and the other for non-ppc64 platforms.
Fixes golang/go#11469
Reviewed-on: https://go-review.googlesource.com/11946
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@226533
138bc75d-0d04-0410-961f-
82ee72b054a4
bergner [Mon, 3 Aug 2015 21:11:20 +0000 (21:11 +0000)]
gcc/
* config/rs6000/htm.md (tabort.): Restrict the source operand to
using a base register.
gcc/testsuite/
* gcc.target/powerpc/htm-tabort-no-r0.c: New test.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@226532
138bc75d-0d04-0410-961f-
82ee72b054a4
dmalcolm [Mon, 3 Aug 2015 20:14:21 +0000 (20:14 +0000)]
Refactoring of timevar API
gcc/ChangeLog:
* main.c (main): Pass in NULL for toplev's external_timer.
* timevar.c: Include coretypes.h.
(class timer::named_items): New.
(timer::named_items::named_items): New.
(timer::named_items::~named_items): New.
(timer::named_items::push): New.
(timer::named_items::pop): New.
(timer::named_items::print): New.
(timer::timer): Initialize field "m_jit_client_items".
(timer::~timer): New.
(timer::push): Move bulk of implementation to...
(timer::push_internal): ...here. New function.
(timer::pop): Move bulk of implementation to...
(timer::pop_internal): ...here. New function.
(timer::push_client_item): New.
(timer::pop_client_item): New.
(timer::print_row): New function, taken from timer::print.
(timer::print): Print "GCC items" header if we also have client
items. Move row-printing to timer::print_row. Print any client
items.
(timer::get_topmost_item_name): New method.
* timevar.def (TV_JIT_ACQUIRING_MUTEX): New.
(TV_JIT_CLIENT_CODE): New.
* timevar.h (timer::push_client_item): New declaration.
(timer::pop_client_item): New declaration.
(timer::get_topmost_item_name): New method.
(timer::push_internal): New declaration.
(timer::pop_internal): New declaration.
(timer::print_row): New declaration.
(timer::named_items): New declaration.
(timer::m_jit_client_items): New field.
(timer): Add friend class named_items.
(auto_timevar::auto_timevar): Add timer param.
(auto_timevar::~auto_timevar): Use field "m_timer".
(auto_timevar::m_timer): New field.
* toplev.c (initialize_rtl): Add g_timer as param when
constructing auto_timevar instance.
(toplev::toplev): Add "external_timer" param, and use it to
initialize the "g_timer" global if non-NULL.
(toplev::~toplev): If this created "g_timer", delete it.
* toplev.h (toplev::toplev): Replace "use_TV_TOTAL" bool param
with "external_timer" timer *.
gcc/jit/ChangeLog:
* docs/topics/compatibility.rst (LIBGCCJIT_ABI_4): New.
* docs/topics/contexts.rst (GCC_JIT_BOOL_OPTION_DUMP_SUMMARY):
We no longer show a profile.
* docs/topics/index.rst (Topic Reference): Add performance.rst.
* docs/topics/performance.rst: New file.
* docs/_build/texinfo/libgccjit.texi: Regenerate.
* jit-playback.c (gcc::jit::playback::context::compile): Add timer
param when constructing the "toplev" instance.
(gcc::jit::playback::context::acquire_mutex): Add timer param when
constructing auto_timevar instance.
(gcc::jit::playback::context::make_fake_args): If we have a timer,
add "-ftime-report".
(gcc::jit::playback::context::invoke_driver): Add timer param when
constructing auto_timevar instance.
(gcc::jit::playback::context::dlopen_built_dso): Likewise.
* jit-playback.h (gcc::jit::playback::context::get_timer): New accessor.
* jit-recording.c: Include timevar.h.
(gcc::jit::recording::context::context): Initialize field "m_timer".
* jit-recording.h: Add forward declaration of class timer.
(gcc::jit::recording::context::set_timer): New method.
(gcc::jit::recording::context::get_timer): New method.
(gcc::jit::recording::context::m_timer): New field.
* libgccjit++.h (gccjit::timer): New class.
(gccjit::auto_time): New class.
(gccjit::context::set_timer): New method.
(gccjit::context::get_timer): New.
(gccjit::timer::timer): New.
(gccjit::timer::push): New.
(gccjit::timer::pop): New.
(timer::print): New.
(timer::get_inner_timer): New.
(timer::release): New.
(auto_time::auto_time): New.
(auto_time::~auto_time): New.
* libgccjit.c: Include timevar.h.
(struct gcc_jit_timer): New.
(gcc_jit_timer_new): New function.
(gcc_jit_timer_release): New function.
(gcc_jit_context_set_timer): New function.
(gcc_jit_context_get_timer): New function.
(gcc_jit_timer_push): New function.
(gcc_jit_timer_pop): New function.
(gcc_jit_timer_print): New function.
* libgccjit.h (LIBGCCJIT_HAVE_TIMING_API): New macro.
(gcc_jit_timer): New typedef.
(gcc_jit_timer_new): New function.
(gcc_jit_timer_release): New function.
(gcc_jit_context_set_timer): New function.
(gcc_jit_context_get_timer): New function.
(gcc_jit_timer_push): New function.
(gcc_jit_timer_pop): New function.
(gcc_jit_timer_print): New function.
* libgccjit.map (LIBGCCJIT_ABI_4): New.
(gcc_jit_timer_new): New function.
(gcc_jit_timer_release): New function.
(gcc_jit_context_set_timer): New function.
(gcc_jit_context_get_timer): New function.
(gcc_jit_timer_push): New function.
(gcc_jit_timer_pop): New function.
(gcc_jit_timer_print): New function.
gcc/testsuite/ChangeLog:
* jit.dg/test-benchmark.c (test_jit): Add param "timer" and use
it to push/pop timing items.
(main): For each optimization level, create a gcc_jit_timer, and
time all of the iteration within that level cumulatively.
* jit.dg/test-error-gcc_jit_timer_pop-mismatch.c: New test case.
* jit.dg/test-error-gcc_jit_timer_pop-too-many.c: New test case.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@226530
138bc75d-0d04-0410-961f-
82ee72b054a4
ian [Mon, 3 Aug 2015 19:55:00 +0000 (19:55 +0000)]
compiler: Don't allow multiple function declarations.
Fixes golang/go#11573.
Reviewed-on: https://go-review.googlesource.com/12508
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@226529
138bc75d-0d04-0410-961f-
82ee72b054a4
law [Mon, 3 Aug 2015 19:34:31 +0000 (19:34 +0000)]
PR middle-end/64744
PR middle-end/48470
PR middle-end/43404
* cfgexpand.c (expand_one_var): Add check if stack is going to
be used in naked function.
* expr.c (expand_expr_addr_expr_1): Remove excess checking
whether expression should not reside in MEM.
* function.c (use_register_for_decl): Do not use registers for
non-register things (volatile, float, BLKMode) in naked functions.
PR middle-end/64744
PR middle-end/48470
PR middle-end/43404
* gcc.target/arm/pr43404.c : New testcase.
* gcc.target/arm/pr48470.c : New testcase.
* gcc.target/arm/pr64744-1.c : New testcase.
* gcc.target/arm/pr64744-2.c : New testcase.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@226528
138bc75d-0d04-0410-961f-
82ee72b054a4
ian [Mon, 3 Aug 2015 18:53:56 +0000 (18:53 +0000)]
compiler: Don't make erroneous type descriptors.
There is no need to make type descriptors for named types when there
are errors during package compilation. Particularly, if the error in
package compilation is from a malformed named type, there is no
guarantee a type descriptor can be created.
Fixes golang/go#11560.
Reviewed-on: https://go-review.googlesource.com/12792
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@226527
138bc75d-0d04-0410-961f-
82ee72b054a4