Lines Matching full:dxil

2 Architecture and Design of DXIL Support in LLVM
15 <https://github.com/microsoft/DirectXShaderCompiler/blob/main/docs/DXIL.rst>`_,
16 or DXIL. DXIL is essentially LLVM 3.7 era bitcode with some
20 LLVM's implementation philosophy for DXIL support is to treat DXIL as
21 merely a representation format as much as possible. When reading DXIL,
23 possible. Similarly, we should introduce DXIL-specific constructs as
26 There are three places to look for DXIL related code in LLVM: The
27 `DirectX` backend, for writing DXIL; The `DXILUpgrade` pass, for
35 and writing DXIL in order to avoid code duplication. While we don't
38 values that must stay fixed to match DXIL's ABI can be found in
40 DXIL and modern LLVM constructs live in `lib/Transforms/Utils`, and
47 Translating DXIL to LLVM IR takes advantage of the fact that DXIL is
51 number of DXIL specific constructs around. Thus, we have the
52 `DXILUpgrade` pass to transform DXIL operations to LLVM operations and
55 process and simply finishes the job for DXIL constructs - while
66 There are intrinsics that don't map directly to DXIL Ops. In some cases
69 values of a DXIL Op. The `DXILIntrinsicExpansion` pass handles all
71 pass may also be used when the expansion is specific to DXIL to keep
80 The DirectX backend lowers LLVM IR into DXIL. As we're transforming to
83 with from other backends. There are two parts to lowering DXIL - a set
85 DXIL represents those constructs, followed by a limited bitcode
88 Before emitting DXIL, the DirectX backend needs to modify the LLVM IR
90 the way that DXIL expects. For example, `DXILOpLowering` translates
97 The second part of DXIL emission is more or less an LLVM bitcode
108 The code generation flow for DXIL is broken into a series of passes. The passes
111 #. Generating DXIL IR.
112 #. Generating DXIL Binary.
114 The passes to generate DXIL IR follow the flow:
121 #. DXILPrepare transforms the DXIL IR to be compatible with LLVM 3.7, and
123 #. DXILTranslateMetadata emits the DXIL Metadata structures.
125 The passes to encode DXIL to binary in the DX Container follow the flow:
131 #. DXILEmbedder runs the DXIL bitcode writer to generate a bitcode stream and
137 When emitting DXIL into a DX Container file the MC layer is used in a similar
154 A lot of DXIL testing can be done with typical IR to IR tests using
161 However, when it comes to testing the DXIL format itself, IR passes
164 These tests are currently found in `test/tools/dxil-dis` and are only
167 DXIL reading path.
169 As soon as we are able, we will also want to round trip using the DXIL
171 get test coverage when `dxil-dis` isn't available.