- User Since
- Nov 4 2014, 3:46 PM (324 w, 2 d)
Looks good now. Thanks.
LGTM. Did you figure out the answer of your inline comment?
Fri, Jan 15
Sounds like a good idea to me!
Wed, Jan 13
Tue, Jan 12
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.
Jul 14 2020
Use Option::matches instead.
Jul 13 2020
Add comments in the tests.
Jun 30 2020
Jun 29 2020
Agree this is ugly but the clean up looks fine. Not sure how to write a test as well but I can see the @ file path is triggered correctly.
Jun 26 2020
Jun 25 2020
Jun 23 2020
Not sure if it makes more sense to break the patch into two commits:
- config.guess change is for building the correct host triple on apple silicon machine without explicitly specify it.
- the driver change is for better default on Apple silicon Mac.
Jun 22 2020
Jun 19 2020
Jun 2 2020
Apr 30 2020
Mar 10 2020
Mar 9 2020
It looks good in general. I would prefer to have two separate tests, one for upgrade, one for ir-linking.
Mar 5 2020
What is the goal for this option? Do you expect any users of this or this is for debugging WPD?
Feb 28 2020
Feb 26 2020
Thanks. LGTM. I will let @arphaman to approve this.
The 0x40 bit is actually OBJC_IMAGE_HAS_CATEGORY_CLASS_PROPERTIES, which probably can differ from translation unit to translation unit even within ObjC. Some of the other bits should not be different. That is why I say you can break the bits down even more if needed.
Clang seems to set it unconditionally. Presumably it just controls whether category descriptors have a class-properties field; offhand, I don't know why that would need to be set globally.
Feb 25 2020
I agree with all of this except that I'm not sure there's any situation where ObjC and Swift translation units should be disagreeing about the ObjC-specific parts of the OBJC_IMAGE_INFO.