[PATCH] D123884: [HLSL][clang][Driver] Support target profile command line option.

Xiang Li via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Fri Apr 15 16:19:23 PDT 2022


python3kgae created this revision.
python3kgae added a project: clang.
Herald added subscribers: ormris, dexonsmith, okura, jdoerfert, kuter, arphaman, mgorny.
Herald added a project: All.
python3kgae requested review of this revision.
Herald added subscribers: llvm-commits, cfe-commits, sstefan1, MaskRay.
Herald added a reviewer: jdoerfert.
Herald added a reviewer: jdoerfert.
Herald added a reviewer: sstefan1.
Herald added a reviewer: baziotis.
Herald added a project: LLVM.

The DXIL validator version option(/validator-version) decide the validator version when compile hlsl.
The format is major.minor like 1.0.

In normal case, the value of validator version should be got from DXIL validator. Before we got DXIL validator ready for llvm/main, DXIL validator version option is added first to set validator version.

It will affect code generation for DXIL, so it is treated as a code gen option.

A new member std::string DxilValidatorVersion is added to clang::CodeGenOptions.

Then CGHLSLRuntime is added to clang::CodeGenModule.
It is used to translate clang::CodeGenOptions::DxilValidatorVersion into a ModuleFlag under key "dx.valver" at end of clang code generation.


Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D123884

Files:
  clang/include/clang/Basic/CodeGenOptions.h
  clang/include/clang/Basic/DiagnosticDriverKinds.td
  clang/include/clang/Driver/Options.td
  clang/lib/CodeGen/CGHLSLRuntime.cpp
  clang/lib/CodeGen/CGHLSLRuntime.h
  clang/lib/CodeGen/CMakeLists.txt
  clang/lib/CodeGen/CodeGenModule.cpp
  clang/lib/CodeGen/CodeGenModule.h
  clang/lib/Driver/ToolChains/Clang.cpp
  clang/lib/Driver/ToolChains/HLSL.cpp
  clang/lib/Driver/ToolChains/HLSL.h
  clang/test/CodeGenHLSL/validator_version.hlsl
  clang/unittests/Driver/ToolChainTest.cpp
  llvm/include/llvm/Transforms/IPO/Attributor.h
  llvm/test/Transforms/Attributor/ArgumentPromotion/2008-02-01-ReturnAttrs.ll
  llvm/test/Transforms/Attributor/ArgumentPromotion/2008-07-02-array-indexing.ll
  llvm/test/Transforms/Attributor/ArgumentPromotion/2008-09-07-CGUpdate.ll
  llvm/test/Transforms/Attributor/ArgumentPromotion/X86/attributes.ll
  llvm/test/Transforms/Attributor/ArgumentPromotion/X86/min-legal-vector-width.ll
  llvm/test/Transforms/Attributor/ArgumentPromotion/X86/thiscall.ll
  llvm/test/Transforms/Attributor/ArgumentPromotion/aggregate-promote.ll
  llvm/test/Transforms/Attributor/ArgumentPromotion/alignment.ll
  llvm/test/Transforms/Attributor/ArgumentPromotion/alloca-as.ll
  llvm/test/Transforms/Attributor/ArgumentPromotion/array.ll
  llvm/test/Transforms/Attributor/ArgumentPromotion/attrs.ll
  llvm/test/Transforms/Attributor/ArgumentPromotion/basictest.ll
  llvm/test/Transforms/Attributor/ArgumentPromotion/byval-2.ll
  llvm/test/Transforms/Attributor/ArgumentPromotion/byval.ll
  llvm/test/Transforms/Attributor/ArgumentPromotion/chained.ll
  llvm/test/Transforms/Attributor/ArgumentPromotion/control-flow.ll
  llvm/test/Transforms/Attributor/ArgumentPromotion/control-flow2.ll
  llvm/test/Transforms/Attributor/ArgumentPromotion/crash.ll
  llvm/test/Transforms/Attributor/ArgumentPromotion/fp80.ll
  llvm/test/Transforms/Attributor/ArgumentPromotion/inalloca.ll
  llvm/test/Transforms/Attributor/ArgumentPromotion/live_called_from_dead.ll
  llvm/test/Transforms/Attributor/ArgumentPromotion/live_called_from_dead_2.ll
  llvm/test/Transforms/Attributor/ArgumentPromotion/musttail.ll
  llvm/test/Transforms/Attributor/ArgumentPromotion/pr32917.ll
  llvm/test/Transforms/Attributor/ArgumentPromotion/profile.ll
  llvm/test/Transforms/Attributor/ArgumentPromotion/reserve-tbaa.ll
  llvm/test/Transforms/Attributor/ArgumentPromotion/sret.ll
  llvm/test/Transforms/Attributor/ArgumentPromotion/variadic.ll
  llvm/test/Transforms/Attributor/IPConstantProp/2008-06-09-WeakProp.ll
  llvm/test/Transforms/Attributor/IPConstantProp/2009-09-24-byval-ptr.ll
  llvm/test/Transforms/Attributor/IPConstantProp/PR16052.ll
  llvm/test/Transforms/Attributor/IPConstantProp/PR26044.ll
  llvm/test/Transforms/Attributor/IPConstantProp/PR43857.ll
  llvm/test/Transforms/Attributor/IPConstantProp/arg-count-mismatch.ll
  llvm/test/Transforms/Attributor/IPConstantProp/comdat-ipo.ll
  llvm/test/Transforms/Attributor/IPConstantProp/multiple_callbacks.ll
  llvm/test/Transforms/Attributor/IPConstantProp/musttail-call.ll
  llvm/test/Transforms/Attributor/IPConstantProp/openmp_parallel_for.ll
  llvm/test/Transforms/Attributor/IPConstantProp/pthreads.ll
  llvm/test/Transforms/Attributor/IPConstantProp/recursion.ll
  llvm/test/Transforms/Attributor/IPConstantProp/remove-call-inst.ll
  llvm/test/Transforms/Attributor/IPConstantProp/return-argument.ll
  llvm/test/Transforms/Attributor/IPConstantProp/return-constant.ll
  llvm/test/Transforms/Attributor/IPConstantProp/return-constants.ll
  llvm/test/Transforms/Attributor/IPConstantProp/solve-after-each-resolving-undefs-for-function.ll
  llvm/test/Transforms/Attributor/IPConstantProp/thread_local_acs.ll
  llvm/test/Transforms/Attributor/align.ll
  llvm/test/Transforms/Attributor/alwaysinline.ll
  llvm/test/Transforms/Attributor/assumes_info.ll
  llvm/test/Transforms/Attributor/callbacks.ll
  llvm/test/Transforms/Attributor/cb_liveness_disabled.ll
  llvm/test/Transforms/Attributor/cb_liveness_enabled.ll
  llvm/test/Transforms/Attributor/cb_range_disabled.ll
  llvm/test/Transforms/Attributor/cb_range_enabled.ll
  llvm/test/Transforms/Attributor/dereferenceable-1.ll
  llvm/test/Transforms/Attributor/internal-noalias.ll
  llvm/test/Transforms/Attributor/liveness.ll
  llvm/test/Transforms/Attributor/memory_locations.ll
  llvm/test/Transforms/Attributor/noalias.ll
  llvm/test/Transforms/Attributor/nocapture-1.ll
  llvm/test/Transforms/Attributor/nocapture-2.ll
  llvm/test/Transforms/Attributor/nodelete.ll
  llvm/test/Transforms/Attributor/nofree.ll
  llvm/test/Transforms/Attributor/nonnull.ll
  llvm/test/Transforms/Attributor/norecurse.ll
  llvm/test/Transforms/Attributor/noreturn.ll
  llvm/test/Transforms/Attributor/nounwind.ll
  llvm/test/Transforms/Attributor/openmp_parallel.ll
  llvm/test/Transforms/Attributor/potential.ll
  llvm/test/Transforms/Attributor/range.ll
  llvm/test/Transforms/Attributor/read_write_returned_arguments_scc.ll
  llvm/test/Transforms/Attributor/readattrs.ll
  llvm/test/Transforms/Attributor/returned.ll
  llvm/test/Transforms/Attributor/undefined_behavior.ll
  llvm/test/Transforms/Attributor/value-simplify-assume.ll
  llvm/test/Transforms/Attributor/value-simplify-gpu.ll
  llvm/test/Transforms/Attributor/value-simplify-instances.ll
  llvm/test/Transforms/Attributor/value-simplify-pointer-info.ll
  llvm/test/Transforms/Attributor/value-simplify.ll
  llvm/test/Transforms/Attributor/willreturn.ll
  llvm/test/Transforms/OpenMP/icv_tracking.ll



More information about the llvm-commits mailing list