A new pass DxilEmitMetadata is added to translate information saved in llvm ir into metadata to match DXIL spec.
Only generate DXIL validator version in this PR.
In llvm ir, validator version is saved in ModuleFlag with "dx.valver" as Key.
!llvm.module.flags = !{!0, !1}
!1 = !{i32 6, !"dx.valver", !2}
!2 = !{i32 1, i32 1}
DXIL validator version has major and minor versions that are specified as named metadata:
!dx.valver = !{!2}
!2 = !{i32 1, i32 7}
Reviewed By: kuhar, beanz
Differential Revision: https://reviews.llvm.org/D125158
41 lines
1.3 KiB
C++
41 lines
1.3 KiB
C++
//===- DirectXTargetMachine.h - DirectX Target Implementation ---*- C++ -*-===//
|
|
//
|
|
// 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
|
|
//
|
|
//===----------------------------------------------------------------------===//
|
|
///
|
|
//===----------------------------------------------------------------------===//
|
|
|
|
#ifndef LLVM_LIB_TARGET_DIRECTX_DIRECTX_H
|
|
#define LLVM_LIB_TARGET_DIRECTX_DIRECTX_H
|
|
|
|
namespace llvm {
|
|
class ModulePass;
|
|
class PassRegistry;
|
|
|
|
/// Initializer for dxil writer pass
|
|
void initializeWriteDXILPassPass(PassRegistry &);
|
|
|
|
/// Initializer for DXIL-prepare
|
|
void initializeDXILPrepareModulePass(PassRegistry &);
|
|
|
|
/// Pass to convert modules into DXIL-compatable modules
|
|
ModulePass *createDXILPrepareModulePass();
|
|
|
|
/// Initializer for DXILOpLowering
|
|
void initializeDXILOpLoweringLegacyPass(PassRegistry &);
|
|
|
|
/// Pass to lowering LLVM intrinsic call to DXIL op function call.
|
|
ModulePass *createDXILOpLoweringLegacyPass();
|
|
|
|
/// Initializer for DXILTranslateMetadata.
|
|
void initializeDXILTranslateMetadataPass(PassRegistry &);
|
|
|
|
/// Pass to emit metadata for DXIL.
|
|
ModulePass *createDXILTranslateMetadataPass();
|
|
} // namespace llvm
|
|
|
|
#endif // LLVM_LIB_TARGET_DIRECTX_DIRECTX_H
|