Page MenuHomePhabricator
Feed Advanced Search

Oct 18 2019

Meinersbur added a comment to D69088: [Lex] #pragma clang transform.

If there is a precedence, just follow that. Else, how to spell an experimental clang pragma would be a good discussion topic by itself. If I need to provide a discussion starter, I'd say how about transform_experimental instead of transform. All I ask is somehow make it easier for programmers to know it is experimental so that they won't use it w/o first reading about the current state of support. I don't have a strong opinion about how to do so.

Oct 18 2019, 3:00 PM · Restricted Project
Meinersbur added a comment to D69088: [Lex] #pragma clang transform.

@Meinersbur, if I remember correctly, there was an RFC discussion on this topic, right? If yes, would you post the pointer to that? I need a refresher on what has been discussed/settled in the past.

Oct 18 2019, 12:40 PM · Restricted Project
Meinersbur added a comment to D69088: [Lex] #pragma clang transform.

Personally, I like the intent. I don't foresee a clear (enough) path to get there. This leads to hesitation of adding a new non-experimental pragma and present it to programmers. If you call it experimental, it's easier for me to swallow.

Oct 18 2019, 8:20 AM · Restricted Project

Oct 17 2019

Meinersbur accepted D68967: [SPECCPU2017] Check for 'all' input data directory before generating command.

I don't have tried version 1.0.5 myself yet. LGTM.

Oct 17 2019, 8:12 PM · Restricted Project
Meinersbur added a comment to D69088: [Lex] #pragma clang transform.

Have we established general consensus for the desire to have the flexible enough loop optimization pass ordering to accomplish the outcome of the new directive, and shared vision for the path to get there? If we are making this a general clang directive, I'd like to see the vision to get there w/o depending on polly. If this is already discussed and settled, pointer to that is appreciated so that I can learn.

Oct 17 2019, 8:01 PM · Restricted Project
Meinersbur added a comment to D69088: [Lex] #pragma clang transform.

Just do not allow this form with respect_order clause.

Oct 17 2019, 7:54 PM · Restricted Project
Meinersbur added a comment to D68941: [ScopBuilder]Fix bug 38358 by preserve correct order of ScopStmts.

Thanks for that patch!

Oct 17 2019, 7:52 PM · Restricted Project, Restricted Project
Meinersbur committed rGd72637f5ccc4: [ScopBuilder] Fix bug 38358 by preserving correct order of ScopStmts. (authored by Meinersbur).
[ScopBuilder] Fix bug 38358 by preserving correct order of ScopStmts.
Oct 17 2019, 5:00 PM
Meinersbur committed rL375192: [ScopBuilder] Fix bug 38358 by preserving correct order of ScopStmts..
[ScopBuilder] Fix bug 38358 by preserving correct order of ScopStmts.
Oct 17 2019, 4:59 PM
Meinersbur closed D68941: [ScopBuilder]Fix bug 38358 by preserve correct order of ScopStmts.
Oct 17 2019, 4:59 PM · Restricted Project, Restricted Project
Meinersbur added a comment to D69088: [Lex] #pragma clang transform.

That approach would avoid the inevitable conflicts of having both loop and transform pragmas on the same loop.

Oct 17 2019, 4:40 PM · Restricted Project
Meinersbur added a comment to D69088: [Lex] #pragma clang transform.

@Meinersbur, if I remember correctly, there was an RFC discussion on this topic, right? If yes, would you post the pointer to that? I need a refresher on what has been discussed/settled in the past.

https://lists.llvm.org/pipermail/cfe-dev/2018-May/058141.html

Sorry if this is answered in the patches but what happens if a loop has both #pragma clang loop and transform defined before it? I guess it probably shouldn't work.

Oct 17 2019, 4:30 PM · Restricted Project
Meinersbur added a comment to D69088: [Lex] #pragma clang transform.

@Meinersbur, if I remember correctly, there was an RFC discussion on this topic, right? If yes, would you post the pointer to that? I need a refresher on what has been discussed/settled in the past.

Oct 17 2019, 2:27 PM · Restricted Project
Meinersbur added a comment to D69088: [Lex] #pragma clang transform.

Why not try to improve the existing #pragma clang loop rather than add a new pragma with almost the same behavior?

Oct 17 2019, 2:27 PM · Restricted Project
Meinersbur updated the summary of D69088: [Lex] #pragma clang transform.
Oct 17 2019, 12:39 AM · Restricted Project
Meinersbur added a child revision for D69091: [Sema] #pragma clang transform: D69092: [CodeGen] #pragma clang transform.
Oct 17 2019, 12:39 AM · Restricted Project
Meinersbur added a parent revision for D69092: [CodeGen] #pragma clang transform: D69091: [Sema] #pragma clang transform.
Oct 17 2019, 12:39 AM · Restricted Project
Meinersbur added a child revision for D69089: [Parser] #pragma clang transform: D69091: [Sema] #pragma clang transform.
Oct 17 2019, 12:39 AM · Restricted Project
Meinersbur added a child revision for D69088: [Lex] #pragma clang transform: D69089: [Parser] #pragma clang transform.
Oct 17 2019, 12:39 AM · Restricted Project
Meinersbur added a parent revision for D69091: [Sema] #pragma clang transform: D69089: [Parser] #pragma clang transform.
Oct 17 2019, 12:39 AM · Restricted Project
Meinersbur updated subscribers of D69088: [Lex] #pragma clang transform.
Oct 17 2019, 12:39 AM · Restricted Project
Meinersbur added a parent revision for D69089: [Parser] #pragma clang transform: D69088: [Lex] #pragma clang transform.
Oct 17 2019, 12:39 AM · Restricted Project
Meinersbur set the repository for D69089: [Parser] #pragma clang transform to rC Clang.
Oct 17 2019, 12:39 AM · Restricted Project
Meinersbur created D69092: [CodeGen] #pragma clang transform.
Oct 17 2019, 12:39 AM · Restricted Project
Meinersbur created D69091: [Sema] #pragma clang transform.
Oct 17 2019, 12:30 AM · Restricted Project
Meinersbur created D69089: [Parser] #pragma clang transform.
Oct 17 2019, 12:30 AM · Restricted Project
Meinersbur created D69088: [Lex] #pragma clang transform.
Oct 17 2019, 12:22 AM · Restricted Project

Oct 14 2019

Meinersbur accepted D68941: [ScopBuilder]Fix bug 38358 by preserve correct order of ScopStmts.
Oct 14 2019, 5:00 PM · Restricted Project, Restricted Project
Meinersbur added a comment to D68941: [ScopBuilder]Fix bug 38358 by preserve correct order of ScopStmts.

I remember I cared about the epilogue being the last, which is the reason for the reversed list. It ensures that the terminator is always visited first, hence added first into the list, hence being the last statement. (I am a bit surprised that no test fails). An example could be:

%b = load %B  // merged with terminator by joinOperandTree
store 42 // independent statement
br %b // terminator, epilogue
Oct 14 2019, 4:23 PM · Restricted Project, Restricted Project

Oct 9 2019

Meinersbur added a comment to D68551: [clang-format] [NFC] Ensure clang-format is itself clang-formatted..

We should seek having only one formatting policy for the entire project, it's too confusing otherwise (e.g. LLVMSupport/ADT is also used by clang-format, are they force-formatted as well? What about the tools/utils subdirectories?). If you would like to gradually move into that direction, it should be discussed on llvm-dev.

Oct 9 2019, 12:51 PM · Restricted Project, Restricted Project, Restricted Project
Meinersbur added a comment to D68551: [clang-format] [NFC] Ensure clang-format is itself clang-formatted..

I agree that a system in place that either enforces clang-formatting on commit or after the fact would be ideal. Otherwise, I don't see a need to have to approve these NFC commits.

Oct 9 2019, 11:26 AM · Restricted Project, Restricted Project, Restricted Project

Oct 7 2019

Meinersbur added a comment to D53876: Preserve loop metadata when splitting exit blocks.

The patch was closed by Phabricator since it discovered a "new" commit from git for this patch while assuming that the committed version is the most recent one. Eli re-opened it suspecting that we still might want to fix this.

Oct 7 2019, 5:58 PM · Restricted Project
Meinersbur added a comment to D53876: Preserve loop metadata when splitting exit blocks.

I think yes, together with all the other places were loop metadata is not preserved, such as D66892.

Oct 7 2019, 1:53 PM · Restricted Project

Sep 30 2019

Meinersbur accepted D67970: [DDG] Data Dependence Graph - Root Node.
Sep 30 2019, 1:46 PM · Restricted Project

Sep 26 2019

Meinersbur added inline comments to D61446: Generalize the pass registration mechanism used by Polly to any third-party tool.
Sep 26 2019, 6:55 PM · Restricted Project, Restricted Project
Meinersbur committed rG945249b5a99d: [OpenMP 5.0] Fix user-defined mapper lookup in sema (authored by Meinersbur).
[OpenMP 5.0] Fix user-defined mapper lookup in sema
Sep 26 2019, 3:52 PM
Meinersbur committed rL373023: [OpenMP 5.0] Fix user-defined mapper lookup in sema.
[OpenMP 5.0] Fix user-defined mapper lookup in sema
Sep 26 2019, 3:51 PM
Meinersbur closed D67978: [OpenMP 5.0] Fix user-defined mapper lookup in sema.
Sep 26 2019, 3:51 PM · Restricted Project, Restricted Project, Restricted Project
Meinersbur added inline comments to D66529: [LOOPGUARD] Disable loop with multiple loop exiting blocks..
Sep 26 2019, 12:19 PM · Restricted Project
Meinersbur added a comment to D67970: [DDG] Data Dependence Graph - Root Node.

Do I understand it correctly, that this node is added to avoid having to deal with forests?

Sep 26 2019, 11:17 AM · Restricted Project
Meinersbur accepted D66529: [LOOPGUARD] Disable loop with multiple loop exiting blocks..

LGTM

Sep 26 2019, 10:24 AM · Restricted Project

Sep 25 2019

Meinersbur added a comment to D68056: [Polly][NFC][ScopBuilder] Move RecordedAssumptions vector to ScopBuilder..

Nice one.

Sep 25 2019, 4:07 PM · Restricted Project, Restricted Project
Meinersbur added inline comments to D66892: [BasicBlockUtils] Add metadata fixing in SplitBlockPredecessors..
Sep 25 2019, 2:43 PM · Restricted Project
Meinersbur added a comment to D66529: [LOOPGUARD] Disable loop with multiple loop exiting blocks..

Any reason not to use Loop::getExitBlock()? The behavior is different when there are are multiple exiting edges to the same block, but does it matter? Maybe we should change Loop::getExitBlock() to only return nullptr if two different exit blocks exist, as e.g. getLoopPredecessor() already does.

Sep 25 2019, 1:26 PM · Restricted Project

Sep 24 2019

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

Keep in mind that for static linking you will need something that pulls-in a symbol from the pass static library. In this patch, NewPMDriver.cpp does it for opt by calling get##Ext##PluginInfo(). In clang, it is BackendUtil.cpp. But nothing for bugpoint hence it doesn't contain either Polly not the Goodbye pass (However, llvm-reduce is in the works, we might consider bugpoint deprecated).

Sep 24 2019, 8:29 PM · Restricted Project, Restricted Project
Meinersbur requested changes to D61446: Generalize the pass registration mechanism used by Polly to any third-party tool.
Sep 24 2019, 4:43 PM · Restricted Project, Restricted Project

Sep 17 2019

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

Sep 12 2019

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.

Sep 12 2019, 7:38 PM · Restricted Project, Restricted Project
Meinersbur added a reviewer for D67442: [Polly] Fix lib/Transform/ScheduleOptimizer.cpp compilation on Solaris: gareevroman.
Sep 12 2019, 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.
Sep 12 2019, 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.
Sep 12 2019, 6:03 PM
Meinersbur closed D67007: [ScopBuilder]Skip getting leader when merging statements to close holes.
Sep 12 2019, 6:02 PM · Restricted Project, Restricted Project
Meinersbur accepted D65350: [DDG] Data Dependence Graph Basics.

LGTM.

Sep 12 2019, 5:33 PM · Restricted Project

Sep 5 2019

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.

Sep 5 2019, 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.

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

Sep 4 2019

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)) {
Sep 4 2019, 12:14 PM · Restricted Project, Restricted Project

Sep 3 2019

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!

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

Aug 29 2019

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

Very useful contribution. Thank you!

Aug 29 2019, 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.
Aug 29 2019, 11:58 AM
Meinersbur committed rL370396: [DependenceInfo] Compute WAR dependence info using ISL kills. NFC..
[DependenceInfo] Compute WAR dependence info using ISL kills. NFC.
Aug 29 2019, 11:54 AM
Meinersbur closed D66741: [polly][NFC] Compute WAR dependence info using ISL kills.
Aug 29 2019, 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.

Aug 29 2019, 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.
Aug 29 2019, 7:44 AM
Meinersbur committed rL370368: [ScopBuilder] Remove superfluous while loop in buildDomains. NFC..
[ScopBuilder] Remove superfluous while loop in buildDomains. NFC.
Aug 29 2019, 7:44 AM
Meinersbur closed D66698: [ScopBuilder]Remove redundant while loop in ScopBuilder::buildDomains.
Aug 29 2019, 7:44 AM · Restricted Project, Restricted Project

Aug 27 2019

BlackAngel35 awarded rPLO369972: [ScopBuilder] Simplify main statement flag in buildEqivClassBlockStmts. NFC. a Baby Tequila token.
Aug 27 2019, 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?

Aug 27 2019, 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?

Aug 27 2019, 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?

Aug 27 2019, 9:47 AM

Aug 26 2019

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?

Aug 26 2019, 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.
Aug 26 2019, 2:43 PM
Meinersbur committed rL369972: [ScopBuilder] Simplify main statement flag in buildEqivClassBlockStmts. NFC..
[ScopBuilder] Simplify main statement flag in buildEqivClassBlockStmts. NFC.
Aug 26 2019, 2:43 PM
Meinersbur closed D66477: Simplify main statement flag in ScopBuilder::buildEqivClassBlockStmts.
Aug 26 2019, 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.

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

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