Skip to content

[LLVMGPU] Preserve swizzle attributes through pipelining#24002

Draft
Yu-Zhewen wants to merge 1 commit intoiree-org:mainfrom
Yu-Zhewen:pipeliner-swizzle-hint-3
Draft

[LLVMGPU] Preserve swizzle attributes through pipelining#24002
Yu-Zhewen wants to merge 1 commit intoiree-org:mainfrom
Yu-Zhewen:pipeliner-swizzle-hint-3

Conversation

@Yu-Zhewen
Copy link
Copy Markdown
Contributor

@Yu-Zhewen Yu-Zhewen commented Apr 2, 2026

Part 3/3 of enabling XOR swizzle with software pipelining (#23919).

Overall plan: SwizzleHintOp in the SSA chain blocks both memref::multiBuffer and scf::pipelineForLoop. The fix absorbs the hint into an alloc attribute before pipelining, preserves it through multi-buffering, then re-inserts hints at leaf users afterward.

This PR: Wires AbsorbSwizzleHintToAllocPass before and ReinsertSwizzleHintsPass after ROCDLPrefetchSharedMemoryPass, and preserves the iree_codegen.swizzle attribute through memref::multiBuffer.

Fixes: #23919

Assisted-by: Cursor (Claude)

Part 3/3 of enabling XOR swizzle with software pipelining (iree-org#23919).

Wires AbsorbSwizzleHintToAllocPass before and ReinsertSwizzleHintsPass
after ROCDLPrefetchSharedMemoryPass, and preserves the
iree_codegen.swizzle attribute through memref::multiBuffer.

Fixes: iree-org#23919

Assisted-by: Cursor (Claude)
Signed-off-by: Yu-Zhewen <zhewenyu@amd.com>
Made-with: Cursor
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

SwizzleHintOp blocks double-buffering in ROCDLPrefetchSharedMemoryPass

1 participant