Given a select whose result is an i1, we can eliminate the conditional in the select completely by adding a few arithmetic operations.
Details
Diff Detail
- Repository
- rG LLVM Github Monorepo
Event Timeline
| mlir/lib/Dialect/StandardOps/IR/Ops.cpp | ||
|---|---|---|
| 833–840 | Always avoid nesting multiple IR-creating calls. It can lead to an unpredictable "order of evaluation" dependent output that is sensitive to compilers, their versions, and options. | |
| mlir/test/Dialect/Standard/canonicalize.mlir | ||
| 102–104 | An unstable/unknown order isn't desirable. | |
Given a select whose result is an i1, we can eliminate the conditional branch completely by adding a few arithmetic operations.
Nit: Could you clarify which conditional branch you are referring to here? Is it the conditional branch in machine instruction for those architectures without a select instruction?
| mlir/lib/Dialect/StandardOps/IR/Ops.cpp | ||
|---|---|---|
| 816 | Nit: This comment probably needs an update. | |
Nit: This comment probably needs an update.