Page MenuHomePhabricator

anemet (Adam Nemet)
User

Projects

User does not belong to any projects.

User Details

User Since
Jul 21 2014, 12:07 PM (286 w, 4 d)

Recent Activity

Yesterday

anemet accepted D72280: [Matrix] Add IR MatrixBuilder..

LGTM, however it would better if this patch also converted existing code to use this new API.

Fri, Jan 17, 5:33 PM · Restricted Project

Wed, Jan 8

anemet added a comment to D72425: [OptRemark] RFC: Introduce a message table for OptRemarks.

As Francis mentioned it before it would be good derive the pass name from the remark type (diag::remark_gvn_load_elim -> gvn) . I.e. I would drop the DEBUG_TYPE argument.

Wed, Jan 8, 4:42 PM · Restricted Project

Tue, Jan 7

anemet accepted D70900: [Matrix] Propagate and use shape information for loads..

LGTM.

Tue, Jan 7, 6:21 PM · Restricted Project
anemet accepted D70899: [Matrix] Implement back-propagation of shape information..

LGTM.

Tue, Jan 7, 6:19 PM · Restricted Project

Fri, Dec 20

anemet accepted D70951: [Matrix] Use fmuladd for matrix.multiply if allowed..

LGTM

Fri, Dec 20, 2:08 PM · Restricted Project
anemet accepted D70897: [Matrix] Add forward shape propagation and first shape aware lowerings..

LGTM

Fri, Dec 20, 9:29 AM · Restricted Project
anemet added inline comments to D70951: [Matrix] Use fmuladd for matrix.multiply if allowed..
Fri, Dec 20, 9:10 AM · Restricted Project

Thu, Dec 19

anemet requested changes to D70951: [Matrix] Use fmuladd for matrix.multiply if allowed..
Thu, Dec 19, 3:20 PM · Restricted Project
anemet requested changes to D70897: [Matrix] Add forward shape propagation and first shape aware lowerings..
Thu, Dec 19, 3:20 PM · Restricted Project
anemet requested changes to D70900: [Matrix] Propagate and use shape information for loads..
Thu, Dec 19, 3:20 PM · Restricted Project
anemet accepted D70901: [Matrix] Update shape propagation to iterate until done..

LGTM.

Thu, Dec 19, 3:13 PM · Restricted Project
anemet added a comment to D70900: [Matrix] Propagate and use shape information for loads..

I am confused about this patch and the previous one (D70899). Looks like they both introduce VisitLoad. Is this intentional?

Thu, Dec 19, 2:49 PM · Restricted Project
anemet accepted D70898: [Matrix] Propagate and use shape info for binary operators..

LGTM!

Thu, Dec 19, 2:40 PM · Restricted Project
anemet added a comment to D70897: [Matrix] Add forward shape propagation and first shape aware lowerings..

Also the existing test diffs are hard to read, please explain what's going on there.

I've added comments to break up the check lines

Thu, Dec 19, 2:40 PM · Restricted Project
anemet added inline comments to D70951: [Matrix] Use fmuladd for matrix.multiply if allowed..
Thu, Dec 19, 2:01 PM · Restricted Project

Dec 17 2019

anemet added a comment to D70951: [Matrix] Use fmuladd for matrix.multiply if allowed..

We should be able to use fmuladd instead of fmul/fadd, as this just
reduces the rounding error between operations.

Dec 17 2019, 8:47 AM · Restricted Project

Dec 12 2019

anemet committed rGca3cce75ba06: Merge remote-tracking branch 'llvm.org/master' into upstream-with-swift (authored by anemet).
Merge remote-tracking branch 'llvm.org/master' into upstream-with-swift
Dec 12 2019, 12:29 PM
anemet committed rG51578922f596: Revert "[analyzer] Fix test/Analysis/padding_cpp.cpp after merge conflict." (authored by anemet).
Revert "[analyzer] Fix test/Analysis/padding_cpp.cpp after merge conflict."
Dec 12 2019, 12:24 PM
anemet committed rG85395296ef11: Fix up local changes after r349125 (authored by anemet).
Fix up local changes after r349125
Dec 12 2019, 12:23 PM

Dec 9 2019

anemet added inline comments to D70456: [Matrix] Add first set of matrix intrinsics and initial lowering pass..
Dec 9 2019, 1:30 PM · Restricted Project

Dec 5 2019

anemet accepted D70456: [Matrix] Add first set of matrix intrinsics and initial lowering pass..

LGTM too. You may want to a wait a few days to give other people a chance to comment further.

Dec 5 2019, 12:47 PM · Restricted Project

Dec 3 2019

anemet added a comment to D70897: [Matrix] Add forward shape propagation and first shape aware lowerings..

Also the existing test diffs are hard to read, please explain what's going on there.

Dec 3 2019, 9:30 PM · Restricted Project

Nov 20 2019

anemet added inline comments to D70456: [Matrix] Add first set of matrix intrinsics and initial lowering pass..
Nov 20 2019, 7:57 AM · Restricted Project

Oct 29 2019

anemet committed rGc6a5e890b9da: Merge remote-tracking branch 'llvm.org/master' into upstream-with-swift (authored by anemet).
Merge remote-tracking branch 'llvm.org/master' into upstream-with-swift
Oct 29 2019, 3:54 PM
anemet committed rGeb5f331581bf: Merge remote-tracking branch 'llvm.org/master' into upstream-with-swift (authored by anemet).
Merge remote-tracking branch 'llvm.org/master' into upstream-with-swift
Oct 29 2019, 3:53 PM
anemet committed rG39227645c336: Fix incorrect merge conflict resolution (authored by anemet).
Fix incorrect merge conflict resolution
Oct 29 2019, 3:52 PM
anemet committed rGef0f24b95685: Merge remote-tracking branch 'llvm.org/master' into upstream-with-swift (authored by anemet).
Merge remote-tracking branch 'llvm.org/master' into upstream-with-swift
Oct 29 2019, 3:52 PM
anemet committed rG782dc0119505: Handle/assert DK_Remark in SourceMgrAdapter (authored by anemet).
Handle/assert DK_Remark in SourceMgrAdapter
Oct 29 2019, 3:26 PM
anemet committed rG865d7ae3c729: Merge remote-tracking branch 'llvm.org/master' into upstream-with-swift (authored by anemet).
Merge remote-tracking branch 'llvm.org/master' into upstream-with-swift
Oct 29 2019, 2:47 PM
anemet committed rG8f1f78d8ceb7: Merge remote-tracking branch 'llvm.org/master' into upstream-with-swift (authored by anemet).
Merge remote-tracking branch 'llvm.org/master' into upstream-with-swift
Oct 29 2019, 1:08 PM
anemet committed rG2749b939a1e3: Merge remote-tracking branch 'llvm.org/master' into upstream-with-swift (authored by anemet).
Merge remote-tracking branch 'llvm.org/master' into upstream-with-swift
Oct 29 2019, 1:08 PM
anemet committed rGff20f106e44c: Merge remote-tracking branch 'llvm.org/master' into upstream-with-swift (authored by anemet).
Merge remote-tracking branch 'llvm.org/master' into upstream-with-swift
Oct 29 2019, 1:07 PM
anemet committed rG896206ad5d92: Merge remote-tracking branch 'llvm.org/master' into upstream-with-swift (authored by anemet).
Merge remote-tracking branch 'llvm.org/master' into upstream-with-swift
Oct 29 2019, 1:06 PM

Sep 24 2019

anemet accepted D67955: [AArch64] Convert neon_ushl and neon_sshl with positive constants to VSHL..

LGTM

Sep 24 2019, 3:13 PM · Restricted Project
anemet added inline comments to D67955: [AArch64] Convert neon_ushl and neon_sshl with positive constants to VSHL..
Sep 24 2019, 2:53 PM · Restricted Project
anemet added inline comments to D67955: [AArch64] Convert neon_ushl and neon_sshl with positive constants to VSHL..
Sep 24 2019, 2:51 PM · Restricted Project

Sep 20 2019

anemet added a comment to D62308: [AArch64] support neon_sshl and neon_ushl in performIntrinsicCombine..

I'll submit a separate patch for turning ushl -> shl, if the shift is all constant.

Sep 20 2019, 8:23 AM · Restricted Project

Sep 17 2019

anemet accepted D62308: [AArch64] support neon_sshl and neon_ushl in performIntrinsicCombine..

Some minor test questions/suggestions. Feel free to commit after addressing.

Sep 17 2019, 10:21 PM · Restricted Project

Sep 6 2019

anemet added a comment to D62308: [AArch64] support neon_sshl and neon_ushl in performIntrinsicCombine..

Does this also apply to right shifts?

Sep 6 2019, 5:59 PM · Restricted Project

Aug 20 2019

anemet accepted D65983: Autogenerate the shebang lines for tools/opt-viewer.

No, concerns. Looks good to me too.

Aug 20 2019, 4:56 PM · Restricted Project

Apr 18 2019

anemet added inline comments to D60831: [DebugInfo@O2][LoopVectorize] pr39024: Vectorized code linenos step through loop even after completion.
Apr 18 2019, 6:18 PM · debug-info, Restricted Project

Mar 27 2019

anemet accepted D59895: [opt-viewer] Teach optrecord.py about !Failure tags.

LGTM.

Mar 27 2019, 11:32 AM · Restricted Project
anemet accepted D59894: [opt-viewer] Make filter_=None by default in get_remarks and gather_results.

LGTM, thanks for fixing this!

Mar 27 2019, 11:10 AM · Restricted Project
anemet added inline comments to D59832: [LoopRotation] Allow loop header duplication if vectorization is forced.
Mar 27 2019, 10:07 AM · Restricted Project
anemet added a comment to D59832: [LoopRotation] Allow loop header duplication if vectorization is forced.

This might be a more general problem, other passes might expect a normalized form as well, such as UnrollAndJam and LoopDistribute.

For LoopVectorizer, I am somewhat surprised. It calls simplifyLoop itself (instead of relying on LoopSimplifyPass). Could the same be done for LoopRotation?

Mar 27 2019, 9:49 AM · Restricted Project
anemet added a comment to D59832: [LoopRotation] Allow loop header duplication if vectorization is forced.

This makes sense to me, given that loops with bottom checks are a precondition for LV. I think it would be good to also update the section about llvm.loop.vectorize.enable in LangRef to say it might also enable transformations like LoopRotate, in preparation for LV.

In case LV fails to vectorize the loop, it might be a bit surprising the loop has been rotated. But the way things are structured at the moment, there's nothing we can do about that (we cannot tell in LoopRotate if LV will be able to vectorize). By documenting that behavior, we can push the responsibility for that to the user. Maybe a remark in LoopRotate would be helpful to indicate that we only rotated because of the metadata.

Mar 27 2019, 8:01 AM · Restricted Project

Mar 26 2019

anemet created D59832: [LoopRotation] Allow loop header duplication if vectorization is forced.
Mar 26 2019, 11:47 AM · Restricted Project

Mar 14 2019

anemet accepted D57828: Add geomean summary row to output from utils/compare.py..

Seems reasonable.

Mar 14 2019, 9:29 AM · Restricted Project

Feb 26 2019

anemet added a reviewer for D58632: [X86] Improve lowering of idemptotent RMW operations: jfb.
Feb 26 2019, 1:01 PM · Restricted Project
anemet edited reviewers for D58632: [X86] Improve lowering of idemptotent RMW operations, added: craig.topper; removed: jfb.
Feb 26 2019, 1:01 PM · Restricted Project

Feb 8 2019

anemet accepted D57985: [test-suite] Add cmake option to use IR PGO (TEST_SUITE_USE_IR_PGO).

LGTM

Feb 8 2019, 4:24 PM · Restricted Project

Feb 6 2019

anemet accepted D57827: [opt-viewer] Add --filter option to select remarks for displaying..

LGTM with the comment.

Feb 6 2019, 9:44 AM · Restricted Project

Jan 25 2019

anemet added a comment to D57089: Provide reason messages for unviable inlining.

This is great, please add some tests or check for remarks in existing tests (e.g. for the recursive case).

Jan 25 2019, 9:24 AM · Restricted Project
anemet accepted D57220: Test fix for isViableInline remark message.

LGTM

Jan 25 2019, 9:24 AM · Restricted Project
anemet accepted D57167: [opt-viewer] Add javascript to expand/hide full message for multiline remarks..

Awesome and thanks for the test. LGTM!

Jan 25 2019, 8:10 AM

Jan 24 2019

anemet added a comment to D57167: [opt-viewer] Add javascript to expand/hide full message for multiline remarks..

Can you please describe the user experience?

Jan 24 2019, 1:35 PM
anemet accepted D57159: [DiagnosticInfo] Add support for preserving newlines in remark arguments..

LGTM, thanks!

Jan 24 2019, 9:58 AM
anemet updated subscribers of D57159: [DiagnosticInfo] Add support for preserving newlines in remark arguments..
Jan 24 2019, 9:18 AM

Dec 13 2018

anemet added a comment to D55382: Make -Wstring-plus-int warns even if when the result is not out of bounds.

Actually this has been failing for 8 hours. So reverted in r349117. Also reverted your attempt to update the test. It wasn't updating the right test: r349118

Dec 13 2018, 4:47 PM
anemet committed rL349118: Revert "Try to update the test to fix the breakage With the new warning, we are….
Revert "Try to update the test to fix the breakage With the new warning, we are…
Dec 13 2018, 4:47 PM
anemet committed rL349117: Revert "Make -Wstring-plus-int warns even if when the result is not out of….
Revert "Make -Wstring-plus-int warns even if when the result is not out of…
Dec 13 2018, 4:46 PM
anemet committed rC349117: Revert "Make -Wstring-plus-int warns even if when the result is not out of….
Revert "Make -Wstring-plus-int warns even if when the result is not out of…
Dec 13 2018, 4:46 PM
anemet committed rC349118: Revert "Try to update the test to fix the breakage With the new warning, we are….
Revert "Try to update the test to fix the breakage With the new warning, we are…
Dec 13 2018, 4:46 PM
anemet added a comment to D55382: Make -Wstring-plus-int warns even if when the result is not out of bounds.

This caused: http://green.lab.llvm.org/green/job/clang-stage1-cmake-RA-incremental/56120/consoleFull#1420996271a1ca8a51-895e-46c6-af87-ce24fa4cd561

Dec 13 2018, 4:02 PM

Nov 27 2018

anemet added inline comments to D54892: [LAA] Introduce enum for vectorization safety status (NFC)..
Nov 27 2018, 9:02 AM

Nov 26 2018

anemet added inline comments to D54892: [LAA] Introduce enum for vectorization safety status (NFC)..
Nov 26 2018, 9:51 PM
anemet added a comment to D54892: [LAA] Introduce enum for vectorization safety status (NFC)..

Hi Florian, are you saying that in this case (known unsafe dep) we would still vectorize the loop (and always fail at run-time)?

Nov 26 2018, 9:12 AM

Jul 20 2018

anemet accepted D49586: [ORE] Move loop invariant ORE checks outside the PM loop..

LGTM, you have trailing whitespace in one of the hunks, please clang-format.

Jul 20 2018, 11:08 AM

Jul 16 2018

anemet accepted D49348: Harden/relax clang/test/CodeGen/opt-record-MIR.c test.

LGTM, thanks!

Jul 16 2018, 8:00 PM

May 17 2018

anemet accepted D38768: Add remarks describing when a pass changes the IR instruction count of a module.

Mostly nits. LGTM with the requested changes.

May 17 2018, 4:18 PM

May 7 2018

anemet added a comment to D38768: Add remarks describing when a pass changes the IR instruction count of a module.

Mostly small things except for the question on whether we should only compute this when the remark is actually enabled.

May 7 2018, 4:32 PM

Apr 17 2018

anemet accepted D45752: [gold] Add support for optimization remarks.

Looks pretty straight-forward.

Apr 17 2018, 10:02 PM

Mar 20 2018

anemet added a comment to D43219: [PartialInlining] Fix Crash from holding a reference to a destructed ORE.

While it's preferred to use ORE as an analysis pass, sometimes that's hard (e.g because it's a function pass, or simply because it's hard to thread the ORE instance through the many layers). In these cases it's fine to construct one inline. When remarks are requested this will amount to repopulating BFI for the function as the ORE instance is created.

Mar 20 2018, 8:06 PM

Mar 13 2018

anemet added a comment to D41465: [LTO] Support filtering by hotness threshold.

@inglorion, I am inclined to recommit this unless I hear from you in a few days:

Mar 13 2018, 8:08 AM

Mar 12 2018

anemet committed rL327359: [LTO] Return proper error object rather than null LTOModule.
[LTO] Return proper error object rather than null LTOModule
Mar 12 2018, 9:40 PM

Mar 7 2018

anemet added a comment to D41465: [LTO] Support filtering by hotness threshold.

@inglorion Is this from a bot, I didn't see any failures? A bit more info would be helpful.

Mar 7 2018, 11:23 PM

Mar 6 2018

anemet committed rL326874: Disable tests from r326852 on Darwin.
Disable tests from r326852 on Darwin
Mar 6 2018, 9:36 PM
anemet committed rCRT326874: Disable tests from r326852 on Darwin.
Disable tests from r326852 on Darwin
Mar 6 2018, 9:36 PM

Feb 26 2018

anemet committed rL326169: Make test agnostic to cost model.
Make test agnostic to cost model
Feb 26 2018, 9:44 PM
anemet committed rC326168: Attempt to fix greendragon bot after r326141.
Attempt to fix greendragon bot after r326141
Feb 26 2018, 8:52 PM
anemet committed rL326168: Attempt to fix greendragon bot after r326141.
Attempt to fix greendragon bot after r326141
Feb 26 2018, 8:52 PM
anemet committed rL326127: [opt-viewer] Kill parser processes before moving onto rendering.
[opt-viewer] Kill parser processes before moving onto rendering
Feb 26 2018, 1:18 PM
anemet committed rL326126: opt-diff: Support splitting to multiple output files.
opt-diff: Support splitting to multiple output files
Feb 26 2018, 1:18 PM
anemet committed rL326125: [opt-viewer] Set title for the source pages.
[opt-viewer] Set title for the source pages
Feb 26 2018, 1:18 PM
anemet committed rL326124: opt-viewer: also find thinlto opt.yaml files.
opt-viewer: also find thinlto opt.yaml files
Feb 26 2018, 1:18 PM
anemet committed rL326123: opt-viewer: output index first.
opt-viewer: output index first
Feb 26 2018, 1:18 PM
anemet committed rC326108: [Driver] Forward opt-remark hotness threshold to LTO.
[Driver] Forward opt-remark hotness threshold to LTO
Feb 26 2018, 10:40 AM
anemet committed rL326108: [Driver] Forward opt-remark hotness threshold to LTO.
[Driver] Forward opt-remark hotness threshold to LTO
Feb 26 2018, 10:40 AM
anemet committed rL326107: [LTO] Support filtering by hotness threshold.
[LTO] Support filtering by hotness threshold
Feb 26 2018, 10:40 AM
anemet closed D41465: [LTO] Support filtering by hotness threshold.
Feb 26 2018, 10:40 AM

Feb 24 2018

anemet committed rL326037: Revert "StructurizeCFG: Test for branch divergence correctly".
Revert "StructurizeCFG: Test for branch divergence correctly"
Feb 24 2018, 9:32 AM

Feb 21 2018

anemet added a comment to D43079: [TTI CostModel] change default cost of FP ops to 1 (PR36280).

Seeing such major swings, my preference would be to revert and put the new version up for review (I think that your hack works). Then commit the new combined version after a few days so that the perf bots got a chance to recover. What do you think?

Ok, this was too ambitious. Reverted at rL325658 and reopened:
https://bugs.llvm.org/show_bug.cgi?id=36280

Feb 21 2018, 10:15 AM

Feb 20 2018

anemet added a comment to D43079: [TTI CostModel] change default cost of FP ops to 1 (PR36280).

Please revert until these things get worked out so that we can properly track performance. We are seeing many regressions including 17% on 444.namd and 12% on 482.sphinx3 in SPECfp 2006.

Hi Adam -

Rather than reverting for all targets, can we just hack ARM/AArch with patches like this (if we can add at least one test to show what changed, that would be better of course) :

Index: lib/Target/ARM/ARMTargetTransformInfo.cpp
===================================================================
--- lib/Target/ARM/ARMTargetTransformInfo.cpp	(revision 325579)
+++ lib/Target/ARM/ARMTargetTransformInfo.cpp	(working copy)
@@ -514,6 +514,13 @@
   int Cost = BaseT::getArithmeticInstrCost(Opcode, Ty, Op1Info, Op2Info,
                                            Opd1PropInfo, Opd2PropInfo);
 
+  // Assume that floating point arithmetic operations cost twice as much as
+  // integer operations.
+  // FIXME: This is a win on several perf benchmarks running on CPU model ???,
+  // but there are no regression tests that show why or how this is good.
+  if (Ty->isFPOrFPVectorTy())
+    Cost *= 2;
+
   // This is somewhat of a hack. The problem that we are facing is that SROA
   // creates a sequence of shift, and, or instructions to construct values.
   // These sequences are recognized by the ISel and have zero-cost. Not so for
Feb 20 2018, 5:28 PM
anemet added a comment to D43079: [TTI CostModel] change default cost of FP ops to 1 (PR36280).

Hi Sanjay,

The patch caused regressions in the LLVM benchmarks and in Spec2k/Spec2k6 benchmarks on AArch64 Cortex-A53:

SingleSource/Benchmarks/Misc/matmul_f64_4x4: 49%
MultiSource/Benchmarks/TSVC/LoopRerolling-flt/LoopRerolling-flt: 5.32%
CFP2000/188.ammp/188.ammp: 3.58%
CFP2000/177.mesa/177.mesa: 2.48%
CFP2006/444.namd/444.namd: 2.49%

The regression of SingleSource/Benchmarks/Misc/matmul_f64_4x4 can also be seen on the public bot: http://lnt.llvm.org/db_default/v4/nts/90636
It is 128.85%.

The main difference in generated code is FMUL(FP, scalar) instead of FMUL(SIMD, scalar):

fmul d20, d16, d2

instead of

fmul v17.2d, v1.2d, v5.2d

This also caused code size increase: 6.04% in SingleSource/Benchmarks/Misc/matmul_f64_4x4

I am working on a reproducer.

Thanks. We knew this change was likely to cause perf regressions based on some of the x86 diffs, so having those reductions will help tune the models in general and specifically for AArch64.

Ie, we should be able to solve the AArch64 problems with AArch64-specific cost model changes rather than reverting this. For example as @fhahn mentioned, we might want to make the int-to-FP ratio 3:2 for some cores. Another possibility is overriding the fmul/fsub/fadd AArch64 costs to be more realistic (as we also probably have to do for x86).

Feb 20 2018, 4:34 PM

Feb 12 2018

anemet committed rL324958: Revert "[LSR] Avoid UB overflow when examining reuse opportunities".
Revert "[LSR] Avoid UB overflow when examining reuse opportunities"
Feb 12 2018, 2:44 PM

Jan 20 2018

anemet requested changes to D42331: [cmake] Remove LLVM_HAVE_OPT_VIEWER_MODULES from LLVMConfig.

This is used by Swift. Providing a macro instead of a static value may be a better solution. If you are willing to do that I am OK with that but I have a strong objection against simply removing this.

Jan 20 2018, 9:30 AM

Jan 9 2018

anemet added a comment to D41465: [LTO] Support filtering by hotness threshold.

Ping

Jan 9 2018, 9:41 PM

Jan 5 2018

anemet accepted D41784: Fix some issues with opt-viewer tests, plus disable them on Windows.

LGTM too. Thanks for getting back to this!

Jan 5 2018, 1:42 PM

Jan 2 2018

anemet accepted D41611: [opt-viewer] Check for pygments.lexer.c_cpp.

LGTM. Thanks!

Jan 2 2018, 9:20 AM

Dec 20 2017

anemet created D41465: [LTO] Support filtering by hotness threshold.
Dec 20 2017, 2:10 PM