Page MenuHomePhabricator

Meinersbur (Michael Kruse)
User

Projects

User does not belong to any projects.

User Details

User Since
Jun 17 2015, 7:07 AM (222 w, 1 d)

Recent Activity

Tue, Sep 17

Meinersbur committed rG241b02e76287: [CodeGen] Handle outlining of CopyStmts. (authored by Meinersbur).
[CodeGen] Handle outlining of CopyStmts.
Tue, Sep 17, 4:02 PM

Thu, Sep 12

Meinersbur accepted D67442: [Polly] Fix lib/Transform/ScheduleOptimizer.cpp compilation on Solaris.

According to https://en.cppreference.com/w/cpp/numeric/math/sqrt. there should be long overloads of sqrt/ceil. However, there only case the argument to double, so this patch is a NFC compile fix.

Thu, Sep 12, 7:38 PM · Restricted Project, Restricted Project
Meinersbur added a reviewer for D67442: [Polly] Fix lib/Transform/ScheduleOptimizer.cpp compilation on Solaris: gareevroman.
Thu, Sep 12, 7:38 PM · Restricted Project, Restricted Project
Meinersbur committed rG87baae85cdee: [ScopBuilder] Skip getting leader when merging statements to close holes. (authored by Meinersbur).
[ScopBuilder] Skip getting leader when merging statements to close holes.
Thu, Sep 12, 6:04 PM
Meinersbur committed rL371801: [ScopBuilder] Skip getting leader when merging statements to close holes..
[ScopBuilder] Skip getting leader when merging statements to close holes.
Thu, Sep 12, 6:03 PM
Meinersbur closed D67007: [ScopBuilder]Skip getting leader when merging statements to close holes.
Thu, Sep 12, 6:02 PM · Restricted Project, Restricted Project
Meinersbur accepted D65350: [DDG] Data Dependence Graph Basics.

LGTM.

Thu, Sep 12, 5:33 PM · Restricted Project

Thu, Sep 5

Meinersbur added a comment to D65350: [DDG] Data Dependence Graph Basics.

Thanks for the docs! Could you clarify the difference between paper and implementation? The implementations looks fine, apart a few nits.

Thu, Sep 5, 2:31 PM · Restricted Project
Meinersbur added a comment to D67007: [ScopBuilder]Skip getting leader when merging statements to close holes.

Also removed the trailing words since previously merged groups could be not trailing in SeenLeaders.

Thu, Sep 5, 12:44 PM · Restricted Project, Restricted Project
Meinersbur added a comment to D67007: [ScopBuilder]Skip getting leader when merging statements to close holes.
Thu, Sep 5, 12:44 PM · Restricted Project, Restricted Project

Wed, Sep 4

Meinersbur added a comment to D67007: [ScopBuilder]Skip getting leader when merging statements to close holes.

Ahh, I think I understand the argument. Thank you for your patience. But I strongly suggest to update the description. Suggestion:

// We are backtracking from the last element until we see Inst's leader in SeenLeaders and merge all into one set. Although which instructions are leaders changes during the execution of this loop, it is irrelevant as we are just searching for the element that we already confirmed is in the list.
 for (Instruction *Prev : reverse(SeenLeaders)) {
Wed, Sep 4, 12:14 PM · Restricted Project, Restricted Project

Tue, Sep 3

Meinersbur added a comment to D67007: [ScopBuilder]Skip getting leader when merging statements to close holes.

Thank you for the find. Indeed the name of PrevLeader suggests it to be the leader of Prev. It's leader should be identical to leader to the last element of SeenLeaders, but only before the first unionSet operation. Then the tail ("B") has been merged into Inst's leader "A", making the condition a tautology. That's definitely wrong!

Tue, Sep 3, 10:38 AM · Restricted Project, Restricted Project
Meinersbur committed rL370780: Request commit access for meinersbur.
Request commit access for meinersbur
Tue, Sep 3, 9:29 AM

Thu, Aug 29

Meinersbur added a comment to D66741: [polly][NFC] Compute WAR dependence info using ISL kills.

Very useful contribution. Thank you!

Thu, Aug 29, 2:51 PM · Restricted Project, Restricted Project
Meinersbur committed rGacbdd07de6de: [DependenceInfo] Compute WAR dependence info using ISL kills. NFC. (authored by Meinersbur).
[DependenceInfo] Compute WAR dependence info using ISL kills. NFC.
Thu, Aug 29, 11:58 AM
Meinersbur committed rL370396: [DependenceInfo] Compute WAR dependence info using ISL kills. NFC..
[DependenceInfo] Compute WAR dependence info using ISL kills. NFC.
Thu, Aug 29, 11:54 AM
Meinersbur closed D66741: [polly][NFC] Compute WAR dependence info using ISL kills.
Thu, Aug 29, 11:54 AM · Restricted Project, Restricted Project
Meinersbur added a comment to D66698: [ScopBuilder]Remove redundant while loop in ScopBuilder::buildDomains.

I adjusted the title as well.

Thu, Aug 29, 11:48 AM · Restricted Project, Restricted Project
Meinersbur committed rG6220ce60de87: [ScopBuilder] Remove superfluous while loop in buildDomains. NFC. (authored by Meinersbur).
[ScopBuilder] Remove superfluous while loop in buildDomains. NFC.
Thu, Aug 29, 7:44 AM
Meinersbur committed rL370368: [ScopBuilder] Remove superfluous while loop in buildDomains. NFC..
[ScopBuilder] Remove superfluous while loop in buildDomains. NFC.
Thu, Aug 29, 7:44 AM
Meinersbur closed D66698: [ScopBuilder]Remove redundant while loop in ScopBuilder::buildDomains.
Thu, Aug 29, 7:44 AM · Restricted Project, Restricted Project

Tue, Aug 27

BlackAngel35 awarded rPLO369972: [ScopBuilder] Simplify main statement flag in buildEqivClassBlockStmts. NFC. a Baby Tequila token.
Tue, Aug 27, 9:01 PM
Meinersbur added a comment to D61446: Generalize the pass registration mechanism used by Polly to any third-party tool.

Sorry for the break.
Unfortunately the patch does not apply cleanly anymore. Can you rebase to latest trunk?

Tue, Aug 27, 8:38 PM · Restricted Project, Restricted Project
Meinersbur added a comment to D66698: [ScopBuilder]Remove redundant while loop in ScopBuilder::buildDomains.

Hmm, but the while loop is redundant, right?

Tue, Aug 27, 12:24 PM · Restricted Project, Restricted Project
Meinersbur added a comment to D66796: [clang] Loop pragma vectorize(disable).

Therefore, vectorize(disable) would also disable interleaving?

Tue, Aug 27, 9:47 AM

Mon, Aug 26

Meinersbur accepted D66698: [ScopBuilder]Remove redundant while loop in ScopBuilder::buildDomains.

LGMT. L is just unused after that (not "redundant"). Can you correct the summary?

Mon, Aug 26, 3:17 PM · Restricted Project, Restricted Project
Meinersbur committed rG88fd2d01238f: [ScopBuilder] Simplify main statement flag in buildEqivClassBlockStmts. NFC. (authored by Meinersbur).
[ScopBuilder] Simplify main statement flag in buildEqivClassBlockStmts. NFC.
Mon, Aug 26, 2:43 PM
Meinersbur committed rL369972: [ScopBuilder] Simplify main statement flag in buildEqivClassBlockStmts. NFC..
[ScopBuilder] Simplify main statement flag in buildEqivClassBlockStmts. NFC.
Mon, Aug 26, 2:43 PM
Meinersbur closed D66477: Simplify main statement flag in ScopBuilder::buildEqivClassBlockStmts.
Mon, Aug 26, 2:43 PM · Restricted Project, Restricted Project
Meinersbur accepted D66741: [polly][NFC] Compute WAR dependence info using ISL kills.

LGTM. Please add "NFC" to the title for "No Functional Change" intended.

Mon, Aug 26, 2:01 PM · Restricted Project, Restricted Project

Thu, Aug 22

Meinersbur added a comment to D66477: Simplify main statement flag in ScopBuilder::buildEqivClassBlockStmts.

The change looks good. Thank you for the contribution! Could you change the comments a bit as remarked inline?

Thu, Aug 22, 1:57 PM · Restricted Project, Restricted Project

Aug 19 2019

Meinersbur added a comment to D65350: [DDG] Data Dependence Graph Basics.

LGTM, with some nitpicks.

Aug 19 2019, 3:16 PM · Restricted Project

Aug 14 2019

Meinersbur accepted D64564: Loop pragma parsing. NFC..
Aug 14 2019, 1:44 PM · Restricted Project
Meinersbur added inline comments to D66199: [docs] loop pragmas.
Aug 14 2019, 1:09 PM
Meinersbur added a comment to D66199: [docs] loop pragmas.

Since this is user documentation, we should only add it here once it is true.

Aug 14 2019, 9:41 AM

Aug 13 2019

Meinersbur accepted D65776: [Clang] Pragma vectorize_predicate implies vectorize.
Aug 13 2019, 7:44 PM · Restricted Project
Meinersbur committed rGcc0f0582c8b6: [Polly-ACC] Fix test after IR-printer change. (authored by Meinersbur).
[Polly-ACC] Fix test after IR-printer change.
Aug 13 2019, 3:42 PM
Meinersbur added inline comments to D64564: Loop pragma parsing. NFC..
Aug 13 2019, 11:42 AM · Restricted Project

Aug 8 2019

Meinersbur added inline comments to D65958: [Loop] Add isRotated method to Loop class..
Aug 8 2019, 4:50 PM · Restricted Project

Aug 6 2019

Meinersbur added a comment to D65464: [LoopFusion] Add ability to fuse guarded loops.

Is there a long-term plan to avoid the code duplication? E.g. refactoring/keeping only the fuseGuardedLoops variant when loop guards become a normal form? One could also add some preprocessing that makes the two loop guards guard both loops, then use the standard fuse code.

Aug 6 2019, 3:39 PM · Restricted Project
Meinersbur added a comment to D65776: [Clang] Pragma vectorize_predicate implies vectorize.

Looking at the similar situation of unroll(enable)/unroll_count(4), unroll_count also does not set llvm.loop.unroll.enable, but it is handled by the LoopUnroll pass itself:

bool ExplicitUnroll = PragmaCount > 0 || PragmaFullUnroll ||
                      PragmaEnableUnroll || UserUnrollCount;

(LoopUnrollPass.cpp line 770f)

Aug 6 2019, 3:23 PM · Restricted Project

Aug 5 2019

Meinersbur accepted D59978: [Attributor] Deduce the "no-return" attribute for functions.

Thank you for adding the extensive test cases with different EHPersonalities.

Aug 5 2019, 4:08 PM · Restricted Project
Meinersbur accepted D65241: [Polly][NFC][ScopBuilder] Move addUserAssumptions to ScopBuilder.

LGTM (with D65729)

Aug 5 2019, 3:38 PM · Restricted Project
Meinersbur accepted D65729: [Polly][NFC][ScopBuilder] Move buildDomains and its callees to ScopBuilder..

LGTM

Aug 5 2019, 3:32 PM · Restricted Project
Meinersbur accepted D65718: [LangRef] Document forward-progress requirement.
Aug 5 2019, 3:29 PM · Restricted Project
Meinersbur added a comment to D65776: [Clang] Pragma vectorize_predicate implies vectorize.

Mmmh, I would have expected this to work the same way as vectorize_width. According to the docs:

The following example implicitly enables vectorization and interleaving by specifying a vector width and interleaving count:
#pragma clang loop vectorize_width(2) interleave_count(2)
for(...) {
...
}

Aug 5 2019, 3:14 PM · Restricted Project
Meinersbur committed rG78769ec40387: [libomptarget] Harmonize emitting CUDA errors and general debug messages. (authored by Meinersbur).
[libomptarget] Harmonize emitting CUDA errors and general debug messages.
Aug 5 2019, 12:16 PM
Meinersbur committed rL367910: [libomptarget] Harmonize emitting CUDA errors and general debug messages..
[libomptarget] Harmonize emitting CUDA errors and general debug messages.
Aug 5 2019, 12:12 PM
Meinersbur closed D65687: [libomptarget] Harmonize emitting CUDA errors and general debug messages..
Aug 5 2019, 12:12 PM · Restricted Project, Restricted Project
Meinersbur committed rGd47b9438d7b7: [OpenMP 5.0] Codegen support for user-defined mappers. (authored by Meinersbur).
[OpenMP 5.0] Codegen support for user-defined mappers.
Aug 5 2019, 11:49 AM
Meinersbur committed rL367905: [OpenMP 5.0] Codegen support for user-defined mappers..
[OpenMP 5.0] Codegen support for user-defined mappers.
Aug 5 2019, 11:42 AM
Meinersbur added inline comments to D65729: [Polly][NFC][ScopBuilder] Move buildDomains and its callees to ScopBuilder..
Aug 5 2019, 9:58 AM · Restricted Project
Meinersbur accepted D64557: Add llvm.loop.licm.disable metadata.

Please wait a day before committing in case there are still questions about the motivation.

Aug 5 2019, 9:30 AM · Restricted Project

Aug 3 2019

Meinersbur committed rG7eb2f08b9c86: Revert "[OpenMP 5.0] Codegen support for user-defined mappers." (authored by Meinersbur).
Revert "[OpenMP 5.0] Codegen support for user-defined mappers."
Aug 3 2019, 10:17 PM
Meinersbur committed rL367774: Revert "[OpenMP 5.0] Codegen support for user-defined mappers.".
Revert "[OpenMP 5.0] Codegen support for user-defined mappers."
Aug 3 2019, 10:17 PM
Meinersbur added inline comments to D59978: [Attributor] Deduce the "no-return" attribute for functions.
Aug 3 2019, 10:10 PM · Restricted Project
Meinersbur committed rGa04ffdbb05fb: [OpenMP 5.0] Codegen support for user-defined mappers. (authored by Meinersbur).
[OpenMP 5.0] Codegen support for user-defined mappers.
Aug 3 2019, 9:21 PM
Meinersbur committed rG2c7a8eaf3d3f: [OpenMP 5.0] libomptarget interface for declare mapper functions. (authored by Meinersbur).
[OpenMP 5.0] libomptarget interface for declare mapper functions.
Aug 3 2019, 9:21 PM
Meinersbur committed rL367773: [OpenMP 5.0] Codegen support for user-defined mappers..
[OpenMP 5.0] Codegen support for user-defined mappers.
Aug 3 2019, 9:18 PM
Meinersbur closed D59474: [OpenMP 5.0] Codegen support for user-defined mappers.
Aug 3 2019, 9:18 PM · Restricted Project, Restricted Project, Restricted Project
Meinersbur committed rL367772: [OpenMP 5.0] libomptarget interface for declare mapper functions..
[OpenMP 5.0] libomptarget interface for declare mapper functions.
Aug 3 2019, 9:18 PM
Meinersbur closed D60972: [OpenMP 5.0] libomptarget interface for declare mapper functions.
Aug 3 2019, 9:17 PM · Restricted Project, Restricted Project

Aug 2 2019

Meinersbur created D65687: [libomptarget] Harmonize emitting CUDA errors and general debug messages..
Aug 2 2019, 5:44 PM · Restricted Project, Restricted Project
Meinersbur added inline comments to D59978: [Attributor] Deduce the "no-return" attribute for functions.
Aug 2 2019, 12:41 PM · Restricted Project
Meinersbur added inline comments to D59978: [Attributor] Deduce the "no-return" attribute for functions.
Aug 2 2019, 8:40 AM · Restricted Project

Aug 1 2019

Meinersbur added inline comments to D59978: [Attributor] Deduce the "no-return" attribute for functions.
Aug 1 2019, 12:56 PM · Restricted Project
Meinersbur added inline comments to D59978: [Attributor] Deduce the "no-return" attribute for functions.
Aug 1 2019, 9:48 AM · Restricted Project

Jul 31 2019

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

Did you resolve the conflicting llvmGetPassPluginInfo symbols for windows?

Jul 31 2019, 9:23 AM · Restricted Project, Restricted Project

Jul 30 2019

Meinersbur requested changes to D64564: Loop pragma parsing. NFC..
Jul 30 2019, 8:44 AM · Restricted Project
Meinersbur accepted D64564: Loop pragma parsing. NFC..

LGTM

Jul 30 2019, 8:35 AM · Restricted Project

Jul 29 2019

Meinersbur added inline comments to D65350: [DDG] Data Dependence Graph Basics.
Jul 29 2019, 4:24 PM · Restricted Project
Meinersbur added a comment to D65164: Define some basic terminology around loops in our documentation.

I am unhappy about this having been committed already. Now we have official documentation at https://llvm.org/docs/LoopTerminology.html which is partially wrong.

Jul 29 2019, 3:00 PM · Restricted Project
Meinersbur added a comment to D65197: [LV] Tail-loop Folding.

Looks fine to me, but see what the other reviewers say.

Jul 29 2019, 12:45 PM · Restricted Project

Jul 26 2019

Meinersbur added a comment to D65295: [opt] Ensure the IR-Linker is available to plugins..

The CMake build system option PLUGIN_TOOL on add_llvm_loadable_module is for this specific purpose, it instructs the link step for the plugin dylib to resolve symbols against the tool.

Polly likely needs to generate different libraries for being a clang plugin vs being an opt plugin, but that is expected and the correct solution to this problem.

Jul 26 2019, 10:57 AM · Restricted Project
Meinersbur added inline comments to D65257: Describe resticted form of loops in the new loop terminogy documentation.
Jul 26 2019, 7:27 AM · Restricted Project
Meinersbur added a comment to D65295: [opt] Ensure the IR-Linker is available to plugins..

What about "force-load" the archive libraries on link? See what we do in MLIR here: https://github.com/tensorflow/mlir/blob/master/CMakeLists.txt#L22

Jul 26 2019, 6:57 AM · Restricted Project

Jul 25 2019

Meinersbur added a comment to D65241: [Polly][NFC][ScopBuilder] Move addUserAssumptions to ScopBuilder.

Maybe you can make a final review when I propose next patch with moved buildDomains functions?

Jul 25 2019, 2:00 PM · Restricted Project
Meinersbur created D65295: [opt] Ensure the IR-Linker is available to plugins..
Jul 25 2019, 11:28 AM · Restricted Project
Meinersbur added a comment to D65241: [Polly][NFC][ScopBuilder] Move addUserAssumptions to ScopBuilder.

[remark] Summary: getRepresentingInvariantLoadSCEV is already in the Scop class. Did you want to say changing its visibility to public?

Jul 25 2019, 8:30 AM · Restricted Project
Meinersbur requested changes to D65257: Describe resticted form of loops in the new loop terminogy documentation.
Jul 25 2019, 8:15 AM · Restricted Project

Jul 24 2019

Meinersbur requested changes to D61446: Generalize the pass registration mechanism used by Polly to any third-party tool.

Thank you for adding the Bye pass. It is really useful! Is there a specific reason to not modify the Hello pass?

Jul 24 2019, 1:54 PM · Restricted Project, Restricted Project
Meinersbur added a comment to D64916: [LV] Scalar Epilogue Lowering. NFC..

Just one comment from me.

@Meinersbur, you think your comments are addressed enough?

Jul 24 2019, 10:22 AM · Restricted Project
Meinersbur added a comment to D65197: [LV] Tail-loop Folding.

Just just realized that docs for llvm.loop.vectorize.predicate.enable is part of D64744, which otherwise is a clang-only patch.

Yep, indeed, so I assume that's all good.

Jul 24 2019, 6:35 AM · Restricted Project
Meinersbur added a comment to D65164: Define some basic terminology around loops in our documentation.

Thanks for taking the initiative.

Jul 24 2019, 6:23 AM · Restricted Project
Meinersbur added a comment to D65197: [LV] Tail-loop Folding.

Just just realized that docs for llvm.loop.vectorize.predicate.enable is part of D64744, which otherwise is a clang-only patch.

Jul 24 2019, 5:48 AM · Restricted Project
Meinersbur added a comment to D65197: [LV] Tail-loop Folding.

[serious] There is a LoopVectorizeHints class in LoopVectorizationLegality.cpp that should be used.

Jul 24 2019, 5:43 AM · Restricted Project

Jul 22 2019

Meinersbur added a comment to D64557: Add llvm.loop.licm.disable metadata.

@fhahn @arsenm @hfinkel Has the motivation question been sufficiently addressed?

Jul 22 2019, 12:07 PM · Restricted Project

Jul 19 2019

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.

Jul 19 2019, 2:08 PM · Restricted Project

Jul 18 2019

Meinersbur added a comment to D64916: [LV] Scalar Epilogue Lowering. NFC..

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

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

[serious] Need to update docs.

Jul 18 2019, 9:47 AM · Restricted Project

Jul 17 2019

Meinersbur accepted D63459: Loop Cache Analysis.

LGTM, some nitpicks left.

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

LGTM

Jul 17 2019, 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]
Jul 17 2019, 12:06 PM · Restricted Project
Meinersbur accepted D64088: [DDG] DirectedGraph as a base class for various dependence graphs such as DDG and PDG..

LGTM

Jul 17 2019, 8:55 AM · Restricted Project

Jul 15 2019

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

LGTM

Jul 15 2019, 4:44 PM · Restricted Project
Meinersbur added inline comments to D63885: [LOOPINFO] Introduce the loop guard API. .
Jul 15 2019, 12:15 PM · Restricted Project
Meinersbur added inline comments to D63885: [LOOPINFO] Introduce the loop guard API. .
Jul 15 2019, 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.

Jul 15 2019, 11:33 AM · Restricted Project

Jul 12 2019

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

LGTM

Jul 12 2019, 1:13 PM · Restricted Project

Jul 11 2019

Meinersbur added inline comments to D63885: [LOOPINFO] Introduce the loop guard API. .
Jul 11 2019, 1:04 PM · Restricted Project