[llvm-branch-commits] [llvm] [DirectX] Make DXILOpBuilder's API more useable (PR #101250)
Justin Bogner via llvm-branch-commits
llvm-branch-commits at lists.llvm.org
Wed Jul 31 11:27:42 PDT 2024
bogner wrote:
> I do not see the invocation of any of the newly created functions in `class DXILOpbuilder` specific to DXIL Ops `create##Name##Op(...)` or `tryCreate##Name##Op(...)` (for example `createSinSin13()` or `tryCreateSin13()` when lowering `llvm.sin.*`). Are these in preparation for upcoming changes?
The intention is to make it a little bit cleaner when we do custom lowering, so that we can call `Builder->createCreateHandleFromBindingOp(...)` directly rather than having to do something like `Builder->createOp(DXILOp::CreateHandleFromBinding, ...)`.
> It appears that macro defs `DXIL_OPCODE` are generated in `DXILEmitter` with its definition is in `DXILOpBuilder.h`. Would you consider generating the `tryCreate<Name><Code>(...)` and `create<Name><Code>(...)` for each of DXIL Ops in `DXILEmitter`, instead, to keep the entire function generation functionality in a single place i.e., `DXILEmitter`?
I don't understand the suggestion. If you're saying we should emit the full text of the declarations from DXILEmitter rather than the table of simple macros then I disagree with that approach - generating full fledged C++ snippets from tablegen should be avoided when possible, as it's quite a bit harder to see what's happening when it's done that way.
https://github.com/llvm/llvm-project/pull/101250
More information about the llvm-branch-commits
mailing list