Description
After Clang code generation and LLVM optimizations, the code related to resource arrays will most likely require some changes in LLVM backend passes.
The existing DXILForwardHandleAccesses
pass aims to eliminate redundant stores
and loads
from resource handle globals. However, it currently expects resource handles to be loaded from a global variable, which is not the case for resource array element handles.
Additionally, local resource arrays and their copies tend to generate IR code that includes resource handles stored in local variables (using alloca
and lifetime markers), with load
and store
operations on those handles through an i32
type. These will need to be either cleaned up in the DXILForwardHandleAccesses
pass, or changes may need to be made to Clang codegen for array copying or to subsequent LLVM array optimizations to eliminate these unwanted constructs. The scope of this work is currently TBD.
Metadata
Metadata
Assignees
Type
Projects
Status