[all-commits] [llvm/llvm-project] 8e35c8: [HLSL] Apply resource attributes to the resource t...

Helena Kotas via All-commits all-commits at lists.llvm.org
Thu Sep 5 21:50:21 PDT 2024


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 8e35c86977ce5529a9387657321ac9fefcdae5b5
      https://github.com/llvm/llvm-project/commit/8e35c86977ce5529a9387657321ac9fefcdae5b5
  Author: Helena Kotas <hekotas at microsoft.com>
  Date:   2024-09-05 (Thu, 05 Sep 2024)

  Changed paths:
    M clang/include/clang/AST/TypeLoc.h
    M clang/include/clang/Basic/Attr.td
    M clang/include/clang/Basic/DiagnosticSemaKinds.td
    M clang/include/clang/Sema/SemaHLSL.h
    M clang/lib/AST/TypePrinter.cpp
    M clang/lib/CodeGen/CGHLSLRuntime.cpp
    M clang/lib/Sema/HLSLExternalSemaSource.cpp
    M clang/lib/Sema/SemaDeclAttr.cpp
    M clang/lib/Sema/SemaHLSL.cpp
    M clang/lib/Sema/TreeTransform.h
    M clang/test/AST/HLSL/RWBuffer-AST.hlsl
    M clang/test/Misc/pragma-attribute-supported-attributes-list.test
    M clang/test/ParserHLSL/hlsl_is_rov_attr.hlsl
    M clang/test/ParserHLSL/hlsl_is_rov_attr_error.hlsl
    M clang/test/ParserHLSL/hlsl_resource_class_attr.hlsl
    M clang/test/ParserHLSL/hlsl_resource_class_attr_error.hlsl
    M clang/test/ParserHLSL/hlsl_resource_handle_attrs.hlsl
    M clang/test/SemaHLSL/resource_binding_attr_error.hlsl
    M clang/test/SemaHLSL/resource_binding_attr_error_resource.hlsl
    M clang/test/SemaHLSL/resource_binding_attr_error_udt.hlsl

  Log Message:
  -----------
  [HLSL] Apply resource attributes to the resource type rather than the handle member (#107160)

Converts existing resource attributes `[[hlsl::resource_class(..)]]` and
`[[is_rov]]` from declaration attributes to type attributes.

During type attribute processing all HLSL resource type attributes are
validated and collected by `SemaHLSL`
(`SemaHLSL::handleResourceTypeAttr`). At the end of the declaration they
are be combined into a single `HLSLAttributedResourceType` instance
(`SemaHLSL::ProcessResourceTypeAttributes`) that wraps the original type
and stores all of the necessary information about the resource.

`SemaHLSL` will also need to short-term-store the `TypeLoc` information
for the newly created type that will be grabbed by `TypeSpecLocFiller`
soon after it is created.

Updates all places that expected resource attributes on declarations
like resource binding diagnostic, builtin types in
HLSLExternalSemaSource, or codegen.

Also includes implementation of
`TreeTransform<Derived>::TransformHLSLAttributedResourceType` that
enables the use of attributed resource types inside templates.

Fixes #104861
Part 2/2



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