Page MenuHomePhabricator

Meinersbur (Michael Kruse)
User

Projects

User does not belong to any projects.

User Details

User Since
Jun 17 2015, 7:07 AM (213 w, 4 d)

Recent Activity

Fri, Jul 19

Meinersbur added a comment to D64744: #pragma clang loop vectorize_predicate(enable|disable).

I prefer having the documentation change to be in the same patch as the functional change. Makes it easier to check whether they match.

Fri, Jul 19, 2:08 PM · Restricted Project

Thu, Jul 18

Meinersbur added a comment to D64916: [LV] isScalarEpilogueAllowed. NFC..

Generally, the patch looks fine. I'd would prefer if someone who has contributed to VPlan to accept the patch.

Thu, Jul 18, 10:24 AM · Restricted Project
Meinersbur added a comment to D64744: #pragma clang loop vectorize_predicate(enable|disable).

[serious] Need to update docs.

Thu, Jul 18, 9:47 AM · Restricted Project

Wed, Jul 17

Meinersbur accepted D63459: Loop Cache Analysis.

LGTM, some nitpicks left.

Wed, Jul 17, 1:22 PM · Restricted Project
Meinersbur accepted D63844: [LoopFusion] Extend use of OptimizationRemarkEmitter.

LGTM

Wed, Jul 17, 12:08 PM · Restricted Project
Meinersbur added a comment to D63885: [LOOPINFO] Introduce the loop guard API. .

So far, we have the following guarantees of a loop guard:

  1. If branching into the direction of the loop, the loop will be executed
  2. If branching to the other direction, the loop will not be executed.
  3. If branching to the other direction, no code will be executed that would not be executed if going to the direction of the loop.
  4. Loop guard and the post-dominating 'other' block form a Single-Entry-Single-Exit region. [edit: not true; there can be edges from the outside to a loop exit block]
Wed, Jul 17, 12:06 PM · Restricted Project
Meinersbur accepted D64088: [DDG] DirectedGraph as a base class for various dependence graphs such as DDG and PDG..

LGTM

Wed, Jul 17, 8:55 AM · Restricted Project

Mon, Jul 15

Meinersbur accepted D63572: [Polly][NFC][ScopBuilder] Move addRecordedAssumption to ScopBuilder.

LGTM

Mon, Jul 15, 4:44 PM · Restricted Project
Meinersbur added inline comments to D63885: [LOOPINFO] Introduce the loop guard API. .
Mon, Jul 15, 12:15 PM · Restricted Project
Meinersbur added inline comments to D63885: [LOOPINFO] Introduce the loop guard API. .
Mon, Jul 15, 11:52 AM · Restricted Project
Meinersbur added a comment to D64744: #pragma clang loop vectorize_predicate(enable|disable).

IMHO, this loops like an option of a particular transformation, not an independent pragma. E.g.

#pragma clang loop vectorize(enable) vectorize_remainder(predicated)

There could be multiple choices for how to execute remainder iterations, e.g. instead of an epilogue, the first iterations could be executed in an prologue. Or an option where the compiler may assume that the iteration-count is always a multiple of the vector width, etc.

Mon, Jul 15, 11:33 AM · Restricted Project

Fri, Jul 12

Meinersbur accepted D64088: [DDG] DirectedGraph as a base class for various dependence graphs such as DDG and PDG..

LGTM

Fri, Jul 12, 1:13 PM · Restricted Project

Thu, Jul 11

Meinersbur added inline comments to D63885: [LOOPINFO] Introduce the loop guard API. .
Thu, Jul 11, 1:04 PM · Restricted Project
Meinersbur added inline comments to D63572: [Polly][NFC][ScopBuilder] Move addRecordedAssumption to ScopBuilder.
Thu, Jul 11, 10:05 AM · Restricted Project
Meinersbur added inline comments to D64564: Loop pragma parsing. NFC..
Thu, Jul 11, 9:44 AM
Meinersbur added inline comments to D64557: Add llvm.loop.licm.disable metadata.
Thu, Jul 11, 9:20 AM · Restricted Project
Meinersbur added inline comments to D63885: [LOOPINFO] Introduce the loop guard API. .
Thu, Jul 11, 8:50 AM · Restricted Project

Wed, Jul 10

Meinersbur added a comment to D64088: [DDG] DirectedGraph as a base class for various dependence graphs such as DDG and PDG..

To not to be stuck in details and not block the dependence graph patches, we maybe should land the patch and work on it in-tree when its users materialize?

Wed, Jul 10, 3:08 PM · Restricted Project
Meinersbur added inline comments to D64088: [DDG] DirectedGraph as a base class for various dependence graphs such as DDG and PDG..
Wed, Jul 10, 2:30 PM · Restricted Project
Meinersbur requested changes to D61446: Generalize the pass registration mechanism used by Polly to any third-party tool.

Windows seems to work. Good job!

Wed, Jul 10, 2:08 PM · Restricted Project, Restricted Project
Meinersbur accepted D63572: [Polly][NFC][ScopBuilder] Move addRecordedAssumption to ScopBuilder.

LGTM

Wed, Jul 10, 10:49 AM · Restricted Project

Tue, Jul 9

Meinersbur added inline comments to D63844: [LoopFusion] Extend use of OptimizationRemarkEmitter.
Tue, Jul 9, 4:33 PM · Restricted Project
Meinersbur added a comment to D64088: [DDG] DirectedGraph as a base class for various dependence graphs such as DDG and PDG..

To reduce the number of allocations, have you thought about making EdgeList contain the edges objects instead of pointers? The edges would have to be copied/moved into the list and edges could not be compared by identity. Is this semantic needed/are edge objects large?

Since the edge class does not contain the source node, the same edge object could be put into multiple outgoing edges lists. Is this supported?

I think we would be better off using pointers in this case, because of the following reasons:

  1. Using pointers gives the clients freedom to use polymorphic behavior.
Tue, Jul 9, 3:40 PM · Restricted Project
Meinersbur accepted D63693: [Polly][NFC][ScopBuilder] Move buildAliasChecks and its implementing methods to ScopBuilder.

LGTM! Many thanks!

Tue, Jul 9, 12:01 PM · Restricted Project
Meinersbur added inline comments to D63885: [LOOPINFO] Introduce the loop guard API. .
Tue, Jul 9, 11:40 AM · Restricted Project
Meinersbur added inline comments to D63459: Loop Cache Analysis.
Tue, Jul 9, 11:24 AM · Restricted Project

Mon, Jul 8

Meinersbur added inline comments to D63885: [LOOPINFO] Introduce the loop guard API. .
Mon, Jul 8, 6:14 PM · Restricted Project
Meinersbur added a comment to D63459: Loop Cache Analysis.

@fhahn Do you still want to look over this patch?

Mon, Jul 8, 5:08 PM · Restricted Project
Meinersbur added a comment to D64359: [LOOPINFO] Add member function to retrieve loops in breadth-first order.

What's the intended use?

Mon, Jul 8, 3:25 PM · Restricted Project
Meinersbur added a comment to D64088: [DDG] DirectedGraph as a base class for various dependence graphs such as DDG and PDG..

To reduce the number of allocations, have you thought about making EdgeList contain the edges objects instead of pointers? The edges would have to be copied/moved into the list and edges could not be compared by identity. Is this semantic needed/are edge objects large?

Mon, Jul 8, 3:20 PM · Restricted Project
Meinersbur accepted D64223: [Polly][NFC][ScopBuilder] Move buildSchedule and its callees to ScopBuilder or ScopHelper.

LGTM

Mon, Jul 8, 2:20 PM · Restricted Project
Meinersbur accepted D63794: [Polly][NFC][ScopBuilder] Move finalizeAccesses and its callees to ScopBuilder.

I think you are ready to get commit access, if you like. Could you follow https://llvm.org/docs/DeveloperPolicy.html#obtaining-commit-access? Send him some links to commits that I committed for you.
Note that there is a move to GitHub pending (end of this year, as far as I remember), which may require another procedure (SVN Username+Pwd hash do not directly translate to GitHub accounts).

Mon, Jul 8, 2:17 PM · Restricted Project
Meinersbur added a comment to D64355: [docs][Remarks] Add documentation for remarks in LLVM.

Thank your for working on the documentation!

Mon, Jul 8, 11:27 AM · Restricted Project

Wed, Jun 26

Meinersbur added inline comments to D63304: Ignore Singletons in statement domains.
Wed, Jun 26, 2:44 PM · Restricted Project, Restricted Project
Meinersbur added inline comments to D63305: Propagate Trip count Assumptions to runtime check.
Wed, Jun 26, 1:25 PM · Restricted Project, Restricted Project
Meinersbur added inline comments to D63304: Ignore Singletons in statement domains.
Wed, Jun 26, 1:25 PM · Restricted Project, Restricted Project
Meinersbur added a comment to D63304: Ignore Singletons in statement domains.

Thank you for applying most of my suggestions.

Wed, Jun 26, 1:18 PM · Restricted Project, Restricted Project
Meinersbur added inline comments to D61446: Generalize the pass registration mechanism used by Polly to any third-party tool.
Wed, Jun 26, 5:32 AM · Restricted Project, Restricted Project
Meinersbur added a comment to D63794: [Polly][NFC][ScopBuilder] Move finalizeAccesses and its callees to ScopBuilder.

Could you clarify the title to make clear that it moves more than just the finalizeAccesses method, such as "Move finalizeAccesses and its callees to ScopBuilder"?

Wed, Jun 26, 1:10 AM · Restricted Project
Meinersbur accepted D63740: [Polly][NFC][ScopBuilder] Move addUserContext to ScopBuilder.

Can I commit this patch for you?

Wed, Jun 26, 12:29 AM · Restricted Project
Meinersbur added a comment to D63693: [Polly][NFC][ScopBuilder] Move buildAliasChecks and its implementing methods to ScopBuilder.

Please let me know if such big patch is acceptable. I have moved all functions referenced only by buildAliasChecks function to ScopBuilder class.

Wed, Jun 26, 12:27 AM · Restricted Project

Tue, Jun 25

Meinersbur added a comment to D63572: [Polly][NFC][ScopBuilder] Move addRecordedAssumption to ScopBuilder.

[suggestion] RecordedAssumptions itself is only used during SCoP constructions (since it's empty once the SCoP is full constructed). It could be removed entirely into ScopBuilder, maybe in a future patch?

Tue, Jun 25, 11:55 PM · Restricted Project
Meinersbur accepted D63446: Expand cloneLoopWithPreheader() to support cloning loop nest.

LGTM

Tue, Jun 25, 3:54 AM · Restricted Project

Jun 18 2019

Meinersbur added a comment to D63459: Loop Cache Analysis.

How would a pass use this analysis? It computes a cost for the current IR, but there is nothing to compare it to unless the transformation pass emits the transformed loop nest next to the original pass such that the LoopCacheAnalysis can compute its cost.

Jun 18 2019, 3:31 PM · Restricted Project
Meinersbur added inline comments to D63305: Propagate Trip count Assumptions to runtime check.
Jun 18 2019, 1:00 PM · Restricted Project, Restricted Project

Jun 17 2019

Meinersbur added a comment to D63459: Loop Cache Analysis.

What do you plan as the first use of this transformation?

Jun 17 2019, 4:52 PM · Restricted Project
Meinersbur added inline comments to D63446: Expand cloneLoopWithPreheader() to support cloning loop nest.
Jun 17 2019, 12:36 PM · Restricted Project
Meinersbur committed rG88afd7530084: [test] Add wrap flags after D61934. (authored by Meinersbur).
[test] Add wrap flags after D61934.
Jun 17 2019, 12:16 PM
Meinersbur committed rG77bc3b65424a: [ScopInliner] Register FunctionAnalysisManagerModuleProxy. (authored by Meinersbur).
[ScopInliner] Register FunctionAnalysisManagerModuleProxy.
Jun 17 2019, 9:00 AM
Meinersbur committed rL363572: [ScopInliner] Register FunctionAnalysisManagerModuleProxy..
[ScopInliner] Register FunctionAnalysisManagerModuleProxy.
Jun 17 2019, 9:00 AM

Jun 14 2019

Meinersbur accepted D63338: PHINode: introduce setIncomingValueForBlock() function, and use it..

LGTM, please wait for @fhahn's ok as well.

Jun 14 2019, 1:31 PM · Restricted Project
Meinersbur added a comment to D63304: Ignore Singletons in statement domains.

You can detect this simple loop domain directly by using quering "is_singleton" but with nested loops you'll need to project out to find singletons in one dimension out of all the loop nest dimensions.

Jun 14 2019, 1:16 PM · Restricted Project, Restricted Project

Jun 13 2019

Meinersbur added inline comments to D63305: Propagate Trip count Assumptions to runtime check.
Jun 13 2019, 5:59 PM · Restricted Project, Restricted Project
Meinersbur added a comment to D63304: Ignore Singletons in statement domains.

Thanks for the patch. Do you happen to have performance, code size numbers?

Jun 13 2019, 5:44 PM · Restricted Project, Restricted Project

Jun 12 2019

Meinersbur committed rG189abad12867: [ScopBuilder] Move addInvariantLoads to ScopBuilder. NFC. (authored by Meinersbur).
[ScopBuilder] Move addInvariantLoads to ScopBuilder. NFC.
Jun 12 2019, 3:49 PM
Meinersbur committed rL363216: [ScopBuilder] Move addInvariantLoads to ScopBuilder. NFC..
[ScopBuilder] Move addInvariantLoads to ScopBuilder. NFC.
Jun 12 2019, 3:48 PM
Meinersbur closed D63172: [Polly][NFC][ScopBuilder] Move addInvariantLoads to ScopBuilder.
Jun 12 2019, 3:48 PM · Restricted Project
Meinersbur committed rGbb824c61a904: [ScopBuilder] Move getNonHoistableCtx to ScopBuilder. NFC. (authored by Meinersbur).
[ScopBuilder] Move getNonHoistableCtx to ScopBuilder. NFC.
Jun 12 2019, 3:40 PM
Meinersbur committed rL363214: [ScopBuilder] Move getNonHoistableCtx to ScopBuilder. NFC..
[ScopBuilder] Move getNonHoistableCtx to ScopBuilder. NFC.
Jun 12 2019, 3:37 PM
Meinersbur closed D63066: [Polly][NFC][ScopBuilder] Move getNonHoistableCtx to ScopBuilder.
Jun 12 2019, 3:37 PM · Restricted Project

Jun 11 2019

Meinersbur committed rG549991e48c62: [ScopBuilder] Move hoistInvariantLoads to ScopBuilder. NFC. (authored by Meinersbur).
[ScopBuilder] Move hoistInvariantLoads to ScopBuilder. NFC.
Jun 11 2019, 9:21 PM
Meinersbur committed rL363121: [ScopBuilder] Move hoistInvariantLoads to ScopBuilder. NFC..
[ScopBuilder] Move hoistInvariantLoads to ScopBuilder. NFC.
Jun 11 2019, 9:20 PM
Meinersbur closed D62925: [Polly][NFC][ScopBuilder] Move hoistInvariantLoads to ScopBuilder.
Jun 11 2019, 9:20 PM · Restricted Project
Meinersbur accepted D63172: [Polly][NFC][ScopBuilder] Move addInvariantLoads to ScopBuilder.

LGTM apart from the nitpicks.

Jun 11 2019, 9:10 PM · Restricted Project
Meinersbur accepted D63066: [Polly][NFC][ScopBuilder] Move getNonHoistableCtx to ScopBuilder.

LGTM and thank you!

Jun 11 2019, 4:22 PM · Restricted Project
Meinersbur accepted D62607: LoopDistribute/LAA: Respect convergent.

LGTM. Thank you.

Jun 11 2019, 4:22 PM
Meinersbur accepted D63035: LoopDistribute/LAA: Add tests to catch regressions.
Jun 11 2019, 4:02 PM
Meinersbur accepted D62925: [Polly][NFC][ScopBuilder] Move hoistInvariantLoads to ScopBuilder.

Shall I do it in the same patch, or can I do it in the next patch? I prefer to do it in the next patch just to keep patches as small as possible.

Jun 11 2019, 12:53 PM · Restricted Project
Meinersbur added inline comments to D63066: [Polly][NFC][ScopBuilder] Move getNonHoistableCtx to ScopBuilder.
Jun 11 2019, 12:53 PM · Restricted Project

Jun 10 2019

Meinersbur added a comment to D63035: LoopDistribute/LAA: Add tests to catch regressions.

As I understand the language reference, ("The optimizers may change the order of volatile operations relative to non-volatile operations.") the loop can be distributed as long as there all volatile operations stay in the same loop. I this is meant to test the current implementation, can you add a comment to make this clear (such as "TODO: distribution of volatile may be possible under some circumstance, but the current implementation does not touch them")

Jun 10 2019, 12:41 PM
Meinersbur requested changes to D61446: Generalize the pass registration mechanism used by Polly to any third-party tool.

That's what I tried to do when always adding Polly.cpp to PollyCore, but it doesn't seem to be enough, I still need to invstigate why (it is actually enough when using BUILD_SHARED_LIBS=ON)

Jun 10 2019, 12:26 PM · Restricted Project, Restricted Project

Jun 7 2019

Meinersbur added a comment to D62989: [Unroll] Do NOT unroll a loop with small runtime upperbound.

Unwanted (or excessive) unrolling of loops with small runtime trip count upper bound.

Jun 7 2019, 4:41 PM · Restricted Project
Meinersbur requested changes to D62607: LoopDistribute/LAA: Respect convergent.
Jun 7 2019, 3:02 PM
Meinersbur accepted D63008: LoopDistribute: Add testcase where SCEV wants to insert a runtime check. .
Jun 7 2019, 2:49 PM
Meinersbur added a comment to D62989: [Unroll] Do NOT unroll a loop with small runtime upperbound.

What problem is this solving?

Jun 7 2019, 1:36 PM · Restricted Project
Meinersbur accepted D63016: LoopVersioning: Respect convergent.

Would an assertion in LoopVersioning checking whether it accidentally copies a convergent operation make sense?

Jun 7 2019, 1:10 PM
Meinersbur accepted D63015: LoopLoadElim: Respect convergent.

LGTM

Jun 7 2019, 1:06 PM

Jun 6 2019

Meinersbur updated the diff for D55290: [docs] Update llvm.loop metadata documentation..
Jun 6 2019, 11:59 AM · Restricted Project
Meinersbur added inline comments to D55290: [docs] Update llvm.loop metadata documentation..
Jun 6 2019, 11:59 AM · Restricted Project
Meinersbur added a comment to D61446: Generalize the pass registration mechanism used by Polly to any third-party tool.

Just an idea: We could avoid the explicit calls to 'initializeXYZPass' in opt/bugpoint/clang by adding Polly.cpp as a source file or object library to the executables. This would guarantee that its static initializer is called without dynamic library.

Jun 6 2019, 11:42 AM · Restricted Project, Restricted Project
Meinersbur committed rGbd9e810b23b7: [ScheduleTreeTransform] Silence compiler warning. NFC. (authored by Meinersbur).
[ScheduleTreeTransform] Silence compiler warning. NFC.
Jun 6 2019, 10:16 AM
Meinersbur committed rL362724: [ScheduleTreeTransform] Silence compiler warning. NFC..
[ScheduleTreeTransform] Silence compiler warning. NFC.
Jun 6 2019, 10:16 AM
Meinersbur added a comment to D62925: [Polly][NFC][ScopBuilder] Move hoistInvariantLoads to ScopBuilder.

Can you move getNonHoistableCtx/addInvariantLoads to ScopBuilder as well? they contain logic only relevant for hoisting.

Jun 6 2019, 10:00 AM · Restricted Project

Jun 5 2019

Meinersbur added a comment to D61446: Generalize the pass registration mechanism used by Polly to any third-party tool.

Sorry, you might have tested it with LLVM_LINK_POLLY_INTO_TOOLS=OFF and/or BUILD_SHARED_LIBS/LLVM_LINK_LLVM_DYLIV where it might work, but unfortunately not with the default configuration using static component libraries.

Jun 5 2019, 10:11 AM · Restricted Project, Restricted Project
Meinersbur requested changes to D61446: Generalize the pass registration mechanism used by Polly to any third-party tool.
Jun 5 2019, 10:04 AM · Restricted Project, Restricted Project
Meinersbur added a comment to D61446: Generalize the pass registration mechanism used by Polly to any third-party tool.

This fails with Polly/Linux regression tests:

********************
FAIL: Polly :: Simplify/gemm.ll (1148 of 1149)
******************** TEST 'Polly :: Simplify/gemm.ll' FAILED ********************
Script:
--
: 'RUN: at line 1';   opt  -polly-process-unprofitable  -polly-remarks-minimal  -polly-use-llvm-names  -polly-import-jscop-dir=/home/meinersbur/src/llvm/tools/polly/test/Simplify  -polly-codegen-verify  -polly-import-jscop    -polly-import-jscop-postfix=transformed -polly-simplify -analyze < /home/meinersbur/src/llvm/tools/polly/test/Simplify/gemm.ll    | FileCheck /home/meinersbur/src/llvm/tools/polly/test/Simplify/gemm.ll
--
Exit Code: 2
Jun 5 2019, 10:04 AM · Restricted Project, Restricted Project

Jun 4 2019

Meinersbur committed rG06c801e15334: [ScopBuilder] Move canonicalizeDynamicsBasePtrs from ScopInfo. NFC. (authored by Meinersbur).
[ScopBuilder] Move canonicalizeDynamicsBasePtrs from ScopInfo. NFC.
Jun 4 2019, 2:57 PM
Meinersbur committed rL362554: [ScopBuilder] Move canonicalizeDynamicsBasePtrs from ScopInfo. NFC..
[ScopBuilder] Move canonicalizeDynamicsBasePtrs from ScopInfo. NFC.
Jun 4 2019, 2:56 PM
Meinersbur closed D62781: [Polly][NFC][ScopBuilder] Move canonicalizeDynamicsBasePtrs from ScopInfo.
Jun 4 2019, 2:56 PM · Restricted Project

Jun 3 2019

Meinersbur accepted D62781: [Polly][NFC][ScopBuilder] Move canonicalizeDynamicsBasePtrs from ScopInfo.

Do you want me to commit?

Jun 3 2019, 3:35 PM · Restricted Project
Meinersbur requested changes to D61446: Generalize the pass registration mechanism used by Polly to any third-party tool.

It still fails with the same error. LINK_POLLY_INTO_TOOLS is only set after the polly subdirectory is processed. Because it is an option, the ON value will be stored in the CMakeCache.txt and be available during the next run, it actually works after running the cmake configure step a second time. We should not expect users to do so. Because of this, any option(...) or set(... CACHED) should be done at the beginning of the file.

Jun 3 2019, 3:09 PM · Restricted Project, Restricted Project

May 31 2019

Meinersbur committed rGc16ab9dd8869: [ScopBuilder] Move verifyInvariantLoads function from ScopInfo. NFC. (authored by Meinersbur).
[ScopBuilder] Move verifyInvariantLoads function from ScopInfo. NFC.
May 31 2019, 12:39 PM
Meinersbur committed rL362258: [ScopBuilder] Move verifyInvariantLoads function from ScopInfo. NFC..
[ScopBuilder] Move verifyInvariantLoads function from ScopInfo. NFC.
May 31 2019, 12:39 PM
Meinersbur closed D62628: [Polly][NFC][ScopBuilder] Move verifyInvariantLoads function from ScopInfo.
May 31 2019, 12:39 PM · Restricted Project
Meinersbur committed rGaa8a976174c7: [ScheduleOptimizer] Hoist extension nodes after schedule optimization. (authored by Meinersbur).
[ScheduleOptimizer] Hoist extension nodes after schedule optimization.
May 31 2019, 12:25 PM
Meinersbur committed rL362257: [ScheduleOptimizer] Hoist extension nodes after schedule optimization..
[ScheduleOptimizer] Hoist extension nodes after schedule optimization.
May 31 2019, 12:24 PM
Meinersbur closed D58202: [Polly][ScheduleOptimizer] Hoist extension nodes after schedule optimization..
May 31 2019, 12:24 PM · Restricted Project

May 30 2019

Meinersbur accepted D62610: [DA] Add an option to control delinearization validity checks.
May 30 2019, 2:14 PM · Restricted Project
Meinersbur accepted D62628: [Polly][NFC][ScopBuilder] Move verifyInvariantLoads function from ScopInfo.

Do you want me to commit?

May 30 2019, 2:02 PM · Restricted Project

May 29 2019

Meinersbur added a comment to D61446: Generalize the pass registration mechanism used by Polly to any third-party tool.

For LTO, the llvm_extensions might need to be linked into lld as well. The recent polly-dev thread: https://groups.google.com/d/msg/polly-dev/BeC_v_oJIVM/LAA7vVT9AwAJ

May 29 2019, 1:38 PM · Restricted Project, Restricted Project