Page MenuHomePhabricator

nextsilicon-itay-bookstein (Itay Bookstein)
User

Projects

User does not belong to any projects.

User Details

User Since
Jun 10 2020, 10:51 AM (145 w, 4 d)

Recent Activity

Fri, Mar 24

nextsilicon-itay-bookstein updated the diff for D140722: [OpenMP] Prefix outlined and reduction func names with original func's name.

Another minor tweak to clang/test/CodeGen/PowerPC/ppc64le-varargs-f128.c.

Fri, Mar 24, 9:02 AM · Restricted Project, Restricted Project
nextsilicon-itay-bookstein updated the diff for D140722: [OpenMP] Prefix outlined and reduction func names with original func's name.

Retry, wrong patch uploaded last time.

Fri, Mar 24, 5:24 AM · Restricted Project, Restricted Project
nextsilicon-itay-bookstein updated the summary of D140722: [OpenMP] Prefix outlined and reduction func names with original func's name.
Fri, Mar 24, 5:09 AM · Restricted Project, Restricted Project
nextsilicon-itay-bookstein updated the diff for D140722: [OpenMP] Prefix outlined and reduction func names with original func's name.

Minor fix to the clang/CodeGen/ppc64le-varargs-f128.c test.

Fri, Mar 24, 5:08 AM · Restricted Project, Restricted Project

Wed, Mar 22

nextsilicon-itay-bookstein updated the diff for D140722: [OpenMP] Prefix outlined and reduction func names with original func's name.

Removed the empty string in the getName() invocation for the outlined helper's name.

Wed, Mar 22, 3:58 PM · Restricted Project, Restricted Project

Tue, Mar 21

nextsilicon-itay-bookstein added a comment to D140722: [OpenMP] Prefix outlined and reduction func names with original func's name.

I had to cut context lines to 2 to fit in the 8MB limit. It looks like there are a few files that absorb way more line diff than makes sense, but I haven't investigated way. One particular offender is clang/test/OpenMP/nvptx_SPMD_codegen.cpp, which loses 23KLOC. I think some of the NVPTX files are not idempotent under update_cc_test_checks in master, but I haven't checked again to make sure.

Tue, Mar 21, 2:25 PM · Restricted Project, Restricted Project
nextsilicon-itay-bookstein updated the diff for D140722: [OpenMP] Prefix outlined and reduction func names with original func's name.

Update relevant test outputs.

Tue, Mar 21, 2:22 PM · Restricted Project, Restricted Project

Feb 2 2023

nextsilicon-itay-bookstein updated the summary of D140722: [OpenMP] Prefix outlined and reduction func names with original func's name.
Feb 2 2023, 5:56 AM · Restricted Project, Restricted Project

Dec 28 2022

nextsilicon-itay-bookstein requested review of D140722: [OpenMP] Prefix outlined and reduction func names with original func's name.
Dec 28 2022, 1:36 AM · Restricted Project, Restricted Project

Nov 10 2021

nextsilicon-itay-bookstein committed rGf9059efa0d54: [InstCombine] Extend stacksave/restore elimination (authored by nextsilicon-itay-bookstein).
[InstCombine] Extend stacksave/restore elimination
Nov 10 2021, 12:42 AM
nextsilicon-itay-bookstein committed rGfe7491d32fe7: [InstCombine][NFC] Refactor llvm.stackrestore handling (authored by nextsilicon-itay-bookstein).
[InstCombine][NFC] Refactor llvm.stackrestore handling
Nov 10 2021, 12:42 AM
nextsilicon-itay-bookstein closed D113105: [InstCombine] Extend stacksave/restore elimination.
Nov 10 2021, 12:42 AM · Restricted Project
nextsilicon-itay-bookstein closed D113464: [InstCombine][NFC] Refactor llvm.stackrestore handling.
Nov 10 2021, 12:42 AM · Restricted Project

Nov 9 2021

nextsilicon-itay-bookstein updated the diff for D113105: [InstCombine] Extend stacksave/restore elimination.

add comments

Nov 9 2021, 4:22 AM · Restricted Project
nextsilicon-itay-bookstein updated the diff for D113464: [InstCombine][NFC] Refactor llvm.stackrestore handling.

add comments

Nov 9 2021, 4:21 AM · Restricted Project
nextsilicon-itay-bookstein updated the diff for D113105: [InstCombine] Extend stacksave/restore elimination.

Add comment

Nov 9 2021, 4:07 AM · Restricted Project
nextsilicon-itay-bookstein updated the diff for D113105: [InstCombine] Extend stacksave/restore elimination.

Refined logic so that stackrestores of the same stacksave do
not inhibit removal in the same instcombine iteration.

Nov 9 2021, 2:21 AM · Restricted Project
nextsilicon-itay-bookstein added a comment to D113464: [InstCombine][NFC] Refactor llvm.stackrestore handling.

Thanks; Could you commit this on my behalf?

Nov 9 2021, 2:08 AM · Restricted Project
nextsilicon-itay-bookstein added inline comments to D113105: [InstCombine] Extend stacksave/restore elimination.
Nov 9 2021, 2:03 AM · Restricted Project
nextsilicon-itay-bookstein updated the diff for D113105: [InstCombine] Extend stacksave/restore elimination.

Improved the test to include multiple stackrestores.

Nov 9 2021, 1:55 AM · Restricted Project
nextsilicon-itay-bookstein updated the diff for D113105: [InstCombine] Extend stacksave/restore elimination.

Improved comments

Nov 9 2021, 1:41 AM · Restricted Project
nextsilicon-itay-bookstein added inline comments to D113105: [InstCombine] Extend stacksave/restore elimination.
Nov 9 2021, 1:40 AM · Restricted Project

Nov 8 2021

nextsilicon-itay-bookstein added a comment to D113105: [InstCombine] Extend stacksave/restore elimination.

Certainly, done

Nov 8 2021, 11:36 PM · Restricted Project
nextsilicon-itay-bookstein updated the diff for D113105: [InstCombine] Extend stacksave/restore elimination.

split from NFC refactor

Nov 8 2021, 11:35 PM · Restricted Project
nextsilicon-itay-bookstein requested review of D113464: [InstCombine][NFC] Refactor llvm.stackrestore handling.
Nov 8 2021, 11:33 PM · Restricted Project

Nov 4 2021

nextsilicon-itay-bookstein added a comment to D112349: [Verifier] Add verification logic for GlobalIFuncs.

That feature already exists - use a plain old function declaration :)

Nov 4 2021, 9:53 AM · Restricted Project, Restricted Project, Restricted Project
nextsilicon-itay-bookstein added a comment to D112349: [Verifier] Add verification logic for GlobalIFuncs.

I don't know much about the ELF format... but this works today? We can define a resolver in a different TU and it WORKS thanks to the linker? So there is perhaps something?

The ifunc symbol that is emitted in the TU with the undefined resolver loses its connection to the resolver and the calls to the ifunc are instead bound against the resolver itself (which is absolutely not what you want).

Nov 4 2021, 9:22 AM · Restricted Project, Restricted Project, Restricted Project
nextsilicon-itay-bookstein added a comment to D112349: [Verifier] Add verification logic for GlobalIFuncs.

It sort-of-works only because you define the ifunc in both translation units (with the same name). But looks like it behaves incorrectly for references to the ifunc in the translation unit where the resolver is only declared, not defined:

> cat example1.ll
@single_version_ifunc = weak_odr dso_local ifunc void (), void ()* ()* @single_version_resolver
define void ()* @single_version_resolver() {
  ret void ()* null
}
Nov 4 2021, 9:09 AM · Restricted Project, Restricted Project, Restricted Project
nextsilicon-itay-bookstein added a comment to D112349: [Verifier] Add verification logic for GlobalIFuncs.

I'm referring you again to the start of my explanation (the first three paragraphs); the object file format (ELF) literally cannot express the semantics you're asking for. You're asking for it to support a symbol in a special kind of undefined state:
ABC = "undefined, but becomes defined to the value of a different symbol XYZ if it ever becomes defined".

Nov 4 2021, 8:25 AM · Restricted Project, Restricted Project, Restricted Project

Nov 3 2021

nextsilicon-itay-bookstein added inline comments to D113105: [InstCombine] Extend stacksave/restore elimination.
Nov 3 2021, 10:14 AM · Restricted Project
nextsilicon-itay-bookstein updated the diff for D113105: [InstCombine] Extend stacksave/restore elimination.

Added comment about call-with-side-effects, added same-BB-check

Nov 3 2021, 10:09 AM · Restricted Project
nextsilicon-itay-bookstein requested review of D113105: [InstCombine] Extend stacksave/restore elimination.
Nov 3 2021, 7:50 AM · Restricted Project

Oct 7 2021

nextsilicon-itay-bookstein added a comment to D110508: [SelectionDAG] Fix shift libcall ABI mismatch in shift-amount argument.

I have no commit access, might I ask that you commit this on my behalf?

Oct 7 2021, 11:27 AM · Restricted Project

Oct 4 2021

nextsilicon-itay-bookstein added a comment to D110318: [Support] Restore LLVMTestingSupport as an llvm component library.

My only lead for this change was that I'd assumed that at some point this code did not emit the aforementioned warning: https://github.com/llvm/llvm-project/blob/811b1736d91b301f59fbaa148ff55c32f90a3947/compiler-rt/cmake/Modules/CompilerRTUtils.cmake#L346-L352

Oct 4 2021, 9:01 AM · Restricted Project
nextsilicon-itay-bookstein added a comment to D110508: [SelectionDAG] Fix shift libcall ABI mismatch in shift-amount argument.

ping :)

Oct 4 2021, 2:34 AM · Restricted Project
nextsilicon-itay-bookstein added a comment to D110318: [Support] Restore LLVMTestingSupport as an llvm component library.

That's already what happens, both before and after this change, because both invocations (add_llvm_library before the change, and add_llvm_component_library after the change) pass the BUILDTREE_ONLY flag.
Therefore the library doesn't get installed either way.

Oct 4 2021, 2:06 AM · Restricted Project
nextsilicon-itay-bookstein added a comment to D110318: [Support] Restore LLVMTestingSupport as an llvm component library.

I think that an llvm 'component library' is a logical library that llvm exposes outwards.
It becomes query-able from llvm-config, and it declares other components it depends on for internal dependency management, which is then exposed outwards also.
For example, when I invoke llvm-config --ldflags --libs testingsupport, after the fix, I get this output:

-L/path/to/build/dir/lib
-lLLVMTestingSupport -lLLVMSupport -lLLVMDemangle
Oct 4 2021, 1:52 AM · Restricted Project
nextsilicon-itay-bookstein added a comment to D110318: [Support] Restore LLVMTestingSupport as an llvm component library.

Added Tom (https://reviews.llvm.org/D70179, creation of add_llvm_component_library), and Michał (https://reviews.llvm.org/D55891, includes introduction of warning I'm trying to tackle)

Oct 4 2021, 1:16 AM · Restricted Project
nextsilicon-itay-bookstein added reviewers for D110318: [Support] Restore LLVMTestingSupport as an llvm component library: tstellar, mgorny.
Oct 4 2021, 1:13 AM · Restricted Project

Oct 3 2021

nextsilicon-itay-bookstein added a comment to D110318: [Support] Restore LLVMTestingSupport as an llvm component library.

ping :)

Oct 3 2021, 9:48 AM · Restricted Project

Sep 30 2021

nextsilicon-itay-bookstein added a comment to D110405: [IR][NFC] Rename getBaseObject to getAliaseeObject.

ping :)

Sep 30 2021, 12:35 AM · Restricted Project

Sep 29 2021

nextsilicon-itay-bookstein added a comment to D110508: [SelectionDAG] Fix shift libcall ABI mismatch in shift-amount argument.

Alright, yes, that makes a lot of sense to me. The patch already uses ZExt, so I think it could be considered ready.

Sep 29 2021, 2:50 AM · Restricted Project

Sep 28 2021

nextsilicon-itay-bookstein updated the diff for D110508: [SelectionDAG] Fix shift libcall ABI mismatch in shift-amount argument.

Changed to use ZExtOrTrunc. Note change in X86/shift_minsize.ll

Sep 28 2021, 7:52 AM · Restricted Project
nextsilicon-itay-bookstein added inline comments to D110508: [SelectionDAG] Fix shift libcall ABI mismatch in shift-amount argument.
Sep 28 2021, 5:06 AM · Restricted Project

Sep 27 2021

nextsilicon-itay-bookstein updated the diff for D110508: [SelectionDAG] Fix shift libcall ABI mismatch in shift-amount argument.

Modified to use DAG.getLibInfo().getIntSize() as @bjope suggested in llvm-dev.

Sep 27 2021, 9:08 AM · Restricted Project
nextsilicon-itay-bookstein added a comment to D110509: [SelectionDAG] Fix incorrect condition for shift amount truncation.

True, at SelectionDAGBuilder time that invariant holds. So just speedbump removal / potential copypasta bug prevention? 😛

Sep 27 2021, 1:32 AM · Restricted Project

Sep 26 2021

nextsilicon-itay-bookstein updated the diff for D110508: [SelectionDAG] Fix shift libcall ABI mismatch in shift-amount argument.

Added fshr.i128 test, refreshed another small diff in AArch64

Sep 26 2021, 2:27 PM · Restricted Project
nextsilicon-itay-bookstein updated the diff for D110508: [SelectionDAG] Fix shift libcall ABI mismatch in shift-amount argument.

Rebased on top of main.

Sep 26 2021, 1:49 PM · Restricted Project
nextsilicon-itay-bookstein updated the diff for D110508: [SelectionDAG] Fix shift libcall ABI mismatch in shift-amount argument.

Fixed clang-format.
Updated X86 and AArch64 shift_minsize test output, and refreshed labels for RISCV shifts test output.

Sep 26 2021, 1:30 PM · Restricted Project
guy-david awarded D110508: [SelectionDAG] Fix shift libcall ABI mismatch in shift-amount argument a Pterodactyl token.
Sep 26 2021, 1:13 PM · Restricted Project
nextsilicon-itay-bookstein requested review of D110509: [SelectionDAG] Fix incorrect condition for shift amount truncation.
Sep 26 2021, 1:07 PM · Restricted Project
nextsilicon-itay-bookstein requested review of D110508: [SelectionDAG] Fix shift libcall ABI mismatch in shift-amount argument.
Sep 26 2021, 12:50 PM · Restricted Project

Sep 23 2021

nextsilicon-itay-bookstein abandoned D110317: [Support] Fix mallinfo deprecation warning.

Was sure I checked upstream, but I didn't.

Sep 23 2021, 3:33 AM · Restricted Project
nextsilicon-itay-bookstein requested review of D110318: [Support] Restore LLVMTestingSupport as an llvm component library.
Sep 23 2021, 3:31 AM · Restricted Project
nextsilicon-itay-bookstein requested review of D110317: [Support] Fix mallinfo deprecation warning.
Sep 23 2021, 3:29 AM · Restricted Project

Aug 12 2021

nextsilicon-itay-bookstein added a comment to D107988: [Linker] Import IFuncs.

I cannot commit the patch myself because I don't have commit access, might I trouble you with that? :)

Aug 12 2021, 11:15 PM · Restricted Project
nextsilicon-itay-bookstein updated the diff for D107988: [Linker] Import IFuncs.

Updated the test per @MaskRay 's suggestion.

Aug 12 2021, 11:11 PM · Restricted Project
nextsilicon-itay-bookstein added a reviewer for D107988: [Linker] Import IFuncs: MaskRay.
Aug 12 2021, 10:10 PM · Restricted Project
nextsilicon-itay-bookstein requested review of D107988: [Linker] Import IFuncs.
Aug 12 2021, 11:48 AM · Restricted Project

Sep 7 2020

nextsilicon-itay-bookstein updated the diff for D81911: [ThinLTO] Work around getBaseObject returning null for alias-to-ifunc.

I have updated the diff to include the changes you suggested. However, as you said, for the test to have a chance of passing, D82745 is required. I will send out a mail to discuss the design issue on llvm-dev soon.

Sep 7 2020, 9:38 AM · Restricted Project
nextsilicon-itay-bookstein retitled D81911: [ThinLTO] Work around getBaseObject returning null for alias-to-ifunc from [IR] Fix getBaseObject for GlobalAlias-to-GlobalIFunc to [ThinLTO] Work around getBaseObject returning null for alias-to-ifunc.
Sep 7 2020, 9:34 AM · Restricted Project

Sep 3 2020

nextsilicon-itay-bookstein added a comment to D81911: [ThinLTO] Work around getBaseObject returning null for alias-to-ifunc.

The problem with what @DmitryPolukhin suggested (which he later acknowledged in an additional comment), is that getBaseObject() returns a GlobalObject, but GlobalIFunc does not inherit from GlobalObject, so that can't compile.

Sep 3 2020, 12:35 AM · Restricted Project

Aug 19 2020

nextsilicon-itay-bookstein added a comment to D81911: [ThinLTO] Work around getBaseObject returning null for alias-to-ifunc.

@tejohnson would simply not emitting an AliasSummary in computeAliasSummary when getBaseObject() returns nullptr be sufficient, then?

Aug 19 2020, 7:01 AM · Restricted Project

Jul 8 2020

nextsilicon-itay-bookstein added a comment to D81911: [ThinLTO] Work around getBaseObject returning null for alias-to-ifunc.

I did a bit of archeology and it turns out that getBaseObejct was part of moved from GlobalAlias to GlobalIndirectSymbol in https://github.com/llvm/llvm-project/commit/95549497ec8b5269f0439f12859537b7371b7c90
It looks like the simplest solution is to handle nullptr from getBaseObejct in computeAliasSummary...

Jul 8 2020, 12:40 AM · Restricted Project

Jul 7 2020

nextsilicon-itay-bookstein added a comment to D81911: [ThinLTO] Work around getBaseObject returning null for alias-to-ifunc.

How do we want to proceed, then? Does my analysis make sense?

Jul 7 2020, 12:18 PM · Restricted Project

Jun 24 2020

nextsilicon-itay-bookstein added a comment to D81911: [ThinLTO] Work around getBaseObject returning null for alias-to-ifunc.

As far as I can tell, GlobalIndirectSymbol is there to share code between GlobalAlias and GlobalIFunc.
This shared code is mostly a common getBaseObject() implementation, which just delegates to getIndirectSymbol() (== getOperand(0)).
For GlobalAliases, the indirect symbol is the aliasee. For GlobalIFuncs, the indirect symbol is the resolver function.

Jun 24 2020, 6:27 AM · Restricted Project
nextsilicon-itay-bookstein added a comment to D81911: [ThinLTO] Work around getBaseObject returning null for alias-to-ifunc.

Doesn't that mean that GlobalIFunc shouldn't really inherit from GlobalIndirectSymbol (and then GlobalIndirectSymbol loses the justification for its existence)?
I get the feeling like there's an expectation for getBaseObject to be idempotent (since it pierces through ConstantExprs and GlobalAliases), but GlobalIndirectSymbol::getBaseObject takes the resolver (getOperand(0)) and performs the lookup on it.

Jun 24 2020, 4:49 AM · Restricted Project
nextsilicon-itay-bookstein added a comment to D82433: [ELF] -r: don't parse @ (symbol versioning) for .symver inline asm in bitcode.

Used the exact same fix as a local workaround until further counsel on the bug report, so looks good to me.
Thank you!

Jun 24 2020, 12:29 AM · Restricted Project

Jun 17 2020

nextsilicon-itay-bookstein updated the diff for D81911: [ThinLTO] Work around getBaseObject returning null for alias-to-ifunc.

I added a test case that exercises the crash before the fix.
However, your comment made me realize that there are two separate issues + one question here:

  1. getBaseObject() is currently unable to indirect through GlobalIFuncs (as the current fix tries to address).
  2. computeAliasSummary() assumes that getBaseObject() can never return nullptr, while it has potential flows that return nullptr. In Verifier::visitGlobalAlias() I see that aliases-to-ConstantExpr-s are valid, but in Verifier::visitAliaseeSubExpr I see that alias cycles are invalid. If we assume that the module for which we generate a summary is valid, this question amounts to whether it is valid for the ConstantExpr case of an alias to ever return nullptr there. I can add an assert(Aliasee) / fatal(..) in computeAliasSummary.
  3. Is it valid for a GlobalIFunc to have an alias as its resolver function operand? It sounds contrived, but valid nonetheless (e.g. if the resolver is in a different translation unit and they end up getting merged in LTO?). A GlobalIFunc with a resolver that is itself a GlobalIFunc sounds like an invalid construction to me, though. I don't see references to GlobalIFunc in Verifier.cpp to use as guiding principles for what would be considered valid. So, it sounds to me that with respect to module validity, in an alias-...-alias-ifunc-alias-...-resolverfunc chain there should only ever be a single ifunc at most.
Jun 17 2020, 3:44 AM · Restricted Project

Jun 16 2020

nextsilicon-itay-bookstein added a comment to D81911: [ThinLTO] Work around getBaseObject returning null for alias-to-ifunc.

Wondering what the most appropriate place for the test case is.
I can hit the crash by passing --module-summary to opt, but the crash is a bit removed from the underlying issue itself, I think.

Jun 16 2020, 7:09 AM · Restricted Project
nextsilicon-itay-bookstein created D81911: [ThinLTO] Work around getBaseObject returning null for alias-to-ifunc.
Jun 16 2020, 12:30 AM · Restricted Project

Jun 15 2020

nextsilicon-itay-bookstein added a comment to D81605: [IR] Add missing GlobalAlias copying of ThreadLocalMode attribute.

Alright, looks like it's settled and ready then :)
I cannot commit the patch myself because I don't have commit access, so might I trouble one of you with that?

Jun 15 2020, 2:08 AM · Restricted Project

Jun 12 2020

nextsilicon-itay-bookstein updated the diff for D81605: [IR] Add missing GlobalAlias copying of ThreadLocalMode attribute.

Updated title and description.
Added description for test, created PR in bugzilla, corrected PR reference to point at it.

Jun 12 2020, 2:08 AM · Restricted Project
nextsilicon-itay-bookstein retitled D81605: [IR] Add missing GlobalAlias copying of ThreadLocalMode attribute from IR: Add missing GlobalAlias copying of ThreadLocalMode attribute to [IR] Add missing GlobalAlias copying of ThreadLocalMode attribute.
Jun 12 2020, 2:08 AM · Restricted Project

Jun 11 2020

nextsilicon-itay-bookstein updated the diff for D81605: [IR] Add missing GlobalAlias copying of ThreadLocalMode attribute.

Changed the fix to push the ThreadLocalMode copying from derived class GlobalVariable down to base class GlobalValue.
Added an appropriate test under llvm/test/Linker.

Jun 11 2020, 3:37 AM · Restricted Project

Jun 10 2020

nextsilicon-itay-bookstein created D81605: [IR] Add missing GlobalAlias copying of ThreadLocalMode attribute.
Jun 10 2020, 11:41 AM · Restricted Project