[all-commits] [llvm/llvm-project] 721651: [HLSL][clang][Driver] Support target profile comma...

Xiang Li via All-commits all-commits at lists.llvm.org
Fri Apr 15 12:18:34 PDT 2022


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 721651be246e26efd767c3ec55c8f06c7b5a9a3d
      https://github.com/llvm/llvm-project/commit/721651be246e26efd767c3ec55c8f06c7b5a9a3d
  Author: Xiang Li <python3kgae at outlook.com>
  Date:   2022-04-15 (Fri, 15 Apr 2022)

  Changed paths:
    M clang/include/clang/Basic/DiagnosticDriverKinds.td
    M clang/include/clang/Driver/Driver.h
    M clang/include/clang/Driver/Options.h
    M clang/include/clang/Driver/Options.td
    M clang/lib/Driver/CMakeLists.txt
    M clang/lib/Driver/Driver.cpp
    M clang/lib/Driver/ToolChain.cpp
    A clang/lib/Driver/ToolChains/HLSL.cpp
    A clang/lib/Driver/ToolChains/HLSL.h
    M clang/lib/Driver/Types.cpp
    M clang/test/lit.cfg.py
    M clang/unittests/Driver/ToolChainTest.cpp

  Log Message:
  -----------
  [HLSL][clang][Driver] Support target profile command line option.

The target profile option(/T) decide the shader model when compile hlsl.
The format is shaderKind_major_minor like ps_6_1.
The shader model is saved as llvm::Triple is clang/llvm like
dxil-unknown-shadermodel6.1-hull.
The main job to support the option is translating ps_6_1 into
shadermodel6.1-pixel.
That is done inside tryParseProfile  at HLSL.cpp.

To integrate the option into clang Driver, a new DriverMode DxcMode is
created. When DxcMode is enabled, OSType for TargetTriple will be
forced into Triple::ShaderModel. And new ToolChain HLSLToolChain will
be created when OSType is Triple::ShaderModel.

In HLSLToolChain, ComputeEffectiveClangTriple is overridden to call
tryParseProfile when targetProfile option is set.

To make test work, Fo option is added and .hlsl is added for active
-xhlsl.

Reviewed By: beanz

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

Patch by: Xiang Li <python3kgae at outlook.com>




More information about the All-commits mailing list