Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[DirectX] Enable the Scalarizer pass in the DirectX backend #105178

Closed
4 tasks done
Tracked by #27 ...
farzonl opened this issue Aug 20, 2024 · 1 comment · Fixed by #107427
Closed
4 tasks done
Tracked by #27 ...

[DirectX] Enable the Scalarizer pass in the DirectX backend #105178

farzonl opened this issue Aug 20, 2024 · 1 comment · Fixed by #107427
Assignees

Comments

@farzonl
Copy link
Member

farzonl commented Aug 20, 2024

We need to do a few things here:

  • Add the legacy pass scalarizer interface back
  • Hook it up to the DirectX backend
  • Turn on the load store flag so loads and stores scalarize
  • Update the non dx intrinsic test cases.
@davidcook-msft
Copy link

Will estimate after a final design is agreed upon.

@farzonl farzonl changed the title [DirectX] Scalarize HLSL intrinsics into DXILOps [DirectX] Enable the Scalarizer pass in the DirectX backend Sep 5, 2024
@farzonl farzonl moved this to Active in HLSL Support Sep 9, 2024
farzonl added a commit that referenced this issue Sep 12, 2024
… backend (#107427)

As discussed in this
[proposal](https://github.com/llvm/wg-hlsl/pull/62/files?short_path=ac6e592#diff-ac6e59276afe8016e307eedc5c835f534c0cb353707760b44df0fa9d905a5cf8).
We had to bring back the legacy pass manager interface for the
scalarizer pass. Two reasons for this:
1. The DirectX backend is still using the legacy pass manager
2. The new PM isn't hooked up in clang yet via `BackendUtil.cpp`'s
`AddEmitPasses` That means even if we add a `buildCodeGenPipeline` we
won't be able to benefit from the new pass manager's scalarizer pass
interface.

The remaining changes are hooking up the scalarizer pass to the DirectX
backend, updating the DirectX test cases,
and allowing the `optdriver` to not block the legacy invocation of the
scalarizer pass.

Future work still needs to be done to allow the scalarizer pass to
handle target specific intrinsics.

closes #105178
@github-project-automation github-project-automation bot moved this from Active to Done in HLSL Support Sep 12, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
Status: No status
Development

Successfully merging a pull request may close this issue.

2 participants