Skip to content

[SPIRV] Remove isOpcodeWithNoSideEffects and intrinsicHasSideEffects in SPIR-V instruction selection #168736

@s-perron

Description

@s-perron

In #168428, two helper functions were introduced. The identify opcodes and intrinsics that have no side effects.

We did not use the hasSideEffects = false for the opcode because this would cause the shared code in instruction selection to delete the instructions without updating the global registry. That can cause problems in instruction selection and later passes because there will be dangling pointers.

We need to determine a longer term strategy for handling these. Should we add a target specific property to intrinsics and opcodes? Are the extra bits in the opcode table worth it?

Can we remove our dependence on values cached in the global registry so that we can use the existing instructions for many of these opcodes and intrinsics?

Metadata

Metadata

Assignees

Type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions