Page MenuHomePhabricator

gulfem (Gulfem Savrun Yeniceri)
User

Projects

User does not belong to any projects.

User Details

User Since
Oct 19 2020, 10:52 AM (25 w, 16 h)

Recent Activity

Yesterday

gulfem committed rGe96df3e531f5: [Passes] Add relative lookup table converter pass (authored by gulfem).
[Passes] Add relative lookup table converter pass
Mon, Apr 12, 6:31 PM

Thu, Apr 1

gulfem added a comment to D94355: [Passes] Add relative lookup table converter pass.

Would you be ok with reverting this change until I can sort that out, or can we disable the pass for those targets until then?

I will disable the pass for those targets for now.
When the issue is resolved, I would like to enable it for those targets as well.

Thu, Apr 1, 5:05 PM · Restricted Project, Restricted Project

Mon, Mar 29

gulfem committed rG5178ffc7cf92: [Passes] Add relative lookup table converter pass (authored by gulfem).
[Passes] Add relative lookup table converter pass
Mon, Mar 29, 3:12 PM

Wed, Mar 24

gulfem added a reverting change for rG5fd001a5ffba: [Passes] Add relative lookup table converter pass: rG5fbe1fdf1702: Revert "[Passes] Add relative lookup table converter pass".
Wed, Mar 24, 12:01 PM
gulfem committed rG5fbe1fdf1702: Revert "[Passes] Add relative lookup table converter pass" (authored by gulfem).
Revert "[Passes] Add relative lookup table converter pass"
Wed, Mar 24, 12:01 PM
gulfem added a reverting change for D94355: [Passes] Add relative lookup table converter pass: rG5fbe1fdf1702: Revert "[Passes] Add relative lookup table converter pass".
Wed, Mar 24, 12:01 PM · Restricted Project, Restricted Project
gulfem committed rG5fd001a5ffba: [Passes] Add relative lookup table converter pass (authored by gulfem).
[Passes] Add relative lookup table converter pass
Wed, Mar 24, 10:32 AM
gulfem added a comment to D98874: [TTI] Return a TypeSize from getRegisterBitWidth..

I think this commit caused an issue in one of the files in polly.
Please see the error message below:

[3469/3899] Building CXX object tools/polly/lib/CMakeFiles/obj.Polly.dir/Transform/ScheduleOptimizer.cpp.o
FAILED: tools/polly/lib/CMakeFiles/obj.Polly.dir/Transform/ScheduleOptimizer.cpp.o 
/b/s/w/ir/cache/goma/client/gomacc /b/s/w/ir/x/w/cipd/bin/clang++ --sysroot=/b/s/w/ir/x/w/cipd/linux -DGTEST_HAS_RTTI=0 -D_DEBUG -D_GNU_SOURCE -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -Itools/polly/lib -I/b/s/w/ir/x/w/llvm-project/polly/lib -Itools/polly/include -I/b/s/w/ir/x/w/llvm-project/polly/lib/External -I/b/s/w/ir/x/w/llvm-project/polly/lib/External/pet/include -I/b/s/w/ir/x/w/llvm-project/polly/lib/External/isl/include -Itools/polly/lib/External/isl/include -I/b/s/w/ir/x/w/llvm-project/polly/include -Iinclude -I/b/s/w/ir/x/w/llvm-project/llvm/include -fPIC -fvisibility-inlines-hidden -Werror=date-time -Werror=unguarded-availability-new -Wall -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wmissing-field-initializers -pedantic -Wno-long-long -Wc++98-compat-extra-semi -Wimplicit-fallthrough -Wcovered-switch-default -Wno-noexcept-type -Wnon-virtual-dtor -Wdelete-non-virtual-dtor -Wsuggest-override -Wno-comment -Wstring-conversion -fdiagnostics-color -ffunction-sections -fdata-sections -ffile-prefix-map=/b/s/w/ir/x/w/staging/llvm_build=../staging/llvm_build -ffile-prefix-map=/b/s/w/ir/x/w/llvm-project/= -no-canonical-prefixes -fno-exceptions -fno-rtti -O3   -fno-exceptions -fno-unwind-tables -fno-asynchronous-unwind-tables -fno-rtti -UNDEBUG -std=c++14 -MD -MT tools/polly/lib/CMakeFiles/obj.Polly.dir/Transform/ScheduleOptimizer.cpp.o -MF tools/polly/lib/CMakeFiles/obj.Polly.dir/Transform/ScheduleOptimizer.cpp.o.d -o tools/polly/lib/CMakeFiles/obj.Polly.dir/Transform/ScheduleOptimizer.cpp.o -c /b/s/w/ir/x/w/llvm-project/polly/lib/Transform/ScheduleOptimizer.cpp
/b/s/w/ir/x/w/llvm-project/polly/lib/Transform/ScheduleOptimizer.cpp:1220:49: error: cannot initialize a parameter of type 'llvm::TargetTransformInfo::RegisterKind' with an rvalue of type 'bool'
    RegisterBitwidth = TTI->getRegisterBitWidth(true);
                                                ^~~~
/b/s/w/ir/x/w/llvm-project/llvm/include/llvm/Analysis/TargetTransformInfo.h:926:45: note: passing argument to parameter 'K' here
  TypeSize getRegisterBitWidth(RegisterKind K) const;
Wed, Mar 24, 9:53 AM · Restricted Project

Tue, Mar 23

gulfem accepted D99217: [lld-macho] Fixed lld-version expectation in test so it works on Fuchsia. On Fuchsia, it's called Fuchsia LLD.
Tue, Mar 23, 2:54 PM · Restricted Project, Restricted Project

Mon, Mar 22

gulfem added a reverting change for rG78a65cd945d0: [Passes] Add relative lookup table converter pass: rGe3a6d70c6834: Revert "[Passes] Add relative lookup table converter pass".
Mon, Mar 22, 5:44 PM
gulfem committed rGe3a6d70c6834: Revert "[Passes] Add relative lookup table converter pass" (authored by gulfem).
Revert "[Passes] Add relative lookup table converter pass"
Mon, Mar 22, 5:44 PM
gulfem added a reverting change for D94355: [Passes] Add relative lookup table converter pass: rGe3a6d70c6834: Revert "[Passes] Add relative lookup table converter pass".
Mon, Mar 22, 5:44 PM · Restricted Project, Restricted Project
gulfem committed rGfc069f0165bf: [doc] Fix typo in rel lookup table converter pass (authored by gulfem).
[doc] Fix typo in rel lookup table converter pass
Mon, Mar 22, 4:27 PM
gulfem added inline comments to D94355: [Passes] Add relative lookup table converter pass.
Mon, Mar 22, 3:50 PM · Restricted Project, Restricted Project
gulfem committed rG78a65cd945d0: [Passes] Add relative lookup table converter pass (authored by gulfem).
[Passes] Add relative lookup table converter pass
Mon, Mar 22, 3:09 PM
gulfem closed D94355: [Passes] Add relative lookup table converter pass.
Mon, Mar 22, 3:09 PM · Restricted Project, Restricted Project

Fri, Mar 19

gulfem added inline comments to D94355: [Passes] Add relative lookup table converter pass.
Fri, Mar 19, 2:19 PM · Restricted Project, Restricted Project
gulfem added a comment to D94355: [Passes] Add relative lookup table converter pass.

@lebedev.ri do you have further comments?
If not, I would like to submit this patch.

Fri, Mar 19, 8:23 AM · Restricted Project, Restricted Project

Tue, Mar 16

gulfem added inline comments to D94355: [Passes] Add relative lookup table converter pass.
Tue, Mar 16, 6:20 PM · Restricted Project, Restricted Project
gulfem added inline comments to D94355: [Passes] Add relative lookup table converter pass.
Tue, Mar 16, 6:10 PM · Restricted Project, Restricted Project
gulfem updated the diff for D94355: [Passes] Add relative lookup table converter pass.
  1. Add no_relative_lookup_table.ll test case that checks the cases where relative lookup table should not be generated
  2. Add comments about dso_local check and single use check
Tue, Mar 16, 6:01 PM · Restricted Project, Restricted Project

Mar 12 2021

gulfem added inline comments to D94355: [Passes] Add relative lookup table converter pass.
Mar 12 2021, 6:12 PM · Restricted Project, Restricted Project
gulfem updated the diff for D94355: [Passes] Add relative lookup table converter pass.
  1. Used IsConstantOffsetFromGlobal() function
  2. Added this pass to the end of legacy pass manager pipeline
  3. Moved all the tests under a new test directory
Mar 12 2021, 5:22 PM · Restricted Project, Restricted Project

Mar 4 2021

gulfem updated the diff for D94355: [Passes] Add relative lookup table converter pass.

Use TTI hook for target machine checks

Mar 4 2021, 6:29 PM · Restricted Project, Restricted Project

Mar 2 2021

gulfem closed D90275: [clang][IR] Add support for leaf attribute.

Since this patch has been merged and the issue in the test has been resolved, I'm closing this review.

Mar 2 2021, 11:28 AM · Restricted Project, Restricted Project

Feb 24 2021

gulfem added inline comments to D94355: [Passes] Add relative lookup table converter pass.
Feb 24 2021, 7:09 PM · Restricted Project, Restricted Project
gulfem added a comment to D94355: [Passes] Add relative lookup table converter pass.

It looks like you have everything setup for running on the new PM, but it doesn't look like the pass is added anywhere in the new PM pipeline.

Thank you very much for pointing that out @leonardchan !
I added this pass into both pass managers now.

Feb 24 2021, 7:02 PM · Restricted Project, Restricted Project
gulfem added a comment to D94355: [Passes] Add relative lookup table converter pass.

Thanks for pushing this forward! I think this will be a nice transformation once all the details are worked out.

Thank you very much for all of your wonderful constructive feedback!
I learned much more about LLVM and IR internals.
Appreciate all your help!

Feb 24 2021, 6:59 PM · Restricted Project, Restricted Project
gulfem added inline comments to D94355: [Passes] Add relative lookup table converter pass.
Feb 24 2021, 6:54 PM · Restricted Project, Restricted Project
gulfem retitled D94355: [Passes] Add relative lookup table converter pass from [Passes] Add relative lookup table generator pass to [Passes] Add relative lookup table converter pass.
Feb 24 2021, 6:47 PM · Restricted Project, Restricted Project
gulfem updated the diff for D94355: [Passes] Add relative lookup table converter pass.
  • Rename the pass to RelLookupTableConverter to be consistent
  • Addressed reviewers' feedback
  • Added tests for user-defined lookup tables and hidden visibility
Feb 24 2021, 6:45 PM · Restricted Project, Restricted Project

Feb 17 2021

gulfem updated the summary of D94355: [Passes] Add relative lookup table converter pass.
Feb 17 2021, 8:54 AM · Restricted Project, Restricted Project
gulfem retitled D94355: [Passes] Add relative lookup table converter pass from [SimplifyCFG] Add relative switch lookup tables to [Passes] Add relative lookup table generator pass.
Feb 17 2021, 8:54 AM · Restricted Project, Restricted Project

Feb 16 2021

gulfem added a comment to D94355: [Passes] Add relative lookup table converter pass.

@lebedev.ri based on your feedback, I added it as a separate pass and added support for user-defined lookup tables.
Please let me know if you have any comments.

Feb 16 2021, 6:07 PM · Restricted Project, Restricted Project
gulfem updated the diff for D94355: [Passes] Add relative lookup table converter pass.

Implement it as a separate pass and apply it to user-defined lookup tables as well.

Feb 16 2021, 6:02 PM · Restricted Project, Restricted Project

Jan 29 2021

gulfem added a comment to D94355: [Passes] Add relative lookup table converter pass.

Can you please add an explanation to the patch's description as to why
we don't want to instead convert non-relative/relative LUT's elsewhere,
please.

@mcgrathr gave some explanation to that:

Many backends generate PIC-friendly jump tables. This is about generating IR initializers that translate to the same kind of backend assembly expressions as those backends use for their jump tables.

Jan 29 2021, 4:15 PM · Restricted Project, Restricted Project

Jan 28 2021

gulfem added inline comments to D94355: [Passes] Add relative lookup table converter pass.
Jan 28 2021, 7:03 PM · Restricted Project, Restricted Project
gulfem updated the diff for D94355: [Passes] Add relative lookup table converter pass.
  1. Simplified test cases and increased readibility of the tables
  2. Added x86_64 and aarch64 check and tiny or small code modes check to ensure 32 offsets
  3. Modified single value test case
Jan 28 2021, 6:52 PM · Restricted Project, Restricted Project

Jan 21 2021

gulfem updated the diff for D94355: [Passes] Add relative lookup table converter pass.
  1. Apply relative lookup table generation in fPIC mode
  2. Add a test case for single value case
  3. Remove hard-coding 64 bit pointers
  4. Improve implementation and test coverage
Jan 21 2021, 5:59 PM · Restricted Project, Restricted Project

Jan 14 2021

gulfem added inline comments to D94355: [Passes] Add relative lookup table converter pass.
Jan 14 2021, 6:36 PM · Restricted Project, Restricted Project
gulfem updated the diff for D94355: [Passes] Add relative lookup table converter pass.
  1. Add dso_local check
  2. Remove -relative-switch-lookup-table flag, and enable it by default
  3. Use shift instead of mul
  4. Remove /ARM test and merge it with /X86 test
Jan 14 2021, 6:28 PM · Restricted Project, Restricted Project

Jan 13 2021

gulfem added a comment to D94355: [Passes] Add relative lookup table converter pass.
if (IsRelative)
  GenRelative
else 
  GenAbsolute

looks pretty ad-hoc, as-if some abstraction is missing.

Jan 13 2021, 5:19 PM · Restricted Project, Restricted Project
gulfem updated the diff for D94355: [Passes] Add relative lookup table converter pass.

Use llvm.load.relative intrinsic to compute the target address based on Leo's feedback.

Jan 13 2021, 5:09 PM · Restricted Project, Restricted Project
gulfem updated the diff for D94355: [Passes] Add relative lookup table converter pass.

Add a new Kind enumerator called RelOffsetArrayKind for relative lookup tables

Jan 13 2021, 12:08 PM · Restricted Project, Restricted Project

Jan 12 2021

gulfem added a comment to D94355: [Passes] Add relative lookup table converter pass.

Great stuff, thanks for working on this!

Thanks for the feedback!

Jan 12 2021, 6:35 PM · Restricted Project, Restricted Project

Jan 11 2021

gulfem added a comment to D94355: [Passes] Add relative lookup table converter pass.

Why must values have pointer types?

This optimization is only applied if the values have pointer types like strings to generate PIC friendly code for such cases.
If the values are not pointers but like integers, PIC friendly code is already generated without this optimization.

Jan 11 2021, 6:32 PM · Restricted Project, Restricted Project
gulfem added inline comments to D94355: [Passes] Add relative lookup table converter pass.
Jan 11 2021, 6:27 PM · Restricted Project, Restricted Project
gulfem updated the diff for D94355: [Passes] Add relative lookup table converter pass.

Addressed Leonard Chan's comments

Jan 11 2021, 6:25 PM · Restricted Project, Restricted Project

Jan 8 2021

gulfem added reviewers for D94355: [Passes] Add relative lookup table converter pass: leonardchan, mcgrathr, phosek, hans.
Jan 8 2021, 6:35 PM · Restricted Project, Restricted Project
gulfem requested review of D94355: [Passes] Add relative lookup table converter pass.
Jan 8 2021, 6:28 PM · Restricted Project, Restricted Project

Dec 16 2020

gulfem added reviewers for D93420: [IR] Fixed the typo in attributes test: mcgrathr, haowei.
Dec 16 2020, 2:32 PM · Restricted Project
gulfem requested review of D93420: [IR] Fixed the typo in attributes test.
Dec 16 2020, 2:31 PM · Restricted Project
gulfem added a comment to D90275: [clang][IR] Add support for leaf attribute.

I fixed it in
https://reviews.llvm.org/D92493
But that was just to make my test pass.

Ok, thank you!
I did not realize that typo after the merge, and sorry about that!
I fixed the typo that I introduced in https://reviews.llvm.org/D93420.

Dec 16 2020, 11:43 AM · Restricted Project, Restricted Project
gulfem added a comment to D90275: [clang][IR] Add support for leaf attribute.

The problem in llvm/test/Bitcode/attributes.ll is clear?

@xur Instead of define void @f70() nocallback, it should be define void @f69() nocallback, right?

Dec 16 2020, 11:35 AM · Restricted Project, Restricted Project

Dec 14 2020

gulfem added a comment to D90275: [clang][IR] Add support for leaf attribute.

This is missing a lang ref entry for nocallback and the attributes.ll test is arguably broken (see below).

Could you please elaborate on missing lang ref entry? Where that should be added?

Dec 14 2020, 6:34 PM · Restricted Project, Restricted Project
gulfem updated the summary of D90275: [clang][IR] Add support for leaf attribute.
Dec 14 2020, 9:25 AM · Restricted Project, Restricted Project

Dec 8 2020

gulfem updated the diff for D90275: [clang][IR] Add support for leaf attribute.

Add a new line at the end of the test file

Dec 8 2020, 10:55 AM · Restricted Project, Restricted Project
gulfem added inline comments to D90275: [clang][IR] Add support for leaf attribute.
Dec 8 2020, 10:26 AM · Restricted Project, Restricted Project
gulfem updated the diff for D90275: [clang][IR] Add support for leaf attribute.

Added more Sema test cases

Dec 8 2020, 10:25 AM · Restricted Project, Restricted Project

Dec 7 2020

gulfem added inline comments to D90275: [clang][IR] Add support for leaf attribute.
Dec 7 2020, 6:08 PM · Restricted Project, Restricted Project
gulfem updated the diff for D90275: [clang][IR] Add support for leaf attribute.

Only support leaf attribute in functions

Dec 7 2020, 4:42 PM · Restricted Project, Restricted Project
gulfem added inline comments to D90275: [clang][IR] Add support for leaf attribute.
Dec 7 2020, 12:50 PM · Restricted Project, Restricted Project

Dec 3 2020

gulfem added inline comments to D90275: [clang][IR] Add support for leaf attribute.
Dec 3 2020, 5:28 PM · Restricted Project, Restricted Project

Nov 18 2020

gulfem added inline comments to D90275: [clang][IR] Add support for leaf attribute.
Nov 18 2020, 6:11 PM · Restricted Project, Restricted Project

Nov 11 2020

gulfem added inline comments to D90275: [clang][IR] Add support for leaf attribute.
Nov 11 2020, 8:29 PM · Restricted Project, Restricted Project

Nov 10 2020

gulfem added inline comments to D90275: [clang][IR] Add support for leaf attribute.
Nov 10 2020, 5:33 PM · Restricted Project, Restricted Project

Nov 9 2020

gulfem added inline comments to D90275: [clang][IR] Add support for leaf attribute.
Nov 9 2020, 6:08 PM · Restricted Project, Restricted Project

Nov 5 2020

gulfem added inline comments to D90275: [clang][IR] Add support for leaf attribute.
Nov 5 2020, 11:38 AM · Restricted Project, Restricted Project
gulfem updated the diff for D90275: [clang][IR] Add support for leaf attribute.

Remove direct from description and ObjCMethod for Obj functionality

Nov 5 2020, 11:22 AM · Restricted Project, Restricted Project

Nov 4 2020

gulfem added a comment to D90275: [clang][IR] Add support for leaf attribute.

The more I think about it, the more I think we should never create a leaf/nocallback definition. Only declarations should carry that attribute.

Leaf attribute is specifically intended for library functions and I think all the existing usage of leaf attribute is in the library function declarations.
For ex, it is only used in syscalls in Fuchsia.
Therefore, I'm not sure whether it is really necessary to ban leaf attribute in function definitions.
Even though function attributes are typically intended to be used in the function declaration, compilers do not have policy to forbid using them in the function definition.

Nov 4 2020, 1:18 PM · Restricted Project, Restricted Project
gulfem added inline comments to D90275: [clang][IR] Add support for leaf attribute.
Nov 4 2020, 10:50 AM · Restricted Project, Restricted Project

Nov 3 2020

gulfem added inline comments to D90275: [clang][IR] Add support for leaf attribute.
Nov 3 2020, 5:26 PM · Restricted Project, Restricted Project
gulfem updated the diff for D90275: [clang][IR] Add support for leaf attribute.

Add a target into the test case

Nov 3 2020, 5:01 PM · Restricted Project, Restricted Project
gulfem added a comment to D90275: [clang][IR] Add support for leaf attribute.

The more I think about it, the more I think we should never create a leaf/nocallback definition. Only declarations should carry that attribute.

I'm also still not convinced nocallback is a good name. @efriedma @aqjune @fhahn @reames What are your thoughts on the name. My earlier idea was inaccesiblecodeonly, as it matches the inaccisblememonly idea. I'm not married to it, nocallback is just not great IMHO as direct calls back into the caller TU are also forbidden and there is already !callback.

Nov 3 2020, 12:20 PM · Restricted Project, Restricted Project

Nov 2 2020

gulfem added inline comments to D90275: [clang][IR] Add support for leaf attribute.
Nov 2 2020, 5:28 PM · Restricted Project, Restricted Project
gulfem added inline comments to D90275: [clang][IR] Add support for leaf attribute.
Nov 2 2020, 1:38 PM · Restricted Project, Restricted Project
gulfem updated the diff for D90275: [clang][IR] Add support for leaf attribute.

Update the attribute documentation

Nov 2 2020, 12:23 PM · Restricted Project, Restricted Project
gulfem added inline comments to D90275: [clang][IR] Add support for leaf attribute.
Nov 2 2020, 11:25 AM · Restricted Project, Restricted Project
gulfem added inline comments to D90275: [clang][IR] Add support for leaf attribute.
Nov 2 2020, 11:11 AM · Restricted Project, Restricted Project
gulfem updated the diff for D90275: [clang][IR] Add support for leaf attribute.

Addressed the comments about the documentation

Nov 2 2020, 11:10 AM · Restricted Project, Restricted Project

Oct 29 2020

gulfem updated the diff for D90275: [clang][IR] Add support for leaf attribute.

Fix the typo in the test case

Oct 29 2020, 4:52 PM · Restricted Project, Restricted Project
gulfem updated the diff for D90275: [clang][IR] Add support for leaf attribute.

Add IR and bitcode tests

Oct 29 2020, 4:40 PM · Restricted Project, Restricted Project

Oct 27 2020

gulfem added a comment to D90275: [clang][IR] Add support for leaf attribute.

There is an RFC going out with this prototype as reference. When there is consensus on the RFC, this will get in shape for landing with complete tests and all.

Great. I didn't find anything when I looked for leaf in my cfe-dev inbox. Could someone put a link here, maybe directly into the commit message as it will be useful even after this goes in. Thanks :)

Oct 27 2020, 5:41 PM · Restricted Project, Restricted Project
gulfem added reviewers for D90275: [clang][IR] Add support for leaf attribute: phosek, leonardchan, haowei, mcgrathr.
Oct 27 2020, 5:26 PM · Restricted Project, Restricted Project
gulfem requested review of D90275: [clang][IR] Add support for leaf attribute.
Oct 27 2020, 5:21 PM · Restricted Project, Restricted Project