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

Add more granular breakdown of work items required to build initial version of HLSL clang compiler c library #200

Open
wants to merge 2 commits into
base: main
Choose a base branch
from

Conversation

coopp
Copy link
Collaborator

@coopp coopp commented Apr 16, 2024

This commit adds a sub proposal document under the big proposal 0016-c-interface-compiler-library that breaks down work required for the first milestone to compile a simple shader and have a partner team adopt the library for their needs.

Eventually this list will be turned into proper Issues and tracked on schedule to meet the milestone.

@damyanp
Copy link
Member

damyanp commented Apr 16, 2024

FWIW, I don't think it would be a problem if this were just inlined in the original proposal doc.

@coopp
Copy link
Collaborator Author

coopp commented Apr 16, 2024

I could add this in-lined in the original propsal. I was worried because it was getting quite hefty with all of the overview of the existing compiler library info. This PR (#197) Still needs attention.

required to achieve the first milestone of adopotion by the ML team and
ability to compile a compute shader using clang as a library.

The Issues created here will be ordered to help contruct a roadmap that can be
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
The Issues created here will be ordered to help contruct a roadmap that can be
The Issues created here will be ordered to help construct a roadmap that can be

to be added:
* Add include handler support?
* Expose linker support? (Might be included with clang from other work)
* Expose optmizer support? (Might be include with clanga from other work)
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
* Expose optmizer support? (Might be include with clanga from other work)
* Expose optimizer support? (Might be included with clang from other work)

* Add include handler support?
* Expose linker support? (Might be included with clang from other work)
* Expose optmizer support? (Might be include with clanga from other work)
* Expose tooling featrures like container reflection, and other output inspection
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
* Expose tooling featrures like container reflection, and other output inspection
* Expose tooling features like container reflection, and other output inspection

* Expose tooling featrures like container reflection, and other output inspection
features?

[] Add skeleton library to llvm-project build system. This includes adding code
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What does "skeleton library" mean here? Does this mean that there are non-functional entry points? Or does it mean that not all the expected entry points are there?

D3D12 runtime.
* Is there a way to put these docs under an 'experimental' grouping?

[] Design and spec out-of-process compile library architecture.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

IMO this should be one of the first things you do - or at least got agreement on whether or not there's an in-proc version of this. If it is out-of-proc only then I think building an in-proc interim version would be just building tech debt.

that builds/links/calls into to the library ensuring that it is configured
properly.

[] Add documentation for defined library entrypoints to llvm-project docs with
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'd argue that documentation should be assumed to be part of the implementation, along with tests.


## Issues

Implementation work in this list is assumed to include tests!
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

TBH, I think that some of the steps here could likely be combined, but this glosses over the bigger roadmap questions of what the entire DXC API surface covers.

Copy link
Collaborator

@llvm-beanz llvm-beanz left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think there are lots of details to dig into, but overall this seems like a good starting point for a plan to get a design fleshed out.


Implementation work in this list is assumed to include tests!

[] Design and spec where the library will be built/exposed in the llvm-project
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sadly these check boxes don't render in GitHub's markdown previews 😞

@llvm-beanz llvm-beanz added the Design Meeting Agenda item for the design meeting label Nov 12, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Design Meeting Agenda item for the design meeting
Projects
Status: No status
Development

Successfully merging this pull request may close these issues.

3 participants