Page MenuHomePhabricator

kubamracek (Kuba (Brecka) Mracek)
User

Projects

User does not belong to any projects.

User Details

User Since
Jun 3 2014, 6:35 AM (422 w, 1 d)

Recent Activity

May 18 2022

kubamracek accepted D125910: [libc++] Improve error messages for disabled modes.

Very nice!

May 18 2022, 4:45 PM · Restricted Project, Restricted Project

May 6 2022

kubamracek added a comment to D125118: [compiler-rt] Fix issue with compiler-rt tests mixing <atomic> and <stdatomic.h>.

LGTM.

May 6 2022, 3:29 PM · Restricted Project, Restricted Project

Apr 11 2022

kubamracek added a comment to D123475: [compiler-rt] Stop explictly ad-hoc signing compiler-rt dylibs in apple builds if ld is new enough.

+ more Apple folks

Apr 11 2022, 10:50 AM · Restricted Project, Restricted Project
kubamracek added reviewers for D123475: [compiler-rt] Stop explictly ad-hoc signing compiler-rt dylibs in apple builds if ld is new enough: aralisza, delcypher, yln, thetruestblue, rsundahl.
Apr 11 2022, 10:48 AM · Restricted Project, Restricted Project

Mar 30 2022

kubamracek accepted D122700: Do not generate x86_64 test targets on AS hots.
Mar 30 2022, 11:13 AM · Restricted Project, Restricted Project

Feb 17 2022

kubamracek committed rG6b53ad298e95: [GlobalDCE] [VFE] Avoid dropping vfunc dependencies when an invalid vtable… (authored by kubamracek).
[GlobalDCE] [VFE] Avoid dropping vfunc dependencies when an invalid vtable…
Feb 17 2022, 7:43 PM
kubamracek closed D120006: [GlobalDCE] [VFE] Avoid dropping vfunc dependencies when an invalid vtable entry is present.
Feb 17 2022, 7:43 PM · Restricted Project
kubamracek committed rG21e5a5f0cfab: [GlobalDCE] [VFE] Add a test for incorrect VFE behavior in presence of… (authored by kubamracek).
[GlobalDCE] [VFE] Add a test for incorrect VFE behavior in presence of…
Feb 17 2022, 10:47 AM

Feb 16 2022

kubamracek requested review of D120006: [GlobalDCE] [VFE] Avoid dropping vfunc dependencies when an invalid vtable entry is present.
Feb 16 2022, 9:24 PM · Restricted Project

Jan 12 2022

kubamracek committed rG23e8a4d16018: [UBSan] Relax test expectations in Misc/objc-cast.m test (authored by kubamracek).
[UBSan] Relax test expectations in Misc/objc-cast.m test
Jan 12 2022, 5:25 AM

Jan 7 2022

kubamracek added a comment to D116240: [ASan][Darwin] Avoid crash during ASan initialization.

LGTM.

Jan 7 2022, 12:03 PM · Restricted Project
kubamracek accepted D116240: [ASan][Darwin] Avoid crash during ASan initialization.
Jan 7 2022, 12:03 PM · Restricted Project

Dec 20 2021

kubamracek accepted D116061: [Sanitizer] Call StackDepotStopBackgroundThread() on all platforms.
Dec 20 2021, 4:04 PM · Restricted Project

Dec 17 2021

kubamracek accepted D115843: [TSan][Darwin] Fix shadow mapping for iOS simulator on Apple Silicon.
Dec 17 2021, 11:13 AM · Restricted Project

Dec 16 2021

kubamracek accepted D115837: [compiler-rt] removed memory access callback from asan interface for darwin.

Aha, this is just the same treatment that's already done to the _linux.cpp version of this test: https://github.com/llvm/llvm-project/commit/c13524856bb304e6b4f80da7f5c5ecdc021920ee

Dec 16 2021, 12:06 PM · Restricted Project

Dec 15 2021

kubamracek accepted D115834: [TSan][Darwin] Fix CheckAndProtect() for MappingAppleAarch64.
Dec 15 2021, 5:48 PM · Restricted Project
kubamracek accepted D115767: [Darwin] Remove workaround for symbolication in iOS simulator runtimes.
Dec 15 2021, 10:09 AM · Restricted Project

Dec 1 2021

kubamracek added a comment to D112870: [MergeFunctions] Extend FunctionComparator to account for metadata arguments in intrinsics, and only ignore debug info metadata.

@nikic Awesome suggestion, thanks! I didn't realize we have this nice facility to ignore dbginfo instructions. The diff is now really simple, and still fixes the problem.

Dec 1 2021, 7:18 AM · Restricted Project
kubamracek updated the diff for D112870: [MergeFunctions] Extend FunctionComparator to account for metadata arguments in intrinsics, and only ignore debug info metadata.
Dec 1 2021, 7:18 AM · Restricted Project

Nov 4 2021

kubamracek added a comment to D108741: [IR][GlobalDCE] Extend !vcall_visibility to be able to specify an offset range that it applies to.

@pcc , @rjmccall , @fhahn See the other phabricator links -- I assume it might take a while to review and iterate on this. Would it be reasonable to merge *this* change in the meantime?

Nov 4 2021, 7:49 AM · Restricted Project

Nov 1 2021

kubamracek added a comment to D108741: [IR][GlobalDCE] Extend !vcall_visibility to be able to specify an offset range that it applies to.
Nov 1 2021, 3:34 PM · Restricted Project
kubamracek requested review of D112967: [GlobalDCE] Precisely account for visibility when multiple !vcall_visibility ranges are present on vtables.
Nov 1 2021, 3:33 PM · Restricted Project
kubamracek requested review of D112965: [GlobalDCE][IR] Allow and support multiple !vcall_visibility ranges.
Nov 1 2021, 3:16 PM · Restricted Project, Restricted Project
kubamracek added a comment to D108741: [IR][GlobalDCE] Extend !vcall_visibility to be able to specify an offset range that it applies to.

But I don't think we should pull this into this particular patch. I saw @kubamracek already put up D112929 and I think the rest of the cleanups (removing the special handling for VFE) should be done as follow-up patches, to avoid making the patch at hand even bigger.

Nov 1 2021, 9:52 AM · Restricted Project
kubamracek requested review of D112929: [Clang] For VFE, emit vtable ranges in !vcall_visibility metadata.
Nov 1 2021, 7:40 AM · Restricted Project

Oct 30 2021

kubamracek added a comment to D108741: [IR][GlobalDCE] Extend !vcall_visibility to be able to specify an offset range that it applies to.

I think Peter is saying that if you can make Clang emit correct ranges for v-tables — specifically so that the ranges don't cover the type_info pointer, which we don't emit enough metadata to safely remove — then you can also go ahead and remove the special case where we only eliminate loads of function pointers. That's assuming we don't need to support old bitcode.

Oct 30 2021, 9:17 PM · Restricted Project
kubamracek added a comment to D108741: [IR][GlobalDCE] Extend !vcall_visibility to be able to specify an offset range that it applies to.

I would still like to take this opportunity to drop the special case for Functions. Can we make it so that !vcall_visibility with a single operand means that none of the constant has the given visibility, and teach Clang to emit the correct ranges? I think this will also require supporting more than one !vcall_visibility range per global (this could be done by accommodating more than one !vcall_visibility annotation, or allowing the single annotation to have 2n+1 operands).

Oct 30 2021, 1:57 PM · Restricted Project
kubamracek added a reviewer for D112870: [MergeFunctions] Extend FunctionComparator to account for metadata arguments in intrinsics, and only ignore debug info metadata: nikic.
Oct 30 2021, 1:24 PM · Restricted Project
kubamracek added a comment to D112870: [MergeFunctions] Extend FunctionComparator to account for metadata arguments in intrinsics, and only ignore debug info metadata.

Thanks for the feedback! I've changed the approach to teach FunctionComparator to understand metadata in instruction operands/values, and only ignore debug info metadata.

Oct 30 2021, 1:23 PM · Restricted Project
kubamracek updated the diff for D112870: [MergeFunctions] Extend FunctionComparator to account for metadata arguments in intrinsics, and only ignore debug info metadata.
Oct 30 2021, 1:22 PM · Restricted Project
kubamracek updated the diff for D104496: [GlobalDCE] Support of conditionally used global variables.
Oct 30 2021, 8:54 AM · Restricted Project
kubamracek added a comment to D112870: [MergeFunctions] Extend FunctionComparator to account for metadata arguments in intrinsics, and only ignore debug info metadata.

Shouldn't this be fixed in FunctionComparator?

Oct 30 2021, 8:33 AM · Restricted Project
kubamracek added a reviewer for D112870: [MergeFunctions] Extend FunctionComparator to account for metadata arguments in intrinsics, and only ignore debug info metadata: steven_wu.
Oct 30 2021, 8:28 AM · Restricted Project
kubamracek requested review of D112870: [MergeFunctions] Extend FunctionComparator to account for metadata arguments in intrinsics, and only ignore debug info metadata.
Oct 30 2021, 8:14 AM · Restricted Project

Oct 22 2021

kubamracek updated the diff for D104496: [GlobalDCE] Support of conditionally used global variables.
Oct 22 2021, 8:08 PM · Restricted Project

Oct 21 2021

kubamracek updated the diff for D108741: [IR][GlobalDCE] Extend !vcall_visibility to be able to specify an offset range that it applies to.
Oct 21 2021, 10:51 AM · Restricted Project

Oct 20 2021

kubamracek added a comment to D108741: [IR][GlobalDCE] Extend !vcall_visibility to be able to specify an offset range that it applies to.

Updated diff, should have all comments addressed, added a test for relative pointer vtable.

Oct 20 2021, 3:33 PM · Restricted Project
kubamracek updated the diff for D108741: [IR][GlobalDCE] Extend !vcall_visibility to be able to specify an offset range that it applies to.
Oct 20 2021, 3:27 PM · Restricted Project
kubamracek updated the diff for D108741: [IR][GlobalDCE] Extend !vcall_visibility to be able to specify an offset range that it applies to.
Oct 20 2021, 1:01 PM · Restricted Project

Oct 19 2021

kubamracek added a comment to D108741: [IR][GlobalDCE] Extend !vcall_visibility to be able to specify an offset range that it applies to.

Is this callback here really necessary or could it be in FindVirtualFunctionsInVTable? It seems to make it harder to see what's going on when reading FindVirtualFunctionsInVTable in isolation.

Oct 19 2021, 8:47 PM · Restricted Project
kubamracek updated the diff for D108741: [IR][GlobalDCE] Extend !vcall_visibility to be able to specify an offset range that it applies to.
Oct 19 2021, 8:47 PM · Restricted Project
kubamracek added a comment to D108741: [IR][GlobalDCE] Extend !vcall_visibility to be able to specify an offset range that it applies to.

It restricts the eligible functions to a single range, which is not as powerful as the new constant approach. Just to double check, will this be sufficient for your use cases?

Oct 19 2021, 8:42 PM · Restricted Project
kubamracek updated the diff for D108741: [IR][GlobalDCE] Extend !vcall_visibility to be able to specify an offset range that it applies to.
Oct 19 2021, 8:21 PM · Restricted Project
kubamracek updated the diff for D108741: [IR][GlobalDCE] Extend !vcall_visibility to be able to specify an offset range that it applies to.
Oct 19 2021, 8:20 PM · Restricted Project

Oct 18 2021

kubamracek updated the diff for D104496: [GlobalDCE] Support of conditionally used global variables.
Oct 18 2021, 8:08 AM · Restricted Project
kubamracek updated the diff for D104496: [GlobalDCE] Support of conditionally used global variables.
Oct 18 2021, 8:04 AM · Restricted Project

Oct 15 2021

kubamracek retitled D108741: [IR][GlobalDCE] Extend !vcall_visibility to be able to specify an offset range that it applies to from [IR][GlobalDCE] Add ability to mark vtable methods as eligible for VFE and avoid eliminating non-eligible vfunc in VFE in GlobalDCE to [IR][GlobalDCE] Extend !vcall_visibility to be able to specify an offset range that it applies to.
Oct 15 2021, 10:12 PM · Restricted Project
kubamracek updated the diff for D108741: [IR][GlobalDCE] Extend !vcall_visibility to be able to specify an offset range that it applies to.

I have talked with @rjmccall offline, and I'm going to attempt to summarize his thought. @rjmccall, please correct me where I' wrong :)

Oct 15 2021, 10:05 PM · Restricted Project

Oct 14 2021

kubamracek added a comment to D111757: [CFI] Add a module flag to allow custom section on globals with !type metadata when not doing CFI.

has this always been broken?

I guess it might be helpful to elaborate why it should be safe to ignore custom sections and/or when it would be safe for frontends to emit the new flag.

Oct 14 2021, 11:20 AM · Restricted Project
kubamracek updated the diff for D104496: [GlobalDCE] Support of conditionally used global variables.
Oct 14 2021, 10:49 AM · Restricted Project

Oct 13 2021

kubamracek requested review of D111757: [CFI] Add a module flag to allow custom section on globals with !type metadata when not doing CFI.
Oct 13 2021, 2:50 PM · Restricted Project
kubamracek added a comment to D104496: [GlobalDCE] Support of conditionally used global variables.

Removed the leftover debug print. Added a test case for a circular dependency.

Oct 13 2021, 12:43 PM · Restricted Project
kubamracek updated the diff for D104496: [GlobalDCE] Support of conditionally used global variables.
Oct 13 2021, 12:42 PM · Restricted Project

Oct 12 2021

kubamracek added a comment to D108741: [IR][GlobalDCE] Extend !vcall_visibility to be able to specify an offset range that it applies to.

The only way around that that I can see is to break the assumption of a static offset. You will need to tie the load to its loadee more symbolically, like by saying that you are conceptually accessing Foo.bar and annotating the field in the global as only accessed through loads tagged Foo.bar.

Oct 12 2021, 8:48 AM · Restricted Project

Oct 11 2021

kubamracek added a comment to D108741: [IR][GlobalDCE] Extend !vcall_visibility to be able to specify an offset range that it applies to.

Thank you for the detailed response, @rjmccall ! Let me try to explain my ultimate motivation here :)

Oct 11 2021, 5:46 PM · Restricted Project
kubamracek added a comment to D108741: [IR][GlobalDCE] Extend !vcall_visibility to be able to specify an offset range that it applies to.

@rjmccall, please see the history of this review, what you're saying was proposed already, and then declined by @pcc, who IIUC was involved in the original design and implementation of VFE, and who's requesting that the right way to express this in the IR is via a new constant that wraps the function pointers. @pcc provided some rationale for that -- do you disagree with it?

Oct 11 2021, 3:07 PM · Restricted Project
kubamracek added inline comments to D108741: [IR][GlobalDCE] Extend !vcall_visibility to be able to specify an offset range that it applies to.
Oct 11 2021, 11:54 AM · Restricted Project
kubamracek added a comment to D104496: [GlobalDCE] Support of conditionally used global variables.

@MaskRay, @pcc friendly ping on the review request :)

Oct 11 2021, 11:44 AM · Restricted Project
kubamracek added inline comments to D108741: [IR][GlobalDCE] Extend !vcall_visibility to be able to specify an offset range that it applies to.
Oct 11 2021, 9:43 AM · Restricted Project
kubamracek updated the diff for D108741: [IR][GlobalDCE] Extend !vcall_visibility to be able to specify an offset range that it applies to.
Oct 11 2021, 9:42 AM · Restricted Project
kubamracek updated the diff for D108741: [IR][GlobalDCE] Extend !vcall_visibility to be able to specify an offset range that it applies to.
Oct 11 2021, 8:57 AM · Restricted Project
kubamracek added inline comments to D108741: [IR][GlobalDCE] Extend !vcall_visibility to be able to specify an offset range that it applies to.
Oct 11 2021, 8:48 AM · Restricted Project

Oct 6 2021

kubamracek added a comment to D111096: [NFC] Move setUsedInitializer from IPO/GlobalOpt.cpp to Utils/ModuleUtils.cpp to be reusable by other components.

Can you demonstrate the intended usage by marking that patch as a child revision (Edit Related Revision)?

Oct 6 2021, 4:52 PM · Restricted Project
kubamracek added reviewers for D111096: [NFC] Move setUsedInitializer from IPO/GlobalOpt.cpp to Utils/ModuleUtils.cpp to be reusable by other components: respindola, pcc, bkramer, MaskRay.
Oct 6 2021, 4:45 PM · Restricted Project
kubamracek added a comment to D109114: [GlobalDCE] In VFE, replace the whole 'sub' expression of unused relative-pointer-based vtable slots.

Thanks for the review!

Oct 6 2021, 4:43 PM · Restricted Project
kubamracek committed rG7329abf2f81a: [GlobalDCE] In VFE, replace the whole 'sub' expression of unused relative… (authored by kubamracek).
[GlobalDCE] In VFE, replace the whole 'sub' expression of unused relative…
Oct 6 2021, 3:56 PM
kubamracek closed D109114: [GlobalDCE] In VFE, replace the whole 'sub' expression of unused relative-pointer-based vtable slots.
Oct 6 2021, 3:56 PM · Restricted Project

Oct 4 2021

kubamracek updated the diff for D104496: [GlobalDCE] Support of conditionally used global variables.

Added IR Verifier for llvm.used.conditional.

Oct 4 2021, 1:37 PM · Restricted Project
kubamracek updated the diff for D104496: [GlobalDCE] Support of conditionally used global variables.
Oct 4 2021, 1:11 PM · Restricted Project
kubamracek added inline comments to D104496: [GlobalDCE] Support of conditionally used global variables.
Oct 4 2021, 1:06 PM · Restricted Project
kubamracek added inline comments to D104496: [GlobalDCE] Support of conditionally used global variables.
Oct 4 2021, 1:00 PM · Restricted Project
kubamracek updated the diff for D104496: [GlobalDCE] Support of conditionally used global variables.
Oct 4 2021, 1:00 PM · Restricted Project
kubamracek requested review of D111096: [NFC] Move setUsedInitializer from IPO/GlobalOpt.cpp to Utils/ModuleUtils.cpp to be reusable by other components.
Oct 4 2021, 12:59 PM · Restricted Project
kubamracek added inline comments to D109114: [GlobalDCE] In VFE, replace the whole 'sub' expression of unused relative-pointer-based vtable slots.
Oct 4 2021, 12:37 PM · Restricted Project
kubamracek updated the diff for D109114: [GlobalDCE] In VFE, replace the whole 'sub' expression of unused relative-pointer-based vtable slots.
Oct 4 2021, 12:37 PM · Restricted Project
kubamracek added a comment to D108741: [IR][GlobalDCE] Extend !vcall_visibility to be able to specify an offset range that it applies to.

@pcc does this approach look good to you now? Can you review? Thanks :)

Oct 4 2021, 12:25 PM · Restricted Project
kubamracek added inline comments to D108741: [IR][GlobalDCE] Extend !vcall_visibility to be able to specify an offset range that it applies to.
Oct 4 2021, 12:17 PM · Restricted Project
kubamracek updated the diff for D108741: [IR][GlobalDCE] Extend !vcall_visibility to be able to specify an offset range that it applies to.
Oct 4 2021, 12:16 PM · Restricted Project
kubamracek added inline comments to D109114: [GlobalDCE] In VFE, replace the whole 'sub' expression of unused relative-pointer-based vtable slots.
Oct 4 2021, 12:09 PM · Restricted Project
kubamracek updated the diff for D109114: [GlobalDCE] In VFE, replace the whole 'sub' expression of unused relative-pointer-based vtable slots.
Oct 4 2021, 12:05 PM · Restricted Project
kubamracek added inline comments to D109114: [GlobalDCE] In VFE, replace the whole 'sub' expression of unused relative-pointer-based vtable slots.
Oct 4 2021, 11:31 AM · Restricted Project
kubamracek updated the diff for D109114: [GlobalDCE] In VFE, replace the whole 'sub' expression of unused relative-pointer-based vtable slots.
Oct 4 2021, 11:26 AM · Restricted Project

Oct 2 2021

kubamracek added a comment to D104496: [GlobalDCE] Support of conditionally used global variables.

@MaskRay, @pcc, @fhahn, this is now ready for review. I've simplified/cleaned up the implementation as much as I could, and added a formalization of the !llvm.used.conditional concept into LangRef.

Oct 2 2021, 11:59 AM · Restricted Project
kubamracek added a reviewer for D104496: [GlobalDCE] Support of conditionally used global variables: MaskRay.
Oct 2 2021, 11:58 AM · Restricted Project
kubamracek updated the diff for D104496: [GlobalDCE] Support of conditionally used global variables.
Oct 2 2021, 11:57 AM · Restricted Project
kubamracek updated the diff for D104496: [GlobalDCE] Support of conditionally used global variables.
Oct 2 2021, 11:57 AM · Restricted Project
kubamracek added a comment to D109114: [GlobalDCE] In VFE, replace the whole 'sub' expression of unused relative-pointer-based vtable slots.

Yeah moving the matcher code to a function might help, as well as moving them next to each other.

Oct 2 2021, 9:23 AM · Restricted Project
kubamracek updated the diff for D109114: [GlobalDCE] In VFE, replace the whole 'sub' expression of unused relative-pointer-based vtable slots.
Oct 2 2021, 9:21 AM · Restricted Project

Sep 28 2021

kubamracek added a comment to D108741: [IR][GlobalDCE] Extend !vcall_visibility to be able to specify an offset range that it applies to.

@pcc, I've updated the diff to introduce a new "vfe_eligible" constant and to also change Clang to start emiting that on vfuncs in vtables.

Sep 28 2021, 5:28 PM · Restricted Project
kubamracek updated the diff for D108741: [IR][GlobalDCE] Extend !vcall_visibility to be able to specify an offset range that it applies to.
Sep 28 2021, 5:28 PM · Restricted Project

Sep 27 2021

kubamracek updated the diff for D108741: [IR][GlobalDCE] Extend !vcall_visibility to be able to specify an offset range that it applies to.
Sep 27 2021, 8:51 PM · Restricted Project
kubamracek added a comment to D108741: [IR][GlobalDCE] Extend !vcall_visibility to be able to specify an offset range that it applies to.

Sorry, I think I managed to confuse myself when I was trying to figure out what VFE actually relies on. It seems that VFE doesn't rely on what I thought it did. Although VFE relies on type metadata, it only relies on it to determine the locations of the address points, and not the locations of the VFE-eligible function slots.

Sep 27 2021, 5:42 PM · Restricted Project

Sep 24 2021

kubamracek added a comment to D108741: [IR][GlobalDCE] Extend !vcall_visibility to be able to specify an offset range that it applies to.

@pcc, could I ask for some details about your last comment? I'm specifically wondering whether you're against proceeding with the change from this review.

Sep 24 2021, 2:38 PM · Restricted Project

Sep 21 2021

kubamracek added a reviewer for D110162: [TSan][Darwin] Avoid crashes due to interpreting non-zero shadow content as a pointer: dvyukov.
Sep 21 2021, 6:52 AM · Restricted Project

Sep 20 2021

kubamracek added a comment to D108741: [IR][GlobalDCE] Extend !vcall_visibility to be able to specify an offset range that it applies to.

It isn't great that VFE apparently relies on the type metadata that we added to support member function pointer CFI in C++. I was unaware that this was the case, and it shouldn't be necessary for frontends that don't have something like C++'s peculiar member function pointer ABI (I assume that Swift doesn't?) It would be better if we designed an independent way of marking these entries as subject to VFE.

Sep 20 2021, 6:28 PM · Restricted Project
kubamracek added a comment to D108741: [IR][GlobalDCE] Extend !vcall_visibility to be able to specify an offset range that it applies to.

LGTM with a few remaining nits. Please wait a couple of days in case there are additional comments.

Sep 20 2021, 2:27 PM · Restricted Project
kubamracek updated the diff for D108741: [IR][GlobalDCE] Extend !vcall_visibility to be able to specify an offset range that it applies to.
Sep 20 2021, 2:26 PM · Restricted Project

Sep 17 2021

kubamracek added inline comments to D108741: [IR][GlobalDCE] Extend !vcall_visibility to be able to specify an offset range that it applies to.
Sep 17 2021, 9:33 PM · Restricted Project
kubamracek updated the diff for D108741: [IR][GlobalDCE] Extend !vcall_visibility to be able to specify an offset range that it applies to.
Sep 17 2021, 9:32 PM · Restricted Project
kubamracek updated the diff for D109114: [GlobalDCE] In VFE, replace the whole 'sub' expression of unused relative-pointer-based vtable slots.

Would it be possible to either only iterate over all users if we know that there are relative pointers or iterate over all uses once and either replace the sub with zero or the use with nullptr?

Sep 17 2021, 9:22 PM · Restricted Project