[all-commits] [llvm/llvm-project] 59f082: [clang] Instantiate alias templates with sugar=0D

Matheus Izvekov via All-commits all-commits at lists.llvm.org
Wed Oct 26 21:35:55 PDT 2022


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 59f0827e2cf3755834620e7e0b6d946832440f80
      https://github.com/llvm/llvm-project/commit/59f0827e2cf3755834620e7e0b6d946832440f80
  Author: Matheus Izvekov <mizvekov at gmail.com>
  Date:   2022-10-27 (Thu, 27 Oct 2022)

  Changed paths:
    M clang-tools-extra/clangd/unittests/HoverTests.cpp
    M clang/lib/Sema/SemaTemplate.cpp
    M clang/test/AST/ast-dump-template-decls.cpp
    M clang/test/CXX/temp/temp.deduct.guide/p3.cpp
    M clang/test/Misc/diag-template-diffing.cpp
    M clang/test/SemaCXX/sizeless-1.cpp
    M clang/test/SemaTemplate/make_integer_seq.cpp
    M clang/test/SemaTemplate/temp_arg_nontype.cpp
    M lldb/test/API/commands/expression/import-std-module/shared_ptr/TestSharedPtrFromStdModule.py
    M lldb/test/API/commands/expression/import-std-module/weak_ptr-dbg-info-content/TestDbgInfoContentWeakPtrFromStdModule.py
    M lldb/test/API/commands/expression/import-std-module/weak_ptr/TestWeakPtrFromStdModule.py

  Log Message:
  -----------
  [clang] Instantiate alias templates with sugar

This makes use of the changes introduced in D134604, in order to
instantiate alias templates witn a final sugared substitution.

This comes at no additional relevant cost.
Since we don't track / unique them in specializations, we wouldn't be
able to resugar them later anyway.

Signed-off-by: Matheus Izvekov <mizvekov at gmail.com>

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


  Commit: b8064374b217db061213c561ec8f3376681ff9c8
      https://github.com/llvm/llvm-project/commit/b8064374b217db061213c561ec8f3376681ff9c8
  Author: Matheus Izvekov <mizvekov at gmail.com>
  Date:   2022-10-27 (Thu, 27 Oct 2022)

  Changed paths:
    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/cxx2a-constraint-caching.cpp
    M clang/test/SemaTemplate/instantiate-requires-expr.cpp
    M clang/test/SemaTemplate/pr52970.cpp

  Log Message:
  -----------
  [clang] 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.

Signed-off-by: Matheus Izvekov <mizvekov at gmail.com>

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


Compare: https://github.com/llvm/llvm-project/compare/d4b1964f0554...b8064374b217


More information about the All-commits mailing list