Page MenuHomePhabricator

uenoku (Hideto Ueno)
User

Projects

User does not belong to any projects.

User Details

User Since
Mar 8 2019, 5:25 AM (220 w, 6 d)

Recent Activity

Jun 4 2022

uenoku abandoned D60031: Split tailcallelim into tailcallmark and tailcallelim.
Jun 4 2022, 8:54 AM · Restricted Project, Restricted Project

Jun 1 2022

Herald added a project to D95394: Add a new Dialect interface to control implicit attribute propagation.: Restricted Project.
Jun 1 2022, 7:19 AM · Restricted Project, Restricted Project

Feb 12 2022

uenoku added a comment to D60031: Split tailcallelim into tailcallmark and tailcallelim.

It still fails some tests and I'm afraid it changed something since the review was almost three years ago.
I don't have enough time to work on so @xbolva00, could you take over this PR if you have urgent use cases?

Feb 12 2022, 10:27 AM · Restricted Project, Restricted Project

Jan 31 2022

uenoku updated the diff for D60031: Split tailcallelim into tailcallmark and tailcallelim.

Rebased. I didn't realize this was not merged. Sorry everyone who waited for this.

Jan 31 2022, 12:33 PM · Restricted Project, Restricted Project

Sep 19 2021

uenoku added a comment to D109661: [FunctionPropertiesAnalysis] Add `PreciseFunctionPropertiesAnalysis`.

We could always make it an argument for the pass, e.g., when you create it you select the precision. Or, a command line option to get higher/lower precision. I think by default it should track all features and we can have subsets defined in a command line option if necessary. So if a user wants only 10 of the 40 features they add a selector into a command line enum and use it to skip features.

Sep 19 2021, 12:20 PM · Restricted Project, Restricted Project
uenoku added a comment to D109661: [FunctionPropertiesAnalysis] Add `PreciseFunctionPropertiesAnalysis`.

Add setters/getters and rename the class name.

Sep 19 2021, 12:11 PM · Restricted Project, Restricted Project
uenoku updated the diff for D109661: [FunctionPropertiesAnalysis] Add `PreciseFunctionPropertiesAnalysis`.
Sep 19 2021, 12:10 PM · Restricted Project, Restricted Project

Sep 13 2021

uenoku added a comment to D109661: [FunctionPropertiesAnalysis] Add `PreciseFunctionPropertiesAnalysis`.

We could always make it an argument for the pass, e.g., when you create it you select the precision. Or, a command line option to get higher/lower precision. I think by default it should track all features and we can have subsets defined in a command line option if necessary. So if a user wants only 10 of the 40 features they add a selector into a command line enum and use it to skip features.

Creating an argument for the pass sounds good for me. IMHO, we don't need command option for the pass because I guess all use cases are from LLVM internal.

Sep 13 2021, 2:13 AM · Restricted Project, Restricted Project

Sep 12 2021

uenoku added a reviewer for D109661: [FunctionPropertiesAnalysis] Add `PreciseFunctionPropertiesAnalysis`: tarinduj.
Sep 12 2021, 10:56 AM · Restricted Project, Restricted Project
uenoku added a comment to D109661: [FunctionPropertiesAnalysis] Add `PreciseFunctionPropertiesAnalysis`.

And if you wish to add other features not listed here, please let me know.

Sep 12 2021, 10:56 AM · Restricted Project, Restricted Project
uenoku added a comment to D109661: [FunctionPropertiesAnalysis] Add `PreciseFunctionPropertiesAnalysis`.

@jdoerfert @mtrofin
Currently, I created a new pass because I'm not sure additional costs to calculates new features are affordable at MLInliner.
I'd like to put new features on FunctionPropertiesInfo if computational costs don't matter.

Sep 12 2021, 10:52 AM · Restricted Project, Restricted Project
uenoku requested review of D109661: [FunctionPropertiesAnalysis] Add `PreciseFunctionPropertiesAnalysis`.
Sep 12 2021, 10:48 AM · Restricted Project, Restricted Project

Jun 17 2021

uenoku added inline comments to D103856: [Attributor] Introduce a helper do deal with constant type mismatches.
Jun 17 2021, 7:35 AM · Restricted Project

Jan 26 2021

Herald added a reviewer for D94740: [Attributor] Create `AAMustProgress` for the `mustprogress` attribute: bollu.

Basically it looks good to me.
However, it's not obvious to me that (known) willreturn can derive mustprogress.
(It seems correct to me though)

Jan 26 2021, 1:11 AM · Restricted Project

Oct 14 2020

uenoku added inline comments to D89410: [Attributor] Deduce noalias for local global variables with a single use.
Oct 14 2020, 2:48 PM · Restricted Project
uenoku updated the diff for D89410: [Attributor] Deduce noalias for local global variables with a single use.

Handle Global Value

Oct 14 2020, 2:44 PM · Restricted Project
uenoku updated the diff for D89410: [Attributor] Deduce noalias for local global variables with a single use.

Small fix

Oct 14 2020, 10:54 AM · Restricted Project
uenoku retitled D89410: [Attributor] Deduce noalias for local global variables with a single use from [Attributor] Deduce noalias for local global variables with asingle use to [Attributor] Deduce noalias for local global variables with a single use.
Oct 14 2020, 10:43 AM · Restricted Project
uenoku requested review of D89410: [Attributor] Deduce noalias for local global variables with a single use.
Oct 14 2020, 10:41 AM · Restricted Project

Oct 13 2020

uenoku accepted D89188: [CallGraphUpdater][FIX] Do not attempt to update unreachable functions.

LGTM

Oct 13 2020, 2:59 AM · Restricted Project, Restricted Project

Oct 2 2020

uenoku added a comment to D75433: [MLIR] Add llvm.switch.

Sorry, I quite forgot this patch...
@bollu Yes, that's fine. Thanks!

Oct 2 2020, 1:36 AM · Restricted Project

Aug 28 2020

uenoku added inline comments to D86696: [Attributor][WIP] Introduce Loop AA.
Aug 28 2020, 10:58 AM · Restricted Project
uenoku added inline comments to D86696: [Attributor][WIP] Introduce Loop AA.
Aug 28 2020, 8:57 AM · Restricted Project
uenoku added inline comments to D86696: [Attributor][WIP] Introduce Loop AA.
Aug 28 2020, 8:39 AM · Restricted Project
uenoku added inline comments to D86349: [Attributor] Fix IntegerRangeState::unionKnown.
Aug 28 2020, 8:31 AM · Restricted Project

Aug 27 2020

uenoku added inline comments to D86696: [Attributor][WIP] Introduce Loop AA.
Aug 27 2020, 5:57 AM · Restricted Project

Aug 19 2020

uenoku accepted D86145: [Attributor] Simplify comparison against constant null pointer.

Great, LGTM :)

Aug 19 2020, 9:47 AM · Restricted Project
uenoku added inline comments to D86018: [Attributor] fix AAValueConstantRange and IntegerRangeState implementation.
Aug 19 2020, 9:35 AM · Restricted Project

Aug 16 2020

uenoku added a comment to D86018: [Attributor] fix AAValueConstantRange and IntegerRangeState implementation.

Why can't we take a union of assumed range?

Aug 16 2020, 1:52 AM · Restricted Project

Aug 13 2020

uenoku added a comment to D77752: [llvm] Machine Learned policy for inlining -Oz.

Hi, I want to use my TensorFlow model in LLVM with MLModelRunner, like ReleaseModeModelRunner.cpp but I have difficulty compiling the model, especially in the TensorFlow AOT complication of the model.
It would be really helpful if you point me out the code which defines the computation graph and the signature. Is such a script already landed or published somewhere?

We are about to publish the training algorithm, I'll update here when that's done - meanwhile, a possible way to unblock would be to inspect the expected inputs and outputs of the graph from the protobuf itself - it is in textual form - or using tensorboard, I believe it has a facility for this.

Note that the only interface between LLVM and the model is the input and output signatures, the internal structure of the model can differ.

Aug 13 2020, 8:27 AM · Restricted Project, Restricted Project
uenoku added a comment to D77752: [llvm] Machine Learned policy for inlining -Oz.

Hi, I want to use my TensorFlow model in LLVM with MLModelRunner, like ReleaseModeModelRunner.cpp but I have difficulty compiling the model, especially in the TensorFlow AOT complication of the model.
It would be really helpful if you point me out the code which defines the computation graph and the signature. Is such a script already landed or published somewhere?

Aug 13 2020, 7:33 AM · Restricted Project, Restricted Project

Jul 21 2020

uenoku added a comment to D82283: Add new function properties to FunctionPropertiesAnalysis.

What happened to this patch?

Jul 21 2020, 4:59 AM · Restricted Project

Jul 15 2020

uenoku added inline comments to D83744: [Attributor] Attributor call site specific AAValueConstantRange.
Jul 15 2020, 7:09 PM · Restricted Project

Jul 7 2020

uenoku added a comment to D83185: [Attributor] Introduce Attribute seed allow list..

Either is fine but I think it is more natural to forbid an empty list.

Do you mean returning a error if a empty --attributor-seed-allow-list option is present ?
Currently the size of list is being used to tell if a list is present or not.
I think I can use getNumOccurrences() to replace this behaviour .

Yes, I think replacing ZeroOrMore with OneOrMore is enoguh

I think cl::OneOrMore causes a error to be generated if the option is not specified.
That would make it mandatory to have a atleast one --attributor-seed-allow-list parameter for every invocation of
opt

https://llvm.org/docs/CommandLine.html

The cl::OneOrMore modifier indicates that the option must be specified at least one time.

Jul 7 2020, 5:56 AM · Restricted Project

Jul 6 2020

uenoku added a comment to D83185: [Attributor] Introduce Attribute seed allow list..

Either is fine but I think it is more natural to forbid an empty list.

Do you mean returning a error if a empty --attributor-seed-allow-list option is present ?
Currently the size of list is being used to tell if a list is present or not.
I think I can use getNumOccurrences() to replace this behaviour .

Jul 6 2020, 3:23 PM · Restricted Project
uenoku added a comment to D83185: [Attributor] Introduce Attribute seed allow list..

Either is fine but I think it is more natural to forbid an empty list.

Jul 6 2020, 2:28 PM · Restricted Project

Jun 28 2020

uenoku added a comment to D80991: [WIP][Attributor] AAPotentialValues Attribute.

MaxPotentialValues is defined multiple times if you put the definition to the header.
You have to make it an external variable or declare in AttributorAttributes.cpp

Jun 28 2020, 11:19 AM · Restricted Project

Jun 26 2020

uenoku added a comment to D82625: [Attributor][NFC] Replace call site with call base..

I think replacing all makes the code hard to understand (because "call base" is just a name of LLVM class)
Personally, I prefer maintaining "call site"

Jun 26 2020, 3:13 AM · Restricted Project

May 10 2020

uenoku accepted D78729: [Attributor] Merge the query set into AbstractAttribute.
May 10 2020, 10:38 AM · Restricted Project
uenoku requested changes to D78729: [Attributor] Merge the query set into AbstractAttribute.

Looks good to me.

May 10 2020, 10:38 AM · Restricted Project
uenoku accepted D79680: [Attributor] Fix for a crash on RAUW when rewriting function signature.

Looks reasonable to me.

May 10 2020, 10:06 AM · Restricted Project

Apr 23 2020

uenoku accepted D78719: [Attributor] Inititialize "value attributes" w/ must-be-executed-context info.

LGTM

Apr 23 2020, 11:21 AM · Restricted Project

Mar 29 2020

uenoku accepted D76870: [Attributor] Use the proper context instruction in genericValueTraversal.

LGTM

Mar 29 2020, 7:59 AM · Restricted Project

Mar 28 2020

uenoku accepted D76918: [NFC] Remove obsolete checks followed by fix of isGuaranteedToTransferExecutionToSuccessor.
Mar 28 2020, 8:04 AM · Restricted Project

Mar 27 2020

uenoku added a comment to D76918: [NFC] Remove obsolete checks followed by fix of isGuaranteedToTransferExecutionToSuccessor.

This makes sense to me.

Mar 27 2020, 5:56 AM · Restricted Project

Mar 26 2020

uenoku added a comment to D76674: [Attributor] Derive better alignment for accessed pointers.

Why can't we use ABI info without known access?
I mean, is it possible to use ABI info in initialize?

See my previous comment.
If we decide that pointer has ABI alignment from the get go,
then we will immediately update every underaligned load/store to no longer be underaligned,
which makes no sense. Unless i'm horribly mistaken, just because we said that %z is i32* or i512*,
it doesn't mean it is UB for it to be aligned to a single byte (& 0b1 == 1),
it is the access to such misaligned pointer that is UB.

Mar 26 2020, 11:25 AM · Restricted Project
uenoku added a comment to D76674: [Attributor] Derive better alignment for accessed pointers.

Why can't we use ABI info without known access?
I mean, is it possible to use ABI info in initialize?

Mar 26 2020, 10:18 AM · Restricted Project

Mar 25 2020

uenoku added inline comments to D76588: [Attributor] Unify testing (=updates,prefixes,run configurations,...).
Mar 25 2020, 5:54 AM · Restricted Project
uenoku added a comment to D76673: [Attributor][FIX] Prevent alignment breakage wrt. must-tail calls.

Good point. It is about:
Attribute::StructRet, Attribute::ByVal, Attribute::InAlloca, Attribute::InReg, Attribute::Returned, Attribute::SwiftSelf, Attribute::SwiftError, Attribute::Alignment

Seems reasonable but I'm not sure why we need to care about returned.

Mar 25 2020, 5:22 AM · Restricted Project

Mar 23 2020

uenoku added a comment to D76175: [Attributor][NFC] Refactorings and typos in doc.

LGTM but it is not fixing the typo rather refactoring :)

Mar 23 2020, 9:48 AM · Restricted Project

Mar 21 2020

uenoku added inline comments to D76208: [Attributor] Use AAValueConstantRange to infer dereferencability..
Mar 21 2020, 8:01 AM · Restricted Project
uenoku added inline comments to D76208: [Attributor] Use AAValueConstantRange to infer dereferencability..
Mar 21 2020, 8:01 AM · Restricted Project
uenoku added inline comments to D76208: [Attributor] Use AAValueConstantRange to infer dereferencability..
Mar 21 2020, 4:47 AM · Restricted Project

Mar 20 2020

uenoku accepted D76378: [Attributor] Make use of analysis in the MustBeExecutedExplorer.
Mar 20 2020, 11:55 AM · Restricted Project

Mar 19 2020

uenoku requested changes to D76378: [Attributor] Make use of analysis in the MustBeExecutedExplorer.
Mar 19 2020, 4:27 PM · Restricted Project
uenoku added inline comments to D76210: [Attributor] AAReachability : use isPotentiallyReachable in isKnownReachable.
Mar 19 2020, 4:17 AM · Restricted Project
uenoku accepted D76378: [Attributor] Make use of analysis in the MustBeExecutedExplorer.

LGTM

Mar 19 2020, 12:31 AM · Restricted Project
uenoku added a comment to D76378: [Attributor] Make use of analysis in the MustBeExecutedExplorer.

test?

Mar 19 2020, 12:30 AM · Restricted Project

Mar 18 2020

uenoku added a comment to D76378: [Attributor] Make use of analysis in the MustBeExecutedExplorer.

I think Stefan is correct. AnalysisGetter provides such functionality.

Mar 18 2020, 10:15 PM · Restricted Project

Mar 17 2020

uenoku added inline comments to D76210: [Attributor] AAReachability : use isPotentiallyReachable in isKnownReachable.
Mar 17 2020, 11:25 PM · Restricted Project

Mar 16 2020

uenoku added a comment to D76210: [Attributor] AAReachability : use isPotentiallyReachable in isKnownReachable.
void use(int *);
__attribute__((noinline)) static void f1(int * restrict p, int c1, int c2) {
  if (c1) {
    use(p);
  }
  if (!c2) {
    use(p);
  }
}
void f2(int * restrict p, int c) { f1(p, c, c); }

Could you add this example to test?
In this case, c1 and c2 are always same. Because of flow sensitivity, the first callsite is not reachable to the second callsite. So %p is noalias at both callsites. It can't be deduced with isPotentiallyReachable so please add FIXME tag.

Mar 16 2020, 1:05 AM · Restricted Project

Mar 15 2020

uenoku added a comment to D76210: [Attributor] AAReachability : use isPotentiallyReachable in isKnownReachable.

Please upload full context of the diff (diff -U999999)

Mar 15 2020, 10:51 PM · Restricted Project
uenoku added a reviewer for D76208: [Attributor] Use AAValueConstantRange to infer dereferencability.: baziotis.
Mar 15 2020, 10:18 PM · Restricted Project
uenoku added a reviewer for D76210: [Attributor] AAReachability : use isPotentiallyReachable in isKnownReachable: baziotis.
Mar 15 2020, 10:18 PM · Restricted Project
uenoku added a comment to D76210: [Attributor] AAReachability : use isPotentiallyReachable in isKnownReachable.

Thank you for working on this! Please add isKnownReachable change.

Mar 15 2020, 10:18 PM · Restricted Project
uenoku added a comment to D76208: [Attributor] Use AAValueConstantRange to infer dereferencability..

Thank you for working on this!!

Mar 15 2020, 10:18 PM · Restricted Project

Mar 14 2020

uenoku accepted D74888: [Attributor] Use knowledge retained in llvm.assume (operand bundles).

LGTM

Mar 14 2020, 1:33 AM · Restricted Project

Mar 13 2020

uenoku added a comment to D74691: [Attributor] Detect possibly unbounded cycles in functions.

You don't have to care about the failure if the failure doesn't occur multiple times.
Please see https://lists.llvm.org/pipermail/llvm-dev/2019-November/136710.html

I think a better way to put it is that you don't have to care about the failure if you did not cause it (e.g. you might not get multiple emails if other bots were broken before)

Mar 13 2020, 11:17 AM · Restricted Project
uenoku added a comment to D74691: [Attributor] Detect possibly unbounded cycles in functions.

You don't have to care about the failure if the failure doesn't occur multiple times.
Please see https://lists.llvm.org/pipermail/llvm-dev/2019-November/136710.html

Mar 13 2020, 10:44 AM · Restricted Project
uenoku accepted D74691: [Attributor] Detect possibly unbounded cycles in functions.

LGTM

Mar 13 2020, 4:24 AM · Restricted Project
uenoku added a comment to D71617: [Attributor] Improve noalias preservation using reachability.

I think the title should be more descriptive, like "improve noalias preservation using reachability" or something.

Mar 13 2020, 2:58 AM · Restricted Project
uenoku accepted D71617: [Attributor] Improve noalias preservation using reachability.

LGTM

Mar 13 2020, 1:33 AM · Restricted Project

Mar 12 2020

uenoku committed rGd9bf79f4e995: [Attributor][FIX] Add a missing dependence track in noalias deduction (authored by uenoku).
[Attributor][FIX] Add a missing dependence track in noalias deduction
Mar 12 2020, 8:42 AM
uenoku added a comment to D71617: [Attributor] Improve noalias preservation using reachability.

Please guide on why nonull.ll shows additional noalias propagation. I see that the caller doesn't have noalias attribute but it has derived it.

It was caused by a bug that the dependence track was missing for NoAliasAA so I have pushed the fix. (https://github.com/llvm/llvm-project/commit/d9bf79f4e9952acca1fa353e39bcee89cd69550f)

Mar 12 2020, 8:40 AM · Restricted Project
uenoku planned changes to D75923: [Attributor] Deduction based on recursive path exploration.

This patch traverses the same context multiple times so the cost might get huge.
I'll create something like a cache.

Mar 12 2020, 3:46 AM · Restricted Project
uenoku added inline comments to D75923: [Attributor] Deduction based on recursive path exploration.
Mar 12 2020, 3:46 AM · Restricted Project

Mar 11 2020

uenoku abandoned D75924: [Attributor] AANoCapture: Regard a comparison to null as nocapture.

I have misunderstood how CaptureTracker works. AANoCapture already has this functionality :) So I'd close it.
But I have thought some of FIXME in the test seems wrong.

Mar 11 2020, 1:35 AM · Restricted Project

Mar 10 2020

uenoku added inline comments to D74691: [Attributor] Detect possibly unbounded cycles in functions.
Mar 10 2020, 9:12 AM · Restricted Project
uenoku added a comment to D75924: [Attributor] AANoCapture: Regard a comparison to null as nocapture.

I have missed to check the dereferenceability of the pointer. I'll fix it later.
So now the tests are broken.

Mar 10 2020, 8:39 AM · Restricted Project
uenoku created D75924: [Attributor] AANoCapture: Regard a comparison to null as nocapture.
Mar 10 2020, 8:39 AM · Restricted Project
uenoku created D75923: [Attributor] Deduction based on recursive path exploration.
Mar 10 2020, 7:32 AM · Restricted Project

Mar 9 2020

uenoku added inline comments to D74691: [Attributor] Detect possibly unbounded cycles in functions.
Mar 9 2020, 9:09 AM · Restricted Project
uenoku added a comment to D71617: [Attributor] Improve noalias preservation using reachability.

Please use code block.

Mar 9 2020, 8:35 AM · Restricted Project

Mar 8 2020

uenoku committed rGbdcbdb484829: [Attributor] Deduction based on path exploration (authored by uenoku).
[Attributor] Deduction based on path exploration
Mar 8 2020, 10:55 PM
uenoku closed D65593: [Attributor] Deduction based on path exploration.
Mar 8 2020, 10:55 PM · Restricted Project

Mar 7 2020

uenoku added a comment to D65593: [Attributor] Deduction based on path exploration.

I have not convinced myself that this covers the recursive case properly, maybe that was never the intend though. Can we have a test like this:

Mar 7 2020, 1:38 AM · Restricted Project
uenoku updated the diff for D65593: [Attributor] Deduction based on path exploration.

Fix comment and add test.

Mar 7 2020, 1:38 AM · Restricted Project

Mar 6 2020

uenoku added inline comments to D75590: [Attributor] IPO across definition boundary of a function marked alwaysinline.
Mar 6 2020, 12:35 AM · Restricted Project, Restricted Project

Mar 4 2020

uenoku added a comment to D75433: [MLIR] Add llvm.switch.

As I see the discussion in the forum, it seems best to create a basic block for each case. I'll implement so.

Mar 4 2020, 5:06 AM · Restricted Project
uenoku added inline comments to D75590: [Attributor] IPO across definition boundary of a function marked alwaysinline.
Mar 4 2020, 5:06 AM · Restricted Project, Restricted Project

Mar 2 2020

uenoku added a comment to D75433: [MLIR] Add llvm.switch.

We can impose a similar restriction on switch in the LLVM dialect and require whoever constructs the IR to deal with it. This may be suboptimal from the usability standpoint, but so is automagically inserting dummy blocks in the translation. We've had a similar discussion in the indirectbr patch, inconclusive as far as I can tell. Let's bring this to the discussion form.

Ok, that seems fine.

Mar 2 2020, 5:02 AM · Restricted Project
uenoku added a comment to D75433: [MLIR] Add llvm.switch.

@rriddle @ftynse Thank you for the comments :)

Thanks for the patch!

Currently, successors are not allowed to have block arguments because we can't directly translate block arguments into phi node.

Could you elaborate on this? We have logic that translates branch arguments into phi nodes as a post-processing step after all blocks, it should be sufficient to modify getPHISourceValue to handle switch in addition to branches.

Mar 2 2020, 2:42 AM · Restricted Project

Mar 1 2020

uenoku created D75433: [MLIR] Add llvm.switch.
Mar 1 2020, 9:17 PM · Restricted Project

Feb 27 2020

uenoku updated the diff for D65593: [Attributor] Deduction based on path exploration.

Simplify implementation.

Feb 27 2020, 7:03 PM · Restricted Project
uenoku added inline comments to D65593: [Attributor] Deduction based on path exploration.
Feb 27 2020, 7:03 PM · Restricted Project

Feb 26 2020

uenoku added a comment to D74691: [Attributor] Detect possibly unbounded cycles in functions.

Could you make sure that you are using a new pass manager? (It means to use ./opt -passes=attributor .. but not ./opt -attributor ..)
If you are using an old pass manager, you might not get LoopInfo or other analysis.

Feb 26 2020, 2:42 AM · Restricted Project
uenoku added inline comments to D65593: [Attributor] Deduction based on path exploration.
Feb 26 2020, 2:22 AM · Restricted Project
uenoku added inline comments to D65593: [Attributor] Deduction based on path exploration.
Feb 26 2020, 1:18 AM · Restricted Project
uenoku updated the diff for D65593: [Attributor] Deduction based on path exploration.

Address comments

Feb 26 2020, 1:10 AM · Restricted Project

Feb 25 2020

uenoku updated the diff for D65593: [Attributor] Deduction based on path exploration.

Rebased. I simply use AbstractState to accumulate the known information.

Feb 25 2020, 4:33 AM · Restricted Project