[all-commits] [llvm/llvm-project] 9919bb: [clang] Reland: Instantiate concepts with sugared ...

Matheus Izvekov via All-commits all-commits at lists.llvm.org
Fri Aug 2 19:35:06 PDT 2024


  Branch: refs/heads/users/mizvekov/clang-sugar-substitute-concepts
  Home:   https://github.com/llvm/llvm-project
  Commit: 9919bb4550f266375be19ce2af46735fb451ff86
      https://github.com/llvm/llvm-project/commit/9919bb4550f266375be19ce2af46735fb451ff86
  Author: Matheus Izvekov <mizvekov at gmail.com>
  Date:   2024-08-02 (Fri, 02 Aug 2024)

  Changed paths:
    M clang/docs/ReleaseNotes.rst
    M clang/include/clang/Sema/Template.h
    M clang/lib/Sema/SemaConcept.cpp
    M clang/lib/Sema/SemaExprCXX.cpp
    M clang/lib/Sema/SemaTemplate.cpp
    M clang/lib/Sema/SemaTemplateDeduction.cpp
    M clang/lib/Serialization/ASTReaderDecl.cpp
    M clang/test/AST/ast-dump-concepts.cpp
    M clang/test/CXX/expr/expr.prim/expr.prim.req/compound-requirement.cpp
    M clang/test/CXX/expr/expr.prim/expr.prim.req/nested-requirement.cpp
    M clang/test/CXX/expr/expr.prim/expr.prim.req/simple-requirement.cpp
    M clang/test/CXX/expr/expr.prim/expr.prim.req/type-requirement.cpp
    M clang/test/CXX/temp/temp.constr/temp.constr.normal/p1.cpp
    M clang/test/CXX/temp/temp.param/p10-2a.cpp
    M clang/test/SemaTemplate/concepts-recursive-inst.cpp
    M clang/test/SemaTemplate/concepts.cpp
    M clang/test/SemaTemplate/instantiate-requires-expr.cpp
    M clang/test/SemaTemplate/pr52970.cpp
    M libcxx/test/libcxx/algorithms/cpp17_iterator_concepts.verify.cpp

  Log Message:
  -----------
  [clang] Reland: Instantiate concepts with sugared template arguments

Since we don't unique specializations for concepts, we can just instantiate
them with the sugared template arguments, at negligible cost.

If we don't track their specializations, we can't resugar them later
anyway, and that would be more expensive than just instantiating them
sugared in the first place since it would require an additional pass.

This was a previously reverted patch due to a performance regression,
which was very simple to fix, as we were only missing the
canonicalizations for the key to the satisfcation cache.

Fixes #59271

Differential Revision: https://reviews.llvm.org/D136566



To unsubscribe from these emails, change your notification settings at https://github.com/llvm/llvm-project/settings/notifications


More information about the All-commits mailing list