Page MenuHomePhabricator
Feed Advanced Search

Aug 22 2019

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?

Aug 22 2019, 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 · Restricted Project
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 · Restricted Project

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
Meinersbur added inline comments to D63572: [Polly][NFC][ScopBuilder] Move addRecordedAssumption to ScopBuilder.
Jul 11 2019, 10:05 AM · Restricted Project
Meinersbur added inline comments to D64564: Loop pragma parsing. NFC..
Jul 11 2019, 9:44 AM · Restricted Project
Meinersbur added inline comments to D64557: Add llvm.loop.licm.disable metadata.
Jul 11 2019, 9:20 AM · Restricted Project
Meinersbur added inline comments to D63885: [LOOPINFO] Introduce the loop guard API. .
Jul 11 2019, 8:50 AM · Restricted Project

Jul 10 2019

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?

Jul 10 2019, 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..
Jul 10 2019, 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!

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

LGTM

Jul 10 2019, 10:49 AM · Restricted Project

Jul 9 2019

Meinersbur added inline comments to D63844: [LoopFusion] Extend use of OptimizationRemarkEmitter.
Jul 9 2019, 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.
Jul 9 2019, 3:40 PM · Restricted Project
Meinersbur accepted D63693: [Polly][NFC][ScopBuilder] Move buildAliasChecks and its implementing methods to ScopBuilder.

LGTM! Many thanks!

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

Jul 8 2019

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

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

Jul 8 2019, 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?

Jul 8 2019, 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?

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

LGTM

Jul 8 2019, 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).

Jul 8 2019, 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!

Jul 8 2019, 11:27 AM · Restricted Project

Jun 26 2019

Meinersbur added inline comments to D63304: Ignore Singletons in statement domains.
Jun 26 2019, 2:44 PM · Restricted Project, Restricted Project
Meinersbur added inline comments to D63305: Propagate Trip count Assumptions to runtime check.
Jun 26 2019, 1:25 PM · Restricted Project, Restricted Project
Meinersbur added inline comments to D63304: Ignore Singletons in statement domains.
Jun 26 2019, 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.

Jun 26 2019, 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.
Jun 26 2019, 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"?

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

Can I commit this patch for you?

Jun 26 2019, 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.

Jun 26 2019, 12:27 AM · Restricted Project

Jun 25 2019

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?

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

LGTM

Jun 25 2019, 3:54 AM · Restricted Project