python3kgae marked 6 inline comments as done.
python3kgae added inline comments.
================
Comment at: clang/include/clang/Driver/Types.def:110
TYPE("api-information", API_INFO, INVALID, "json",
phases::Precompile)
+TYPE("dx-container", DX_CONTAINER, INVALID, "dxc",
phases::Compile, phases::Backend)
TYPE("none", Nothing, INVALID, nullptr,
phases::Compile, phases::Backend, phases::Assemble, phases::Link)
----------------
beanz wrote:
> The normal dx-container extension is `dxbc` right? not `dxc`?
There's no official extension.
Will go with dxo.
================
Comment at: clang/lib/Driver/Driver.cpp:4218
+ // Only add action when needValidation.
+ if (toolchains::HLSLToolChain::needValidation(Args, *this,
+ C.getDefaultToolChain())) {
----------------
jhuber6 wrote:
> python3kgae wrote:
> > jhuber6 wrote:
> > > This should work, shouldn't it?
> > > ```
> > > const auto &TC = static_cast<const toolchains::HLSLToolChain
> > > &>(getToolChain());
> > > ```
> > I'm not sure getToolChain will return a HLSLToolChain.
> > Is it OK to use dynamic_cast?
> Well, how is the compilation normally invoked? The `Driver::getToolChain()`
> function clearly returns an `HLSLToolChain` if the triple is `ShaderModel`.
> I'm assuming that's the only way to create this, and its set in the
> compilation. So it should be the ToolChain of the main compilation. This is
> in contract to an offloading compilation that can have multiple toolchains
> floating around I'm guessing.
>
> And no, `dynamic_cast` doesn't work in LLVM. LLVM RTTI requires implementing
> a `classof` function, e.g.
> https://llvm.org/docs/HowToSetUpLLVMStyleRTTI.html, which the ToolChains
> don't use.
```
const auto &TC = static_cast<const toolchains::HLSLToolChain *>(
getToolChain(Args, C.getDefaultToolChain().getTriple()));
```
will hit " no viable conversion from 'const clang::driver::ToolChain' to 'const
toolchains::HLSLToolChain'"
```
const auto &TC = getToolChain(Args, C.getDefaultToolChain().getTriple());
const auto *HLSLTC = static_cast<const toolchains::HLSLToolChain *>(&TC);
```
works, is it OK?
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D141705/new/
https://reviews.llvm.org/D141705
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits