summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* Empty libgomp for nvptxtschwinge2015-08-1043-6/+79
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * configure.ac (noconfigdirs): Don't add "target-libgomp" for target nvptx*-*-*. * configure: Regenerate. libgomp/ * config/nvptx/affinity.c: New file. * config/nvptx/alloc.c: Likewise. * config/nvptx/bar.c: Likewise. * config/nvptx/barrier.c: Likewise. * config/nvptx/critical.c: Likewise. * config/nvptx/env.c: Likewise. * config/nvptx/error.c: Likewise. * config/nvptx/fortran.c: Likewise. * config/nvptx/iter.c: Likewise. * config/nvptx/iter_ull.c: Likewise. * config/nvptx/libgomp-plugin.c: Likewise. * config/nvptx/lock.c: Likewise. * config/nvptx/loop.c: Likewise. * config/nvptx/loop_ull.c: Likewise. * config/nvptx/mutex.c: Likewise. * config/nvptx/oacc-async.c: Likewise. * config/nvptx/oacc-cuda.c: Likewise. * config/nvptx/oacc-host.c: Likewise. * config/nvptx/oacc-init.c: Likewise. * config/nvptx/oacc-mem.c: Likewise. * config/nvptx/oacc-parallel.c: Likewise. * config/nvptx/oacc-plugin.c: Likewise. * config/nvptx/omp-lock.h: Likewise. * config/nvptx/ordered.c: Likewise. * config/nvptx/parallel.c: Likewise. * config/nvptx/proc.c: Likewise. * config/nvptx/ptrlock.c: Likewise. * config/nvptx/sections.c: Likewise. * config/nvptx/sem.c: Likewise. * config/nvptx/single.c: Likewise. * config/nvptx/splay-tree.c: Likewise. * config/nvptx/target.c: Likewise. * config/nvptx/task.c: Likewise. * config/nvptx/team.c: Likewise. * config/nvptx/time.c: Likewise. * config/nvptx/work.c: Likewise. * configure.ac: Don't probe pthreads support for host nvptx*-*-*. * configure: Regenerate. * configure.tgt (config_path): Set to "nvptx" for target nvptx*-*-*. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@226760 138bc75d-0d04-0410-961f-82ee72b054a4
* Fix offloading machine mode stream readingtschwinge2015-08-105-5/+40
| | | | | | | | | | | | ... in context of the GET_MODE_INNER changes applied in r226328. gcc/ * lto-streamer-in.c (lto_input_mode_table): Adjust to GET_MODE_INNER changes. libgomp/ * testsuite/libgomp.oacc-c-c++-common/vector-type-1.c: New file. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@226759 138bc75d-0d04-0410-961f-82ee72b054a4
* Correctly advance iterator in offloading machine mode stream readingtschwinge2015-08-102-1/+7
| | | | | | | | gcc/ * lto-streamer-in.c (lto_input_mode_table): Correctly advance iterator. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@226758 138bc75d-0d04-0410-961f-82ee72b054a4
* [AArch64] Recommit correct version for improving TLS descriptor patternjiwang2015-08-105-8/+73
| | | | | | | | | | | | | | | | | | | | | | | 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@226757 138bc75d-0d04-0410-961f-82ee72b054a4
* [AArch64] Revert wrong commit of "Improve TLS Descriptor pattern to release ↵jiwang2015-08-103-58/+5
| | | | | | | | | | | | | | | | | | | | | | | RTL loop IV opt" Revert the wrong commit of 2015-08-06 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com> Jiong Wang <jiong.wang@arm.com> * 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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@226756 138bc75d-0d04-0410-961f-82ee72b054a4
* PR fortran/64022uros2015-08-102-2/+61
| | | | | | | | * gfortran.dg/ieee/large_4.f90: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@226755 138bc75d-0d04-0410-961f-82ee72b054a4
* Daily bump.gccadmin2015-08-101-1/+1
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@226754 138bc75d-0d04-0410-961f-82ee72b054a4
* gcc/ChangeLog:manu2015-08-098-21/+55
| | | | | | | | | | | | | | | | | | | | | | | | 2015-08-09 Manuel López-Ibáñez <manu@gcc.gnu.org> * doc/options.texi (EnabledBy): Document that the argument must be a Common option. * doc/invoke.texi (Wnull-dereference): Move after Wnonnull. Not enabled by -Wall. * optc-gen.awk: Give nicer error messages. Detect if the argument of EnabledBy is not a Common option. * common.opt (Wnull-dereference): Not enabled by -Wall. * opt-functions.awk (lang_enabled_by): Nicer error messages. gcc/c-family/ChangeLog: 2015-08-09 Manuel López-Ibáñez <manu@gcc.gnu.org> * c.opt (Wchkp): Use LangEnabledBy instead of EnabledBy. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@226751 138bc75d-0d04-0410-961f-82ee72b054a4
* PR libfortran/66936fxcoudert2015-08-092-0/+11
| | | | | | | * io/unix.c (__MINGW32__): Undefine HAVE_UMASK. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@226750 138bc75d-0d04-0410-961f-82ee72b054a4
* Treat model == 0x4f as Broadwellhjl2015-08-092-0/+6
| | | | | | | | | | | | | | From Intel SDM Vol 3: Table 35-29 lists MSRs that are common to processors based on the Broadwell microarchitectures (including CPUID signatures 06_3DH, 06_47H, 06_4FH, and 06_56H). * config/i386/driver-i386.c (host_detect_local_cpu): Treat model == 0x4f as Broadwell. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@226749 138bc75d-0d04-0410-961f-82ee72b054a4
* * Makefile.am (libquadmath_la_SOURCES): Add math/logbq.c.fxcoudert2015-08-098-19/+89
| | | | | | | | | | | | * Makefile.in: Regenerate. * libquadmath.texi: Document logbq. * quadmath.h: Add logbq prototype. * quadmath.map: Add logbq. * quadmath_weak.h: Add logbq prototype. * math/logbq.c: New file git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@226748 138bc75d-0d04-0410-961f-82ee72b054a4
* Daily bump.gccadmin2015-08-091-1/+1
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@226746 138bc75d-0d04-0410-961f-82ee72b054a4
* 2015-08-09 Ville Voutilainen <ville.voutilainen@gmail.com>ville2015-08-088-1/+1696
| | | | | | | | | | | | | | | | | | Implement N4279, Improved insertion interface for unique-key maps. * include/bits/stl_map.h (try_emplace, insert_or_assign): New. * include/bits/stl_tree.h (_M_get_insert_unique_pos, _M_get_insert_equal_pos, _M_get_insert_hint_unique_pos, _M_get_insert_hint_equal_pos): Make public. * include/bits/unordered_map.h (try_emplace, insert_or_assign): New. * testsuite/23_containers/map/modifiers/insert_or_assign/1.cc: Likewise. * testsuite/23_containers/map/modifiers/try_emplace/1.cc: Likewise. * testsuite/23_containers/unordered_map/modifiers/insert_or_assign.cc: Likewise. * testsuite/23_containers/unordered_map/modifiers/try_emplace.cc: Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@226743 138bc75d-0d04-0410-961f-82ee72b054a4
* PR c++/67144jason2015-08-081-1/+1
| | | | | | * call.c (joust): Only call more_constrained on decls. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@226740 138bc75d-0d04-0410-961f-82ee72b054a4
* PR c++/67152jason2015-08-083-0/+30
| | | | | | | * pt.c (process_partial_specialization): Call associate_classtype_constraints. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@226739 138bc75d-0d04-0410-961f-82ee72b054a4
* PR c++/67159jason2015-08-083-0/+21
| | | | | | | * constraint.cc (finish_template_introduction): SET_NON_DEFAULT_TEMPLATE_ARGS_COUNT. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@226738 138bc75d-0d04-0410-961f-82ee72b054a4
* PR c++/67142jason2015-08-083-0/+22
| | | | | | * pt.c (equal): Make sure tmpl is actually a template. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@226737 138bc75d-0d04-0410-961f-82ee72b054a4
* PR c++/67114jason2015-08-083-8/+32
| | | | | | * call.c (joust): Only call more_constrained on decls. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@226736 138bc75d-0d04-0410-961f-82ee72b054a4
* PR fortran/67059fxcoudert2015-08-082-5/+9
| | | | | | | * gfortranspec.c (lang_specific_driver): Adjust --version output. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@226734 138bc75d-0d04-0410-961f-82ee72b054a4
* 2015-08-08 Ville Voutilainen <ville.voutilainen@gmail.com>ville2015-08-089-102/+233
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Implement N4089 Safe conversions in unique_ptr<T[]> (LWG 2118) and N4366 LWG 2228: Missing SFINAE rule in unique_ptr templated assignment * include/bits/unique_ptr.h (__remove_cv, __is_derived_Tp): Remove. (default_delete::default_delete(const default_delete<_Up[]>)): Constrain with array convertibility. (default_delete::operator(_Up*)): Turn into a template, constrain with array convertibility. (__safe_conversion_up): New, single object version. (unique_ptr(unique_ptr<_Up, _Ep>&&)): Constrain with deleter convertibility. (unique_ptr::operator=(unique_ptr<_Up, _Ep>&&)): Likewise, and add is_assignable as a constraint. (__safe_conversion_up): Array version, renamed from __safe_conversion, updated to implement N4089. (__safe_conversion_raw): New. (unique_ptr(_Up)): Turn into a template, constrain with array convertibility. (unique_ptr(_Up, typename conditional<is_reference<deleter_type>::value, deleter_type, const deleter_type&>::type)): Likewise. (unique_ptr(_Up, typename remove_reference<deleter_type>::type&&)): Likewise. (unique_ptr(unique_ptr<_Up, _Ep>&&)): Likewise. (operator=(unique_ptr<_Up, _Ep>&&)): Likewise, and add is_assignable as a constraint (array version). (reset(_Up)): Turn into a template, constrain with array convertibility. (reset(nullptr_t)): New. * testsuite/20_util/default_delete/48631_neg.cc: Adjust. * testsuite/20_util/unique_ptr/assign/48635.cc: Likewise. * testsuite/20_util/unique_ptr/assign/48635_neg.cc: Likewise. * testsuite/20_util/unique_ptr/assign/cv_qual.cc: Likewise. * testsuite/20_util/unique_ptr/cons/cv_qual.cc: Likewise. * testsuite/20_util/unique_ptr/dr2228.cc: New. * testsuite/20_util/unique_ptr/modifiers/cv_qual.cc: Adjust. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@226733 138bc75d-0d04-0410-961f-82ee72b054a4
* When undoing symbols, also restore common block listsmikael2015-08-084-34/+70
| | | | | | | | | | | | | | | | | | | | gcc/fortran/ 2015-08-08 Bud Davis <jmdavis@link.com> Mikael Morin <mikael@gcc.gnu.org> PR fortran/59746 * symbol.c (gfc_restore_last_undo_checkpoint): Delete a common block symbol if it was put in the list. gcc/testsuite/ 2015-08-08 Bud Davis <jmdavis@link.com> PR fortran/59746 * gfortran.dg/common_22.f90: New. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@226732 138bc75d-0d04-0410-961f-82ee72b054a4
* PR rtl-optimization/67028segher2015-08-084-7/+44
| | | | | | | | | | | | * combine.c (simplify_comparison): Fix comment. Rearrange code. Add test to see if a const_int fits in the new mode. gcc/testsuite/ PR rtl-optimization/67028 * gcc.dg/pr67028.c: New testcase. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@226731 138bc75d-0d04-0410-961f-82ee72b054a4
* * config/rx/rx.c (rx_mode_dependent_address_p): Remove unneeded asserts.dj2015-08-082-2/+4
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@226730 138bc75d-0d04-0410-961f-82ee72b054a4
* Daily bump.gccadmin2015-08-081-1/+1
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@226729 138bc75d-0d04-0410-961f-82ee72b054a4
* PR libfortran/66458fxcoudert2015-08-072-1/+10
| | | | | | | * runtime/main.c (init): Only call set_fpu() if requested by user. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@226725 138bc75d-0d04-0410-961f-82ee72b054a4
* Add alternative_mask to ira_implicitly_set_insn_hard_regshjl2015-08-0710-5/+48
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Since ira_implicitly_set_insn_hard_regs may be called outside of ira-lives.c, it can't use the local variable, preferred_alternatives. This patch adds an alternative_mask argument to ira_implicitly_set_insn_hard_regs. gcc/ PR rtl-optimization/67029 * ira-color.c: Include "recog.h" before including "ira-int.h". * target-globals.c: Likewise. * ira-lives.c (ira_implicitly_set_insn_hard_regs): Add an adds an alternative_mask argument and use it instead of preferred_alternatives. * ira.h (ira_implicitly_set_insn_hard_regs): Moved to ... * ira-int.h (ira_implicitly_set_insn_hard_regs): Here. * sched-deps.c: Include "ira-int.h" after including "ira.h". (sched_analyze_insn): Update call to ira_implicitly_set_insn_hard_regs. * sel-sched.c: Include "ira-int.h" after including "ira.h". (implicit_clobber_conflict_p): Update call to ira_implicitly_set_insn_hard_regs. gcc/testsuite/ PR rtl-optimization/67029 * gcc.dg/pr67029.c: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@226724 138bc75d-0d04-0410-961f-82ee72b054a4
* PR fortran/64104fxcoudert2015-08-076-22/+225
| | | | | | | | | | | | | | | | | | | * expr.c (gfc_check_init_expr): Allow some IEEE functions in constant expressions. (external_spec_function): Allow some IEEE functions in specification expressions. * simplify.c (gfc_simplify_ieee_selected_real_kind): Remove. (simplify_ieee_selected_real_kind, simplify_ieee_support, matches_ieee_function_name, gfc_simplify_ieee_functions): New functions. * gfortran.h (gfc_simplify_ieee_selected_real_kind): Remove prototype. (gfc_simplify_ieee_functions): Add prototype. * gfortran.dg/ieee/ieee_8.f90: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@226723 138bc75d-0d04-0410-961f-82ee72b054a4
* [AArch64] Check branch types for noplt testcasesjiwang2015-08-074-6/+13
| | | | | | | | | | | | | | 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
* * Makefile.in (.INTERMEDIATE): Add gpl.pod.uros2015-08-072-2/+7
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@226720 138bc75d-0d04-0410-961f-82ee72b054a4
* libgo/testsuite: don't call kill without argsian2015-08-072-2/+5
| | | | | | | | | | | 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
* villejason2015-08-071-0/+1
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@226716 138bc75d-0d04-0410-961f-82ee72b054a4
* * config/sh/sh.c (sh_recog_treg_set_expr): Return false duringkkojima2015-08-072-0/+12
| | | | | | | | 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
* * doc/texi2pod.pl: Escape braces in regexp involving @strong{...}.uros2015-08-072-1/+5
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@226714 138bc75d-0d04-0410-961f-82ee72b054a4
* Add C++ Concepts TS support.jason2015-08-07158-243/+10006
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* 2015-08-06 Yaakov Selkowitz <yselkowi@redhat.com>dj2015-08-0710-678/+992
| | | | | | | | | | | | | | | | | | | | | | | | | | * 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
* Daily bump.gccadmin2015-08-071-1/+1
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@226705 138bc75d-0d04-0410-961f-82ee72b054a4
* Move one condition out of gfc_trans_scalar_assignmikael2015-08-065-23/+33
| | | | | | | | | | | | | | | | * 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
* jit.dg/test-benchmark.c: add a summary of timingsdmalcolm2015-08-062-3/+20
| | | | | | | | | | 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
* * runtime/compile_options.c (set_options): Fix typos.fxcoudert2015-08-062-2/+6
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@226686 138bc75d-0d04-0410-961f-82ee72b054a4
* PR c++/66533jason2015-08-063-1/+9
| | | | | | | * 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
* [AArch64] Improve TLS Descriptor pattern to release RTL loop IV optjiwang2015-08-065-5/+75
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* [AArch64] Tighten direct call pattern for sibcall to repair -fno-pltjiwang2015-08-064-2/+32
| | | | | | | | | | | | | | | 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
* [AArch64] Tighten direct call pattern to repair -fno-pltjiwang2015-08-067-2/+68
| | | | | | | | | | | | | | | | | | 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
* PR c++/67130jason2015-08-065-1/+67
| | | | | | | | | | | 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
* Vectorize mult expressions with power 2 constants via shift, for targets has ↵vekumar2015-08-066-1/+200
| | | | | | | | | | | | | | | | | | | | 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
* * config/i386/sse.md (*vec_concatv2df): Declare addeduros2015-08-062-1/+6
| | | | | | | | alternatives as sselog type. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@226674 138bc75d-0d04-0410-961f-82ee72b054a4
* S/390: Fix dwarf reg size table for -m31 -mzarch.krebbel2015-08-066-0/+77
| | | | | | | | | | | | | | | | 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
* S/390: Clobber VRs in __builtin_tbegin.krebbel2015-08-065-1/+81
| | | | | | | | | | | | | | 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
* S/390: Doc: Add documentation for -mhtm, -mvx, and -mzvector.krebbel2015-08-063-1/+49
| | | | | | | | | | | 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
* PR fortran/64022fxcoudert2015-08-063-0/+308
| | | | | | | | * 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