yamauchi (Hiroshi Yamauchi)
User

Projects

User does not belong to any projects.

User Details

User Since
Jun 28 2017, 5:32 PM (50 w, 5 d)

Recent Activity

Tue, May 22

yamauchi added inline comments to D41574: [Transforms] Adding a WeakReassociate pass.
Tue, May 22, 10:58 AM

May 9 2018

yamauchi added inline comments to D46595: [InstCombine] Apply SimplifyUsingDistributiveLaws to associative/commutative cases..
May 9 2018, 10:49 AM
yamauchi added a comment to D46336: [InstCombine] Apply binary operator simplifications to associative/commutative cases..

Here's a comparison with D45842 for the 4th test @bit-check-combine-256 (which I understand is a long one, I'll try to see if I can reduce this.)

May 9 2018, 10:08 AM

May 8 2018

yamauchi added a comment to D46595: [InstCombine] Apply SimplifyUsingDistributiveLaws to associative/commutative cases..

After -instcombine with D46336

May 8 2018, 12:16 PM
yamauchi added a comment to D46336: [InstCombine] Apply binary operator simplifications to associative/commutative cases..

D46595 is a simpler but limited version of this. Note the test @bit-check-combine-256() doesn't get folded there as simple as here. But it doesn't modify the run loop and is less complex.

May 8 2018, 12:04 PM
yamauchi added a comment to D46595: [InstCombine] Apply SimplifyUsingDistributiveLaws to associative/commutative cases..

This is a simpler, but limited version of D46336. Note the test @bit-check-combine-256() doesn't get folded as simple as in D46336.

May 8 2018, 12:01 PM
yamauchi created D46595: [InstCombine] Apply SimplifyUsingDistributiveLaws to associative/commutative cases..
May 8 2018, 11:59 AM
yamauchi added a comment to D46336: [InstCombine] Apply binary operator simplifications to associative/commutative cases..

I'd guess something in instcombine does not use commutative matchers.
(I did not analyse this at all yet, just 'saving' it as one comment)
https://rise4fun.com/Alive/PsC

May 8 2018, 10:13 AM

May 7 2018

yamauchi added a comment to D46336: [InstCombine] Apply binary operator simplifications to associative/commutative cases..

After -instcombine -reassociate -instcombine -reassociate -instcombine with D45842

May 7 2018, 4:05 PM
yamauchi added a comment to D46336: [InstCombine] Apply binary operator simplifications to associative/commutative cases..

Having looked through D45842, i find this differential rather more complex.
Maybe instcombine shouldn't be doing this..

It would be interesting to know which of these testcase *aren't* handled by D45842.

May 7 2018, 3:49 PM
yamauchi added a comment to D46336: [InstCombine] Apply binary operator simplifications to associative/commutative cases..

Thanks for finding that thread...somehow I find it difficult to search llvm-dev history...

May 7 2018, 3:46 PM
yamauchi added a comment to D46336: [InstCombine] Apply binary operator simplifications to associative/commutative cases..

I think part of this has already landed with:
rL331311

What's 'this'? I am not clear how rL331311 (partially?) helps with the bitcheck combining this patch is aiming for. Do you mean a similar approach could be taken?

I was assuming from the name of this and similar tests:
"bit-check-combine1"
that 'this' was looking for any-bit-set / any-bit-clear / all-bits-set / all-bits-clear. Maybe the patterns you're looking for don't look like what I am matching though? If I run -instcombine on the first test, it is already substantially reduced...and at that point, it just looks like a problem for -reassociation?

define i1 @bit-check-combine1(i32 %a, i32 %b) {
entry:
  %0 = and i32 %b, 8
  %1 = and i32 %b, 16
  %2 = and i32 %b, 32
  %3 = and i32 %a, 7   <--- we got lucky on this one and found the reduction
  %4 = or i32 %3, %0
  %5 = or i32 %4, %1    <--- reassociate the 'or' operands, so we can factor out the mask ops
  %6 = or i32 %5, %2
  %7 = icmp eq i32 %6, 0
  ret i1 %7
}
May 7 2018, 3:34 PM

May 3 2018

yamauchi added a comment to D46336: [InstCombine] Apply binary operator simplifications to associative/commutative cases..

Re: bloat, is the consensus that we just don't add to instcombine any more?

May 3 2018, 4:38 PM
yamauchi added a comment to D46336: [InstCombine] Apply binary operator simplifications to associative/commutative cases..

FWIW, a nice thing is that this patch doesn't need to recognize and combine some specific patterns (eg. bitchecks, FoldPHIArgOrIntoPHI (D44626) or and-or-lshr (D45986)) or use some reassociation/canonicalization rules/orders based on some specific patterns (eg. some binops that operate on the same value for bitchecks, a certain definition of “matching pair” like D45842 or the ranking in the reassociate pass) (and those orders might conflict among them).

May 3 2018, 3:12 PM
yamauchi added a comment to D46336: [InstCombine] Apply binary operator simplifications to associative/commutative cases..

I think part of this has already landed with:
rL331311

May 3 2018, 2:32 PM

May 2 2018

yamauchi added a comment to D46336: [InstCombine] Apply binary operator simplifications to associative/commutative cases..

I think part of this has already landed with:
rL331311

There are proposals trying to do reassociation in a more complete way outside of instcombine:
D45842 (this would catch the cases that I recently added to and-xor-or.ll)
D41574

This is a response to discussions on llvm-dev that instcombine is already trying to do too much. This patch goes against that idea.

May 2 2018, 3:55 PM
yamauchi updated the diff for D46336: [InstCombine] Apply binary operator simplifications to associative/commutative cases..

Rebased.

May 2 2018, 3:36 PM
yamauchi updated the diff for D46336: [InstCombine] Apply binary operator simplifications to associative/commutative cases..

Used utils/update_test_checks.py for bit-check-combine.ll.

May 2 2018, 2:51 PM

May 1 2018

yamauchi created D46336: [InstCombine] Apply binary operator simplifications to associative/commutative cases..
May 1 2018, 3:54 PM

Mar 13 2018

yamauchi committed rL327450: Simplify more cases of logical ops of masked icmps..
Simplify more cases of logical ops of masked icmps.
Mar 13 2018, 2:17 PM
yamauchi closed D43835: Simplify more cases of logical ops of masked icmps..
Mar 13 2018, 2:17 PM
yamauchi updated the diff for D43835: Simplify more cases of logical ops of masked icmps..

Addressed comments.

Mar 13 2018, 12:50 PM
yamauchi added inline comments to D43835: Simplify more cases of logical ops of masked icmps..
Mar 13 2018, 11:17 AM
yamauchi updated the diff for D43835: Simplify more cases of logical ops of masked icmps..

Addressed comments.

Mar 13 2018, 11:16 AM

Mar 12 2018

yamauchi added inline comments to D43835: Simplify more cases of logical ops of masked icmps..
Mar 12 2018, 9:55 AM
yamauchi updated the diff for D43835: Simplify more cases of logical ops of masked icmps..

Addressed comments.

Mar 12 2018, 9:51 AM

Mar 9 2018

yamauchi added inline comments to D43835: Simplify more cases of logical ops of masked icmps..
Mar 9 2018, 5:38 PM
yamauchi added inline comments to D43835: Simplify more cases of logical ops of masked icmps..
Mar 9 2018, 10:37 AM
yamauchi updated the diff for D43835: Simplify more cases of logical ops of masked icmps..

Addressed comments.

Mar 9 2018, 8:55 AM
yamauchi added inline comments to D43835: Simplify more cases of logical ops of masked icmps..
Mar 9 2018, 8:55 AM

Mar 6 2018

yamauchi updated the diff for D43835: Simplify more cases of logical ops of masked icmps..

Addressed comments.

Mar 6 2018, 1:49 PM

Mar 1 2018

yamauchi updated the diff for D43835: Simplify more cases of logical ops of masked icmps..

Fixed bugs in the previous revision.

Mar 1 2018, 10:34 AM
yamauchi added a comment to D43835: Simplify more cases of logical ops of masked icmps..

Ok, ready for reviews.

Mar 1 2018, 10:34 AM

Feb 28 2018

yamauchi added a comment to D43835: Simplify more cases of logical ops of masked icmps..

I found a bug in the first revision. Please hold off reviews. Will update.

Feb 28 2018, 3:12 PM

Feb 27 2018

yamauchi created D43835: Simplify more cases of logical ops of masked icmps..
Feb 27 2018, 2:43 PM

Dec 12 2017

yamauchi added a comment to D40699: Split IndirectBr critical edges before PGO gen/use passes..

I think it will be an assert failure like before. Like said above, this patch isn't intended to handle that case.

Dec 12 2017, 12:02 PM
yamauchi committed rL320511: Split IndirectBr critical edges before PGO gen/use passes..
Split IndirectBr critical edges before PGO gen/use passes.
Dec 12 2017, 11:08 AM
yamauchi closed D40699: Split IndirectBr critical edges before PGO gen/use passes..
Dec 12 2017, 11:08 AM
yamauchi updated the diff for D40699: Split IndirectBr critical edges before PGO gen/use passes..

Rebased.

Dec 12 2017, 10:51 AM

Dec 11 2017

yamauchi added inline comments to D40699: Split IndirectBr critical edges before PGO gen/use passes..
Dec 11 2017, 2:53 PM
yamauchi updated the summary of D40699: Split IndirectBr critical edges before PGO gen/use passes..
Dec 11 2017, 2:52 PM
yamauchi updated the diff for D40699: Split IndirectBr critical edges before PGO gen/use passes..

Going back to Diff 125662.

Dec 11 2017, 2:50 PM
yamauchi added inline comments to D40699: Split IndirectBr critical edges before PGO gen/use passes..
Dec 11 2017, 10:47 AM

Dec 7 2017

yamauchi added inline comments to D40699: Split IndirectBr critical edges before PGO gen/use passes..
Dec 7 2017, 5:41 PM
yamauchi updated the diff for D40699: Split IndirectBr critical edges before PGO gen/use passes..

Detect indirectbr critical non-MST edges in CFGMST and if none, avoid iterating
over the edges in FuncPGOInstrumentation().

Dec 7 2017, 5:26 PM
yamauchi abandoned D38474: Add support for multiple prof metadata on instructions..
Dec 7 2017, 2:56 PM

Dec 6 2017

yamauchi updated the summary of D40699: Split IndirectBr critical edges before PGO gen/use passes..
Dec 6 2017, 4:49 PM
yamauchi updated the diff for D40699: Split IndirectBr critical edges before PGO gen/use passes..

Split only the IndirectBr critical edges that need to be split rather than
all. This avoids changing the indirectbr.ll test.

Dec 6 2017, 4:27 PM

Dec 5 2017

yamauchi updated the summary of D40699: Split IndirectBr critical edges before PGO gen/use passes..
Dec 5 2017, 6:06 PM
yamauchi updated the diff for D40699: Split IndirectBr critical edges before PGO gen/use passes..

Split indirectbr critical edges in the PGO gen/use passes.

Dec 5 2017, 6:05 PM

Dec 4 2017

yamauchi updated the summary of D40699: Split IndirectBr critical edges before PGO gen/use passes..
Dec 4 2017, 3:32 PM
yamauchi updated the summary of D40699: Split IndirectBr critical edges before PGO gen/use passes..
Dec 4 2017, 3:30 PM
yamauchi updated the diff for D40699: Split IndirectBr critical edges before PGO gen/use passes..

Rebased after D40750.

Dec 4 2017, 3:26 PM
yamauchi committed rL319689: Move splitIndirectCriticalEdges() to BasicBlockUtils.h..
Move splitIndirectCriticalEdges() to BasicBlockUtils.h.
Dec 4 2017, 12:36 PM
yamauchi closed D40750: Move splitIndirectCriticalEdges() to BasicBlockUtils.h..
Dec 4 2017, 12:36 PM
yamauchi added a comment to D40699: Split IndirectBr critical edges before PGO gen/use passes..

Created https://reviews.llvm.org/D40750 for the refactoring part.

Dec 4 2017, 10:45 AM
yamauchi added inline comments to D40699: Split IndirectBr critical edges before PGO gen/use passes..
Dec 4 2017, 10:44 AM

Dec 1 2017

yamauchi created D40750: Move splitIndirectCriticalEdges() to BasicBlockUtils.h..
Dec 1 2017, 1:15 PM
yamauchi added a comment to D40699: Split IndirectBr critical edges before PGO gen/use passes..

The PGO gen/use passes currently fail with an assert failure if there's a critical edge whose source is an IndirectBr instruction.

findIBRPredecessor will fail for blocks with multiple multiple indirectbr predecessors. And then you're back at square one, with an assertion failure.

Dec 1 2017, 11:38 AM

Nov 30 2017

yamauchi added a reviewer for D40699: Split IndirectBr critical edges before PGO gen/use passes.: xur.
Nov 30 2017, 6:15 PM
yamauchi created D40699: Split IndirectBr critical edges before PGO gen/use passes..
Nov 30 2017, 6:12 PM

Nov 20 2017

yamauchi committed rL318696: Fix a lld-x86_64-darwin13 build error..
Fix a lld-x86_64-darwin13 build error.
Nov 20 2017, 1:39 PM
yamauchi closed D40266: Fix a lld-x86_64-darwin13 build error..
Nov 20 2017, 1:38 PM
yamauchi created D40266: Fix a lld-x86_64-darwin13 build error..
Nov 20 2017, 1:27 PM
yamauchi committed rL318693: Add heuristics for irreducible loop metadata under PGO.
Add heuristics for irreducible loop metadata under PGO
Nov 20 2017, 1:05 PM
yamauchi closed D39980: Add heuristics for irreducible loop metadata under PGO.
Nov 20 2017, 1:04 PM

Nov 14 2017

yamauchi updated the diff for D39980: Add heuristics for irreducible loop metadata under PGO.

Updated comment.

Nov 14 2017, 4:28 PM
yamauchi updated the summary of D39980: Add heuristics for irreducible loop metadata under PGO.
Nov 14 2017, 3:18 PM
yamauchi added inline comments to D39980: Add heuristics for irreducible loop metadata under PGO.
Nov 14 2017, 3:18 PM
yamauchi updated the diff for D39980: Add heuristics for irreducible loop metadata under PGO.

Rebased and addressed comments.

Nov 14 2017, 3:18 PM
yamauchi committed rL318182: Simplify irreducible loop metadata test code..
Simplify irreducible loop metadata test code.
Nov 14 2017, 11:49 AM
yamauchi closed D40043: Simplify irreducible loop metadata test code..
Nov 14 2017, 11:49 AM
yamauchi created D40043: Simplify irreducible loop metadata test code..
Nov 14 2017, 11:14 AM

Nov 13 2017

yamauchi updated the summary of D39980: Add heuristics for irreducible loop metadata under PGO.
Nov 13 2017, 2:12 PM
yamauchi created D39980: Add heuristics for irreducible loop metadata under PGO.
Nov 13 2017, 2:01 PM

Nov 2 2017

yamauchi committed rL317278: Irreducible loop metadata for more accurate block frequency under PGO..
Irreducible loop metadata for more accurate block frequency under PGO.
Nov 2 2017, 3:27 PM
yamauchi closed D39028: Irreducible loop metadata for more accurate block frequency under PGO..
Nov 2 2017, 3:27 PM
yamauchi updated the diff for D39028: Irreducible loop metadata for more accurate block frequency under PGO..

Rebased.

Nov 2 2017, 3:26 PM

Oct 27 2017

yamauchi added inline comments to D39028: Irreducible loop metadata for more accurate block frequency under PGO..
Oct 27 2017, 3:31 PM
yamauchi updated the diff for D39028: Irreducible loop metadata for more accurate block frequency under PGO..

Addressed comments.

Oct 27 2017, 3:30 PM

Oct 25 2017

yamauchi updated the diff for D39028: Irreducible loop metadata for more accurate block frequency under PGO..

Changed the metadata name.
Added the metadata to the doc.

Oct 25 2017, 3:51 PM

Oct 20 2017

yamauchi added inline comments to D39028: Irreducible loop metadata for more accurate block frequency under PGO..
Oct 20 2017, 6:10 PM
yamauchi updated the diff for D39028: Irreducible loop metadata for more accurate block frequency under PGO..

Addressed comments.

Oct 20 2017, 6:09 PM

Oct 17 2017

yamauchi created D39028: Irreducible loop metadata for more accurate block frequency under PGO..
Oct 17 2017, 5:42 PM

Oct 6 2017

yamauchi added a comment to D38474: Add support for multiple prof metadata on instructions..

To give more context, the motivating issue for us is the block frequency propagation of irreducible loops under PGO.

Oct 6 2017, 11:42 AM
yamauchi added a comment to D38474: Add support for multiple prof metadata on instructions..

This does not look like backward compatible IR change. For the purpose of annotating irreducible loop headers, it might be better to introduce a new type of metadata.

Oct 6 2017, 11:04 AM

Oct 2 2017

yamauchi updated the diff for D38474: Add support for multiple prof metadata on instructions..

A bit of cleanup and added an assert.

Oct 2 2017, 4:43 PM
yamauchi created D38474: Add support for multiple prof metadata on instructions..
Oct 2 2017, 11:49 AM

Sep 13 2017

yamauchi committed rL313220: Add optional profile counts to block frequency dump..
Add optional profile counts to block frequency dump.
Sep 13 2017, 5:22 PM
yamauchi closed D37835: Add optional profile counts to block frequency dump..
Sep 13 2017, 5:21 PM
yamauchi added a comment to D37835: Add optional profile counts to block frequency dump..

The last note is that, as I suspect, we don't include a header in CodeGen/ into a file under Analysis/ which prevents the overload idea from working.

Sep 13 2017, 5:14 PM
yamauchi added inline comments to D37835: Add optional profile counts to block frequency dump..
Sep 13 2017, 4:44 PM
yamauchi created D37835: Add optional profile counts to block frequency dump..
Sep 13 2017, 4:30 PM
yamauchi committed rL313159: Add options to dump PGO counts in text..
Add options to dump PGO counts in text.
Sep 13 2017, 10:22 AM
yamauchi closed D37776: Add options to dump PGO counts in text..
Sep 13 2017, 10:21 AM

Sep 12 2017

yamauchi updated the summary of D37776: Add options to dump PGO counts in text..
Sep 12 2017, 5:43 PM
yamauchi updated the diff for D37776: Add options to dump PGO counts in text..

Addressed the comment.

Sep 12 2017, 5:41 PM
yamauchi created D37776: Add options to dump PGO counts in text..
Sep 12 2017, 3:34 PM

Sep 11 2017

yamauchi committed rL312930: Unmerge GEPs to reduce register pressure on IndirectBr edges..
Unmerge GEPs to reduce register pressure on IndirectBr edges.
Sep 11 2017, 10:53 AM
yamauchi closed D36772: Unmerge GEPs to reduce register pressure on IndirectBr edges..
Sep 11 2017, 10:53 AM