- User Since
- Nov 4 2014, 3:46 PM (336 w, 1 d)
Tue, Mar 30
Ok, fine with that.
FYI, for the broken comdat, see the unit tests breaks
Mon, Mar 29
@pcc @tejohnson I tried to fix the assertion failure shown in the test case (reduced from actual code generated from swift compiler) by simplifying the ValueMapper but I couldn't quite get the comdat tests to pass. I think comdat is relying on some of the indirect symbol that doesn't appear in the ValueMap for the normal context but I couldn't quite figure out how that works. Any suggestion?
Mon, Mar 22
I still don't like this implementation, but fine if you have to do this.
Fri, Mar 19
Like replied in email. The non-scaleable option is very intentional and debug_option is by its name for compiler developer only and should not be used in production. The preferred option is to create API to set every single attributes you want to set.
Wed, Mar 17
Tue, Mar 16
Mar 8 2021
Can you add a test case? Otherwise, LGTM.
LTOCodegen can achieve most of the temp file by going through write_merged_module function. While I don't see this save-temps gains much advantage comparing the existing one except more granularity, it is also fine to have this new debug option. It would be good to switch the save-temp interface to using this flag in the future since it will simplify the code in libLTO and ld.
Feb 23 2021
This one might be better just fix the FIXME in linkCombinedIndex since assert won't do anything in the release build.
Feb 19 2021
My main concern is just that weak alias for libc++abi that never worked for Darwin :)
Feb 18 2021
Feb 17 2021
Looks good. with a small comment inline.
Feb 16 2021
Good in general. Suggestions in line.
Feb 5 2021
Jan 29 2021
This looks clean. LGTM. ThinLTO change in a separate commit?
LGTM with only one comment.
Jan 27 2021
LGTM. @pcc does this look fine to you?
Jan 26 2021
Offline comment to Florian is that:
Jan 22 2021
MergedModule is needed to support legacy API lto_codegen_write_merged_modules. You don't technical get the module back in memory, you just need to write to a file.
Jan 21 2021
Looks good now. Thanks.
LGTM. Did you figure out the answer of your inline comment?
Jan 15 2021
Sounds like a good idea to me!
Jan 13 2021
Jan 12 2021
LGTM with a small comment.
I think this is good to be a first step. The approach is correct and left some small suggestion above. The linter warnings need to be fixed as well.
Dec 7 2020
Feedback has been provided on the mailing list. Using function attributes is preferred and changing legacy C API is not allowed.
Oct 16 2020
Oct 9 2020
Sep 25 2020
In that case, please increment LTO_API_VERSION. If you think the API needs more documentation, please add to docs/LinkTimeOptimization.rst
Note libLTO API needs to be stable so:
- If you need to add API, you need to bump API version, etc. Please refer to other commits that add APIs to see what needs to be done.
- If this is just a temporary workaround, I would resist make this change to bake in this API that will not be used in the future.
Can you clarify your motivation for this? libLTO is used as an interface for linker and linkers, in general, do not understand assembly files.
Sep 23 2020
Sep 22 2020
Ok, I guess we are on the same page. The idea sounds fine to me.
I am not sure what exactly is expected here. What is your definition for pre-optimized bitcode and how your test case ensures that? Can you explain a bit more for context?
Sep 16 2020
Sep 11 2020
seems fine. The only worry is that if you have a stack that is close to the stack limit and the unwinder might just blow the stack away so it might have bincompat concerns.
Sep 4 2020
Sep 1 2020
Aug 31 2020
I am a bit worry that linker might concatenate bitcode file with padding to achieve alignment requirement, etc. I guess you can create a termination block to mark the end but it is hard to seek the next start.
Aug 28 2020
Sorry for the inconvenience that libunwind is not really buildable for armv7 from iOS SDK. You can build a single threaded version without referring to those interfaces. If this is really troublesome for you, feel free to file a bug report and we can see what can be done here.
Aug 26 2020
Aug 17 2020
Aug 12 2020
Aug 7 2020
Also added a followup that can potentially deal with the conflict between "_$NAME" and "\01_$NAME". Not sure if that is going to affect some other platforms or not so I put them in a separate review: https://reviews.llvm.org/D85564
Address review feedback.
Aug 6 2020
Aug 5 2020
Change how the GUID is computed in ThinLTOCodeGenerator.
Jul 30 2020
Jul 28 2020
This is basically a fundamental issues in GUID for machO format, which I am not sure if we can fix the underlying issue. That requires computing GUID based on mangled name, which can be more expensive and I am not sure if it will break the module summary for compatibility if we switch algorithm. So I fixed the export/preserve list only because that is the only thing I can think of that will surface as a bug. Otherwise, the mismatch GUID will just be a missed optimization opportunity.
Jul 27 2020
I have seen that and was wondering why. Thanks for figuring that out!
Jul 23 2020
rebase the patch and ping.
Jul 22 2020
Address review feedback
Jul 20 2020
Address review feedback and also add a testcase to make sure good branch
weights are not stripped.