Conversation
parseSplitModulesFromFile required the 3-column "[Code|Properties|Symbols]" table unconditionally, but clang-linker-wrapper omits -symbols when -sycl-thin-lto is set, so sycl-post-link emits a 2-column "[Code|Properties]" table instead. This made the parser reject the table with "invalid SYCL Table file.", aborting the link for -foffload-lto=thin. Accept both header/row shapes, leaving Symbols empty when the column is absent. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
@wenju-he, do you have a design doc for enabling ThinLTO in SYCL mode? |
I have attached a diagram of current implementation (almost finished and I'm splitting it into smaller patches for review) in jira CMPLRLLVM-78079.
I agree with you. See #14259 for background that adds per-TU sycl-post-link for ThinLTO. |
Not temporary, but can be reverted when sycl-post-link is deprecated, which is out of scope of current ThinLTO implementation. |
mdtoguchi
left a comment
There was a problem hiding this comment.
Looks OK to me. As an aside, looked through the existing LIT tests and could not find anything that is verifying the -sycl-thin-lto behavior for clang-linker-wrapper in that it restricts the Symbols column for the sycl-post-link call.
|
@intel/llvm-gatekeepers please consider merging |
I don't think we can deprecate The trickiest part to integrate into LTO pipeline is module splitting functionality. AFAIK, AMDGPU pipeline has implemented similar splitting in the CodeGen, but heuristic they use is different. We can probably integrate split functionality into SPIR-V backend to get Deprecating |
I agree, But I think we can implement this incrementally. |
Probably. I think @sarnex landed this patch before AMD folks pushed splitting capabilities the upstream branch. |
parseSplitModulesFromFile required the 3-column
"[Code|Properties|Symbols]" table unconditionally, but clang-linker-wrapper omits -symbols when -sycl-thin-lto is set, so sycl-post-link emits a 2-column "[Code|Properties]" table instead. This made the parser reject the table with "invalid SYCL Table file.", aborting the link for -foffload-lto=thin. Accept both header/row shapes, leaving Symbols empty when the column is absent.