Skip to content

[DirectX] Generate appropriate DXIL Op attributes #114461

@pow2clk

Description

@pow2clk

The DxilOpLower pass does not apply attributes indicated by DXIL.td. In addition, the DXIL Op tablegen emitter doesn't properly include multiple attributes for the Op as it tries to OR them together like stages. Attribute values aren't represented as single bit values, so this won't work. Instead we need to represent them as a simplevector of attribute values. These will need to be read in DxilOpLower and assigned to the output dxilop calls.

AC:

  • Update DXILEmitter.cpp to emit attributes as a list
  • Update DXILOpBuilder.cpp to set these attributes on the generated DXIL op
  • Update DXILEmitter.cpp and DXILOpBuilder.cpp to make sure ReadOnly and ReadNone generate the right memory function attribute.
  • Update testcases in llvm/test/CodeGen/DirectX to ensure correct attribute generation

Metadata

Metadata

Assignees

Type

No type

Projects

Status

Closed

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions