anemet (Adam Nemet)
User

Projects

User does not belong to any projects.

User Details

User Since
Jul 21 2014, 12:07 PM (160 w, 6 d)

Recent Activity

Fri, Aug 18

anemet accepted D36906: Keep Optimization Remark Yaml in NewPM.

LGTM, thanks!

Fri, Aug 18, 10:24 PM
anemet added a comment to D36054: Emit only A Single Opt Remark When Inlining.

LGTM. Are you going to commit this as is or fix the new PM -pass-remarks-output first and update this? I am fine either way.

I think I'm going to pause on this patch for a moment until the other is accepted and committed.

I think I have that fix (as far as code is concerned), but I think that patch should include updating all tests that currently only use the old pass manager to emit remark yaml files to also make them do exactly the same with the new pass manager, and that will take a little longer. Expect the complete patch of both code and tests some time over the weekend, I think.

Fri, Aug 18, 5:15 PM
anemet accepted D36054: Emit only A Single Opt Remark When Inlining.

LGTM. Are you going to commit this as is or fix the new PM -pass-remarks-output first and update this? I am fine either way.

Fri, Aug 18, 4:54 PM
anemet added inline comments to D36054: Emit only A Single Opt Remark When Inlining.
Fri, Aug 18, 4:32 PM

Mon, Aug 14

anemet accepted D36716: [LoopDataPrefetch][AArch64FalkorHWPFFix] Preserve ScalarEvolution.

LGTM. Please watch out for any failures.

Mon, Aug 14, 3:57 PM

Fri, Aug 11

anemet accepted D36630: [opt-viewer] Listify `dict_items` for Py3 indexing.

LGTM, thanks.

Fri, Aug 11, 2:45 PM
anemet accepted D36624: [opt-viewer] Decode HTML bytes for Python 3.

LGTM, with the same note here: as long as it still works with Python2 (which I am less sure of in this case).

Fri, Aug 11, 11:01 AM
anemet accepted D36622: [opt-viewer] Use Python 3-compatible `intern()`.

LGTM, assuming it still works with Python2. (I don't see why it wouldn't.)

Fri, Aug 11, 10:30 AM
anemet accepted D36623: [opt-viewer] Use Python 3-compatible iteritems.

LGTM, sorry :(.

Fri, Aug 11, 10:29 AM

Thu, Aug 10

anemet accepted D36127: [OptDiag] Updating Remarks in SampleProfile.

LGTM, thanks!

Thu, Aug 10, 7:45 PM
anemet added inline comments to D36127: [OptDiag] Updating Remarks in SampleProfile.
Thu, Aug 10, 5:03 PM
anemet added a comment to D36127: [OptDiag] Updating Remarks in SampleProfile.

-pass-remarks-with-hotness doesn't seem to be helping me in getting hotness information in these remarks.

It does something (after applying your patch):

./bin/opt -sample-profile -sample-profile-file=../test/Transforms/SampleProfile/Inputs/remarks.prof -S -pass-remarks-output=- -pass-remarks-with-hotness ../test/Transforms/SampleProfile/remarks.ll -o /dev/null | grep Hotness
Hotness: 0
Hotness: 0

but the 0 values are probably wrong. You probably need to study/debug this. The hotness should come from BFI which sample profiler should be updating.

Thu, Aug 10, 9:20 AM

Wed, Aug 9

anemet added a comment to D36127: [OptDiag] Updating Remarks in SampleProfile.

-pass-remarks-with-hotness doesn't seem to be helping me in getting hotness information in these remarks.

Wed, Aug 9, 9:02 PM

Tue, Aug 8

anemet added inline comments to D36054: Emit only A Single Opt Remark When Inlining.
Tue, Aug 8, 3:50 PM

Mon, Aug 7

anemet added inline comments to D33514: [WIP] Bug 32352 - Provide a way for OptimizationRemarkEmitter::allowExtraAnalysis to check if (specific) remarks are enabled.
Mon, Aug 7, 10:11 PM
anemet added a reviewer for D36127: [OptDiag] Updating Remarks in SampleProfile: davidxl.

Thanks very much for working on this! Please assign https://bugs.llvm.org/show_bug.cgi?id=33794 to you. Also check out my note in the bug.

Mon, Aug 7, 11:39 AM

Sun, Jul 30

anemet added a reviewer for D36054: Emit only A Single Opt Remark When Inlining: davidxl.
Sun, Jul 30, 10:19 PM

Sat, Jul 29

anemet accepted D35981: Migrate PGOMemOptSizeOpt to use new OptimizationRemarkEmitter Pass.

LGTM, I suppose there is already a -pass-remark test for this. Of course it would be great to also have a YAML test.

Sat, Jul 29, 9:00 AM

Thu, Jul 27

anemet added a comment to D33514: [WIP] Bug 32352 - Provide a way for OptimizationRemarkEmitter::allowExtraAnalysis to check if (specific) remarks are enabled.

I only have high-level comments at this point because I don't think we're quite on the same page yet.

Thu, Jul 27, 2:43 PM
anemet committed rL309297: Relax the matching in these tests.
Relax the matching in these tests
Thu, Jul 27, 10:45 AM
anemet committed rL309294: [ICP] Migrate to OptimizationRemarkEmitter.
[ICP] Migrate to OptimizationRemarkEmitter
Thu, Jul 27, 9:55 AM
anemet closed D35929: [ICP] Migrate to OptimizationRemarkEmitter by committing rL309294: [ICP] Migrate to OptimizationRemarkEmitter.
Thu, Jul 27, 9:54 AM
anemet committed rL309293: [OptRemark] Allow streaming of 64-bit integers.
[OptRemark] Allow streaming of 64-bit integers
Thu, Jul 27, 9:54 AM

Wed, Jul 26

anemet created D35929: [ICP] Migrate to OptimizationRemarkEmitter.
Wed, Jul 26, 10:22 PM
anemet committed rL309158: Migrate SimplifyLibCalls to new OptimizationRemarkEmitter.
Migrate SimplifyLibCalls to new OptimizationRemarkEmitter
Wed, Jul 26, 12:04 PM
anemet closed D35608: Migrate SimplifyLibCalls to new OptimizationRemarkEmitter by committing rL309158: Migrate SimplifyLibCalls to new OptimizationRemarkEmitter.
Wed, Jul 26, 12:03 PM
anemet added a comment to D35608: Migrate SimplifyLibCalls to new OptimizationRemarkEmitter.

@anemet I don't have commit privileges, and apparently something is broken with -pass-remarks-output=... (when used with -passes=...) in that -pass-remarks-output=- works when i test it at the command line (ie the yaml is printed to stdout), but if i give it a filename, then it doesn't actually leave a file with that name behind. It seems out-of-scope of this commit to trace that issue.

Wed, Jul 26, 11:00 AM

Tue, Jul 25

anemet accepted D35608: Migrate SimplifyLibCalls to new OptimizationRemarkEmitter.

Really minor nit below. No need to upload the patch after this change, just go ahead and land it.

Tue, Jul 25, 10:31 PM
anemet accepted D35608: Migrate SimplifyLibCalls to new OptimizationRemarkEmitter.

LGTM with a minor request. Thanks!

Tue, Jul 25, 10:11 PM

Jul 19 2017

anemet added a comment to D35534: [opt-viewer] Reduce memory consumption.

Also with https://reviews.llvm.org/rL308537, opt-stats now prints a metric for memory consumption if you have guppy (a.k.a. heapy) installed. The metric is the total memory allocated divided by the number of remarks -- average in-memory remark size (~3KB currently). This is printed once all the remarks are loaded.

Jul 19 2017, 3:17 PM
anemet committed rL308538: [opt-viewer] Reduce memory consumption by another 20-25%.
[opt-viewer] Reduce memory consumption by another 20-25%
Jul 19 2017, 3:07 PM
anemet closed D35611: [opt-viewer] Reduce memory consumption by another 20-25% by committing rL308538: [opt-viewer] Reduce memory consumption by another 20-25%.
Jul 19 2017, 3:07 PM
anemet committed rL308537: [opt-viewer] Print allocated memory per remark in opt-stats.py.
[opt-viewer] Print allocated memory per remark in opt-stats.py
Jul 19 2017, 3:07 PM
anemet committed rL308536: [opt-viewer] Reduce memory consumption.
[opt-viewer] Reduce memory consumption
Jul 19 2017, 3:07 PM
anemet closed D35534: [opt-viewer] Reduce memory consumption by committing rL308536: [opt-viewer] Reduce memory consumption.
Jul 19 2017, 3:07 PM
anemet accepted D35645: [PEI] Add basic opt-remarks support.

I am not really familiar with MIR test files but this looks straight-forward. LGTM.

Jul 19 2017, 2:51 PM
anemet added a comment to D35645: [PEI] Add basic opt-remarks support.

Looks good, how hard would be to add a test for this?

Jul 19 2017, 2:16 PM
anemet accepted D35570: [ORE] Port TailRecursionElimination to the new API.

LGTM once we clear the question below. Thanks!

Jul 19 2017, 2:06 PM
anemet updated the diff for D35611: [opt-viewer] Reduce memory consumption by another 20-25%.

Before writing out the difference YAML file in opt-diff, we need to recover
the YAML-friendly data structure for the remarks.

Jul 19 2017, 10:15 AM
anemet added a comment to D35608: Migrate SimplifyLibCalls to new OptimizationRemarkEmitter.

I have no further comment beyond Florian's and Davide's comments. Thanks for working on this!

Jul 19 2017, 9:24 AM

Jul 18 2017

anemet created D35611: [opt-viewer] Reduce memory consumption by another 20-25%.
Jul 18 2017, 11:25 PM
anemet updated subscribers of D35606: Move TailRecursionElimination to new OptimizationRemarkEmitter API.

Bummer, looks like you and @davide both worked on the same pass: D35570 and came up with very similar patches. @davide did you make progress since the last rev?

Jul 18 2017, 9:15 PM
anemet added a comment to D35570: [ORE] Port TailRecursionElimination to the new API.

Yep, looks good.

Jul 18 2017, 10:07 AM
anemet added a reviewer for D35534: [opt-viewer] Reduce memory consumption: davidxl.

Forgot David Li from the original list.

Jul 18 2017, 9:59 AM
anemet created D35534: [opt-viewer] Reduce memory consumption.
Jul 18 2017, 1:01 AM

Jul 17 2017

anemet committed rL308200: [opt-viewer] Accept directories that are searched for opt.yaml files.
[opt-viewer] Accept directories that are searched for opt.yaml files
Jul 17 2017, 11:01 AM
anemet closed D35491: [opt-viewer] Accept directories that are searched for opt.yaml files by committing rL308200: [opt-viewer] Accept directories that are searched for opt.yaml files.
Jul 17 2017, 11:01 AM
anemet updated the diff for D35491: [opt-viewer] Accept directories that are searched for opt.yaml files.

@davide, this version seems to correctly exclude mounted dirs, what do you
think?

Jul 17 2017, 10:46 AM
anemet added inline comments to D35491: [opt-viewer] Accept directories that are searched for opt.yaml files.
Jul 17 2017, 10:00 AM
anemet created D35491: [opt-viewer] Accept directories that are searched for opt.yaml files.
Jul 17 2017, 9:41 AM

Jul 13 2017

anemet committed rL308000: [opt-viewer] Flush stdout after progress update.
[opt-viewer] Flush stdout after progress update
Jul 13 2017, 11:38 PM
anemet accepted D35122: [LoopInterchange] Add some optimization remarks..

LGTM with one nit below. Thanks!

Jul 13 2017, 9:41 AM

Jul 12 2017

anemet added inline comments to D35122: [LoopInterchange] Add some optimization remarks..
Jul 12 2017, 4:42 PM

Jul 7 2017

anemet added a comment to D35122: [LoopInterchange] Add some optimization remarks..

Thanks for adding this!

Jul 7 2017, 8:18 AM

Jul 6 2017

anemet committed rL307285: [opt-viewer] Move under tools, install it.
[opt-viewer] Move under tools, install it
Jul 6 2017, 10:52 AM
anemet closed D35048: [opt-viewer] Move under tools, install it by committing rL307285: [opt-viewer] Move under tools, install it.
Jul 6 2017, 10:51 AM
anemet created D35048: [opt-viewer] Move under tools, install it.
Jul 6 2017, 3:37 AM

Jun 30 2017

anemet accepted D34868: [Driver] Add -fdiagnostics-hotness-threshold.

Looks great, thank you!

Jun 30 2017, 5:06 PM
anemet accepted D34867: [ORE] Add diagnostics hotness threshold.

LGTM now, thanks!

Jun 30 2017, 3:05 PM
anemet added inline comments to D34867: [ORE] Add diagnostics hotness threshold.
Jun 30 2017, 12:29 PM
anemet added a comment to D33320: [SLP] Improve comments and naming of functions/variables/members, NFC..
In D33320#796697, @anna wrote:
In D33320#795834, @anna wrote:

Hi Alexey, Adam,

From what I can see in this algorithm, there is no limit on the actual size of the stack in the loop. The level variable controls just the recursion limit. So, in effect, IIUC, the max total number of operands being processed by the while loop is 2 ^ RecursionLimit (it's to the base 2 because we avoid phi nodes).

It does not limits the number of processed nodes, it limits the tree height just like it was before.

Yes, but limiting the tree height itself is not enough right? Now, in the worst case, 2^12 nodes being processed in the tryToVectorizeHorReductionOrInstOperands, when earlier it was just a single node (i.e. before this change: https://reviews.llvm.org/D25517).

Jun 30 2017, 7:28 AM
anemet added a reviewer for D34867: [ORE] Add diagnostics hotness threshold: hfinkel.

Great!

Jun 30 2017, 5:24 AM
anemet added a reviewer for D34868: [Driver] Add -fdiagnostics-hotness-threshold: hfinkel.
Jun 30 2017, 5:12 AM
anemet added a comment to D34868: [Driver] Add -fdiagnostics-hotness-threshold.

Great!

Jun 30 2017, 5:10 AM
anemet accepted D34866: [ORE] Remove old "diagnostic hotness" spelling.

LGTM, thanks!

Jun 30 2017, 4:43 AM
anemet accepted D34865: [ORE] Use LLVM's "diagnostics hotness" spelling.

LGTM, thanks!

Jun 30 2017, 4:43 AM
anemet accepted D34864: [ORE] Unify spelling as "diagnostics hotness".

LGTM, thanks!

Jun 30 2017, 4:41 AM

Jun 29 2017

anemet accepted D34647: [opt-viewer] Python 3 support in opt-viewer.py.

LGTM, one suggestion below.

Jun 29 2017, 11:34 AM
anemet accepted D34735: [opt-viewer] Add progress indicators (PR33522).

I had seen tqdm, but:

  1. I wasn't sure what you thought about taking on another dependency, so I erred on the safe side of no additional external dependencies
Jun 29 2017, 10:31 AM
anemet added a comment to D34735: [opt-viewer] Add progress indicators (PR33522).

This is great! I am wondering if you looked at actual progressbars. For example looks like that tqdm might not be hard to adapt to multiprocessing (https://stackoverflow.com/a/40133278). What do you think? I am happy to take this as is if you don't want to spend more time on this for now. This is already great "progress" :)

Jun 29 2017, 9:45 AM
anemet accepted D34711: [opt-viewer] opt-viewer.py takes -o argument.

Great! LGTM.

Jun 29 2017, 6:33 AM
anemet added inline comments to D34647: [opt-viewer] Python 3 support in opt-viewer.py.
Jun 29 2017, 6:12 AM

Jun 25 2017

anemet accepted D34564: [opt-viewer] Python 3 support in opt-stats.py.

LGTM, thanks!

Jun 25 2017, 11:07 PM

Jun 23 2017

anemet accepted D34567: [opt-viewer] Remove positional arg checks (NFC).

LGTM, thanks!

Jun 23 2017, 12:55 PM
anemet added a comment to D34564: [opt-viewer] Python 3 support in opt-stats.py.

This may be way less efficient for Python 2. You may want to follow the guidance from here:

Jun 23 2017, 12:47 PM

Jun 10 2017

anemet added inline comments to D34082: [Frontend] 'Show hotness' can be used with a sampling profile.
Jun 10 2017, 11:24 AM
anemet added inline comments to D34082: [Frontend] 'Show hotness' can be used with a sampling profile.
Jun 10 2017, 11:01 AM
anemet accepted D34081: [opt-viewer] Include default values in help output.

LGTM, thanks!

Jun 10 2017, 10:38 AM

Jun 5 2017

anemet committed rL304721: Handle non-unique edges in edge-dominance.
Handle non-unique edges in edge-dominance
Jun 5 2017, 9:27 AM
anemet closed D33584: Handle non-unique edges in edge-dominance by committing rL304721: Handle non-unique edges in edge-dominance.
Jun 5 2017, 9:27 AM

Jun 2 2017

anemet added inline comments to D33320: [SLP] Improve comments and naming of functions/variables/members, NFC..
Jun 2 2017, 1:15 PM
anemet accepted D33320: [SLP] Improve comments and naming of functions/variables/members, NFC..

LGTM.

Jun 2 2017, 12:52 PM
anemet accepted D33320: [SLP] Improve comments and naming of functions/variables/members, NFC..

Thanks very much for rewriting the loop. This is way more intuitive now.

Jun 2 2017, 9:49 AM
anemet added inline comments to D29402: [SLP] Initial rework for min/max horizontal reduction vectorization, NFC..
Jun 2 2017, 8:07 AM

Jun 1 2017

anemet added inline comments to D33320: [SLP] Improve comments and naming of functions/variables/members, NFC..
Jun 1 2017, 11:45 AM

May 31 2017

anemet added inline comments to D33320: [SLP] Improve comments and naming of functions/variables/members, NFC..
May 31 2017, 8:35 PM

May 30 2017

anemet retitled D33584: Handle non-unique edges in edge-dominance from Remove a quadratic behavior in assert-enabled builds to Handle non-unique edges in edge-dominance.
May 30 2017, 5:37 PM
anemet updated the diff for D33584: Handle non-unique edges in edge-dominance.

This version handles edge-dominance in the presence of non-unique edges.

May 30 2017, 5:36 PM

May 26 2017

anemet committed rL304061: Rearrange Dom unittest to accommodate multiple tests.
Rearrange Dom unittest to accommodate multiple tests
May 26 2017, 9:06 PM
anemet closed D33617: Rearrange Dom unittest to accommodate multiple tests by committing rL304061: Rearrange Dom unittest to accommodate multiple tests.
May 26 2017, 9:06 PM
anemet committed rL304060: clang-format DomTree unittest.
clang-format DomTree unittest
May 26 2017, 9:06 PM
anemet created D33617: Rearrange Dom unittest to accommodate multiple tests.
May 26 2017, 4:57 PM
anemet added a comment to D33514: [WIP] Bug 32352 - Provide a way for OptimizationRemarkEmitter::allowExtraAnalysis to check if (specific) remarks are enabled.

This is going in the direction, IMO. Would also be good to see the clang patch at some point. Thanks for tackling this!

May 26 2017, 3:44 PM
anemet added a comment to D33584: Handle non-unique edges in edge-dominance.

I certainly agree that if we're not returning false for the non-unique edge case then that will cause bugs later on.

Can I add unit-tests for edge-domination somehow? I am trying to test this with allowing non-unique edges in GVN but that won't fly as regression test.

I'd just go with a regular C++ test case in unittests/

May 26 2017, 3:18 PM
anemet added a comment to D33584: Handle non-unique edges in edge-dominance.

I certainly agree that if we're not returning false for the non-unique edge case then that will cause bugs later on.

May 26 2017, 3:15 PM
anemet updated the summary of D33584: Handle non-unique edges in edge-dominance.
May 26 2017, 1:33 PM
anemet updated the diff for D33584: Handle non-unique edges in edge-dominance.

Removed the asserts. As Danny put it:

May 26 2017, 1:31 PM
anemet added a comment to D33584: Handle non-unique edges in edge-dominance.

@davide, I have an ll file for you. On my box, with an assert-enabled opt it gives:

May 26 2017, 11:38 AM
anemet added inline comments to D33320: [SLP] Improve comments and naming of functions/variables/members, NFC..
May 26 2017, 11:00 AM
anemet added inline comments to D33320: [SLP] Improve comments and naming of functions/variables/members, NFC..
May 26 2017, 10:44 AM