diff options
| author | Dimitry Andric <dim@FreeBSD.org> | 2023-12-18 20:30:12 +0000 |
|---|---|---|
| committer | Dimitry Andric <dim@FreeBSD.org> | 2024-04-06 20:11:55 +0000 |
| commit | 5f757f3ff9144b609b3c433dfd370cc6bdc191ad (patch) | |
| tree | 1b4e980b866cd26a00af34c0a653eb640bd09caf /contrib/llvm-project/llvm/lib/Transforms/Utils/DXILUpgrade.cpp | |
| parent | 3e1c8a35f741a5d114d0ba670b15191355711fe9 (diff) | |
| parent | 312c0ed19cc5276a17bacf2120097bec4515b0f1 (diff) | |
Diffstat (limited to 'contrib/llvm-project/llvm/lib/Transforms/Utils/DXILUpgrade.cpp')
| -rw-r--r-- | contrib/llvm-project/llvm/lib/Transforms/Utils/DXILUpgrade.cpp | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/contrib/llvm-project/llvm/lib/Transforms/Utils/DXILUpgrade.cpp b/contrib/llvm-project/llvm/lib/Transforms/Utils/DXILUpgrade.cpp new file mode 100644 index 000000000000..735686ddce38 --- /dev/null +++ b/contrib/llvm-project/llvm/lib/Transforms/Utils/DXILUpgrade.cpp @@ -0,0 +1,36 @@ +//===- DXILUpgrade.cpp - Upgrade DXIL metadata to LLVM constructs ---------===// +// +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception +// +//===----------------------------------------------------------------------===// + +#include "llvm/Transforms/Utils/DXILUpgrade.h" + +using namespace llvm; + +static bool handleValVerMetadata(Module &M) { + NamedMDNode *ValVer = M.getNamedMetadata("dx.valver"); + if (!ValVer) + return false; + + // We don't need the validation version internally, so we drop it. + ValVer->dropAllReferences(); + ValVer->eraseFromParent(); + return true; +} + +PreservedAnalyses DXILUpgradePass::run(Module &M, ModuleAnalysisManager &AM) { + PreservedAnalyses PA; + // We never add, remove, or change functions here. + PA.preserve<FunctionAnalysisManagerModuleProxy>(); + PA.preserveSet<AllAnalysesOn<Function>>(); + + bool Changed = false; + Changed |= handleValVerMetadata(M); + + if (!Changed) + return PreservedAnalyses::all(); + return PA; +} |
