Page MenuHomePhabricator
Feed Advanced Search

Fri, Jan 10

Meinersbur added inline comments to D72350: [DDG] Data Dependence Graph - Graph Simplification.
Fri, Jan 10, 1:10 PM · Restricted Project

Thu, Jan 9

Meinersbur added a comment to D72327: Fix compiler extension builds.

It would be nicer if you would commit (and upload for review) the three changes separately. You might just commit the first two changes since I think they are ok, but I am not sure about the ensureValid change, which needs some expertise from someone knowing sys::DynamicLibrary and llvm::ManagedStatic.

Thu, Jan 9, 1:50 PM · Restricted Project
Meinersbur added inline comments to D72350: [DDG] Data Dependence Graph - Graph Simplification.
Thu, Jan 9, 11:57 AM · Restricted Project
Meinersbur added a comment to D72372: [CMake] Force static linking for registered plugins on Windows..
  1. I'm unsure it's fine to have a different default for different platform (but that's arguable)
Thu, Jan 9, 10:05 AM · Restricted Project

Wed, Jan 8

Meinersbur accepted D72327: Fix compiler extension builds.

LGTM

Wed, Jan 8, 8:46 AM · Restricted Project

Tue, Jan 7

Meinersbur created D72372: [CMake] Force static linking for registered plugins on Windows..
Tue, Jan 7, 3:53 PM · Restricted Project
Meinersbur added a comment to D72117: [cmake] Use source-groups in Polly.

Thank you for the patch!

Tue, Jan 7, 12:30 PM · Restricted Project
Meinersbur committed rG76ee0de00c40: [cmake] Use source-groups in Polly. (authored by ctetreau).
[cmake] Use source-groups in Polly.
Tue, Jan 7, 12:20 PM
Meinersbur closed D72117: [cmake] Use source-groups in Polly.
Tue, Jan 7, 12:20 PM · Restricted Project
Meinersbur added a comment to D72109: [cmake] Use relative cmake binary dir for processing pass plugins.

I changed CMAKE_CURRENT_BINARY_DIR to LLVM_BINARY_DIR in the commit description. Thank you for the patch.

Tue, Jan 7, 12:20 PM · Restricted Project
Meinersbur added inline comments to D71578: [CodeMoverUtils] Improve IsControlFlowEquivalent..
Tue, Jan 7, 12:01 PM · Restricted Project
Meinersbur committed rGb6503901f24e: [cmake] Use relative cmake binary dir for processing pass plugins. (authored by Meinersbur).
[cmake] Use relative cmake binary dir for processing pass plugins.
Tue, Jan 7, 11:51 AM
Meinersbur closed D72109: [cmake] Use relative cmake binary dir for processing pass plugins.
Tue, Jan 7, 11:51 AM · Restricted Project
Meinersbur accepted D72117: [cmake] Use source-groups in Polly.

Please add another comment for if you need someone else to do the commit.

Tue, Jan 7, 9:37 AM · Restricted Project
Meinersbur added inline comments to D72327: Fix compiler extension builds.
Tue, Jan 7, 8:58 AM · Restricted Project

Fri, Jan 3

Meinersbur accepted D71684: [SPECCPU2017] Add CXXPORTABILITY flags for 526.blender_r.

With or without my suggestion, the change look fine.

Fri, Jan 3, 10:33 AM · Restricted Project
Meinersbur added a comment to D71684: [SPECCPU2017] Add CXXPORTABILITY flags for 526.blender_r.

Thanks for the feedback. Obviously, my CMake skills needs to catch up. My
intention was to add the macro definition only for CXX compilation, but
add_definitions, add_compile_options change both C and CXX flags AFAIK at
the time.

Fri, Jan 3, 8:21 AM · Restricted Project
Meinersbur accepted D72109: [cmake] Use relative cmake binary dir for processing pass plugins.

LGTM

Fri, Jan 3, 6:16 AM · Restricted Project
Meinersbur added inline comments to D72117: [cmake] Use source-groups in Polly.
Fri, Jan 3, 2:49 AM · Restricted Project
Meinersbur added a comment to D72109: [cmake] Use relative cmake binary dir for processing pass plugins.

I don't think CMAKE_CURRENT_BINARY_DIR will work. It is different for each subdirectory, such that multiple plugins create separate Extension.def.tmp instead of appending to a central one. LLVM_BINARY_DIR might be the better choice.

Fri, Jan 3, 2:21 AM · Restricted Project

Dec 20 2019

Meinersbur requested changes to D71684: [SPECCPU2017] Add CXXPORTABILITY flags for 526.blender_r.

[serious] Overriding CMAKE_CXX_FLAGS applies the change globally to everything in the test-suite. The file itself shows how it is done correctly right before the line you added.

Dec 20 2019, 2:02 AM · Restricted Project

Dec 18 2019

Meinersbur updated the diff for D70572: [Serialization] #pragma clang transform.
  • Adapt for refactored ASTRecordReader/Writer
Dec 18 2019, 10:44 PM · Restricted Project
Meinersbur updated the diff for D69091: [Sema] #pragma clang transform.
  • Rework TransformedTree a bit
Dec 18 2019, 10:21 PM · Restricted Project
Meinersbur added a comment to D71578: [CodeMoverUtils] Improve IsControlFlowEquivalent..

This is a quite deep introspection that I'd assume would be in the domain of some analysis, such as value numbering. It could ensure that equivalent conditional branches will take the same llvm::Value.

Dec 18 2019, 3:55 PM · Restricted Project
Meinersbur accepted D68056: [Polly][NFC][ScopBuilder] Move RecordedAssumptions vector to ScopBuilder..

LGTM. Please consider the [style] remarks as well before committing.

Dec 18 2019, 2:00 PM · Restricted Project, Restricted Project
Meinersbur accepted D70986: [DDG] Data Dependence Graph - Ordinals.

The order is at the mercy of SCCIterator. For example if you look at the first pi-block node in basic-a.ll, you'll notice that prior to this change the %inc = add i64 %i.02, 1 was placed ahead of %i.02 = phi .

Dec 18 2019, 1:41 PM · Restricted Project
Meinersbur added a comment to D70986: [DDG] Data Dependence Graph - Ordinals.

The nodes in a pi-block cannot be topologically sorted since they form a cycle. The ordinals help us put them in their original program order so as to preserve correctness. For example consider this case:

for (int i = 0; i < n-1; i++) {
  A[i] = B[i];
  B[i+1] = A[i];
}

There will be a pi-block consisting of all load and stores in the loop, and they cannot be sorted in the order of data dependence. We do not want to inadvertently change it to:

for (int i = 0; i < n-1; i++) {
  B[i+1] = A[i];
  A[i] = B[i];
}
Dec 18 2019, 11:16 AM · Restricted Project

Dec 17 2019

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

Btw, this patch did not apply cleanly on trunk. I instead test the version from your repository.

Dec 17 2019, 8:29 PM · Restricted Project, Restricted Project
Meinersbur added inline comments to D71618: [System Model] Introduce system model classes.
Dec 17 2019, 1:30 PM · Restricted Project
Meinersbur accepted D71165: [LoopFusion] Move instructions from FC0.Latch to FC1.Latch..
Dec 17 2019, 12:33 PM · Restricted Project
Meinersbur accepted D61446: Generalize the pass registration mechanism used by Polly to any third-party tool.

I tested the configurations mentioned at https://groups.google.com/d/topic/polly-dev/vxumPMhrSEs/discussion again and did not find any issues that were not there before. Therefore IMHO this is good to go.

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

This is a major new language feature, and code review is probably not the right venue for reviewing it; there should be a thread on cfe-dev. My apologies if that's already been discussed and I missed it.

Dec 17 2019, 10:05 AM · Restricted Project

Dec 16 2019

Meinersbur accepted D71165: [LoopFusion] Move instructions from FC0.Latch to FC1.Latch..

LGTM

Dec 16 2019, 1:52 PM · Restricted Project
Meinersbur added a comment to D68056: [Polly][NFC][ScopBuilder] Move RecordedAssumptions vector to ScopBuilder..

Could you upload the nest diff with context (git diff -U999999)?

Dec 16 2019, 1:40 PM · Restricted Project, Restricted Project
Meinersbur accepted D70939: [LoopUtils] Updated deleteDeadLoop() to handle loop nest. .

LGTM

Dec 16 2019, 12:36 PM · Restricted Project
Meinersbur added a comment to D71383: [LoopGuard] Instructions in loop preheader and loop exit must be safe to execute speculatively..

I did a test with a loop that has a call which may throw inside, and SCEV is able to calculate the trip count, add recurrence of the induction variable, etc. Maybe we can keep getLoopGuardBranch() as is, and not worry about instructions which not guaranteed to transfer execution to successors? What do you think @Meinersbur?

Dec 16 2019, 12:16 PM · Restricted Project

Dec 13 2019

Meinersbur added a comment to D71383: [LoopGuard] Instructions in loop preheader and loop exit must be safe to execute speculatively..

I am ok with this patch. @fhahn what do you think?

Dec 13 2019, 7:15 PM · Restricted Project
Meinersbur committed rG2a789dd0ad88: [OpenMP][Docs] Claim loop tiling. (authored by Meinersbur).
[OpenMP][Docs] Claim loop tiling.
Dec 13 2019, 4:49 PM
Meinersbur added a comment to D70634: Ignore Unknown dependencies using vectorize.ivdep metadata.

[serious] We did not come to a conclusion during the discussion about the semantics ivdep being implementation-dependent.

I was under the impression that Unknown dependencies were ambiguous to the vectorizer and so would be along the lines of the Cray semantics. Please suggest what would be a good approach for this.

Dec 13 2019, 4:04 PM · Restricted Project
Meinersbur added inline comments to D71383: [LoopGuard] Instructions in loop preheader and loop exit must be safe to execute speculatively..
Dec 13 2019, 3:45 PM · Restricted Project
Meinersbur updated the summary of D69088: [Lex] #pragma clang transform.
Dec 13 2019, 3:27 PM · Restricted Project
Meinersbur added a comment to D71492: [SCEV] Generate AddRec for trivial and LCSSA phis outside of loop header (WIP).

[suggestion] The scope of the lcssa PHI node and the definition of its value are in different loops, hence calling getSCEVAtScope at the lcssa's scope may simplify the expression. This might even be mandatory since SCEV should be canonical.

Dec 13 2019, 3:09 PM · Restricted Project

Dec 12 2019

Meinersbur added a parent revision for D71447: [CIndex] #pragma clang transform: D69091: [Sema] #pragma clang transform.
Dec 12 2019, 5:19 PM · Restricted Project
Meinersbur created D71447: [CIndex] #pragma clang transform.
Dec 12 2019, 5:19 PM · Restricted Project
Meinersbur added a child revision for D69091: [Sema] #pragma clang transform: D71447: [CIndex] #pragma clang transform.
Dec 12 2019, 5:19 PM · Restricted Project
Meinersbur updated the diff for D70032: [docs] #pragma clang transform.
  • Add release notes
Dec 12 2019, 4:59 PM · Restricted Project
Meinersbur updated the diff for D70572: [Serialization] #pragma clang transform.
  • Rebase
Dec 12 2019, 4:40 PM · Restricted Project
Meinersbur updated the diff for D69092: [CodeGen] #pragma clang transform.
  • Remove handling of OpenMP simd and LoopHints by CGTransform
Dec 12 2019, 4:40 PM · Restricted Project
Meinersbur updated the diff for D69091: [Sema] #pragma clang transform.
  • Remove handling of LoopHints (#pragma clang loop) and OpenMP (#pragma omp simd) to reduce the size of the patches. Compatibility with OpenMP is still a goal (to implement the upcoming OpenMP loop transformations such as #pragma omp tile), but for now they are handled by separate code paths.
Dec 12 2019, 4:29 PM · Restricted Project
Meinersbur updated the diff for D69089: [Parser] #pragma clang transform.
  • Simplify transformation classes
Dec 12 2019, 4:23 PM · Restricted Project

Dec 11 2019

Meinersbur added a comment to D68789: [LoopNest]: Analysis to discover properties of a loop nest..

I'd only store the list of perfectly nested loops that are have the analysis loop as outermost loop in the analysis results. This should be the most expensive analysis that might be worth caching/preserving between passes.

Dec 11 2019, 3:16 PM · Restricted Project

Dec 10 2019

Meinersbur added inline comments to D70939: [LoopUtils] Updated deleteDeadLoop() to handle loop nest. .
Dec 10 2019, 9:32 AM · Restricted Project

Dec 7 2019

Meinersbur added a comment to D70939: [LoopUtils] Updated deleteDeadLoop() to handle loop nest. .

I slightly tend towards @bmahjour's suggestion, for convenience of the user.

Dec 7 2019, 3:33 PM · Restricted Project
Meinersbur added a comment to D71165: [LoopFusion] Move instructions from FC0.Latch to FC1.Latch..

Is there a mistake in the example? Every execution will end in the infinite loop header4. Why did you mean to move preheader3 instead of latch1?

Dec 7 2019, 2:56 PM · Restricted Project

Dec 5 2019

Meinersbur accepted D65958: [Loop] Add isRotated method to Loop class..

LGTM

Dec 5 2019, 1:13 PM · Restricted Project
Meinersbur added a comment to D70986: [DDG] Data Dependence Graph - Ordinals.

I do not understand why the ordinals are necessary. For deterministic behavior, the deterministic iteration order over blocks and instructions should already ensure that (unless you are iterating over DenseMaps, which does not seem the case and is easily fixed). If for correctness, do you have an illustrative example when this would be critical?

Dec 5 2019, 9:46 AM · Restricted Project
Meinersbur accepted D71025: [LoopFusion] Restrict loop fusion to rotated loops..

[suggestion] Add a test case to check for "not rotated" to be rejected.

Dec 5 2019, 8:55 AM · Restricted Project

Dec 2 2019

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

ping

Dec 2 2019, 3:02 PM · Restricted Project
Meinersbur added a reviewer for D69088: [Lex] #pragma clang transform: rjmccall.
Dec 2 2019, 3:02 PM · Restricted Project
Meinersbur accepted D70609: [DDG] Data Dependence Graph - Topological Sort.

LGTM assuming this fixes the leak (and the unused value warning).

Dec 2 2019, 11:38 AM · Restricted Project
Meinersbur added a comment to D70609: [DDG] Data Dependence Graph - Topological Sort.

I'm planning to add more tests later. I have two more patches that would cause reordering in the LIT tests so I'm waiting for us to get those in before adding more maintenance. I've noted the reduction case and will add that to the list of tests.

Dec 2 2019, 11:38 AM · Restricted Project
Meinersbur added a comment to D70619: [NFC][LoopFusion] Use isControlFlowEquivalent() from CodeMoverUtils..

For reference: landed as aaf7f05a96e6c21b7a6d1ad9e73fb7ab5eee7d83

Dec 2 2019, 9:48 AM · Restricted Project
Meinersbur added a comment to D70609: [DDG] Data Dependence Graph - Topological Sort.

[suggestion] Could you add a test case with a reduction (not necessarily in this patch), such as

double sum = 0;
for (int i = 0; i < n; i+=1)
  sum+=A[i];
return sum;
Dec 2 2019, 9:39 AM · Restricted Project
Meinersbur added inline comments to D70609: [DDG] Data Dependence Graph - Topological Sort.
Dec 2 2019, 9:20 AM · Restricted Project
Meinersbur added a comment to D61446: Generalize the pass registration mechanism used by Polly to any third-party tool.
Dec 2 2019, 8:34 AM · Restricted Project, Restricted Project

Nov 25 2019

Meinersbur accepted D69628: [Clang] Pragma vectorize_width() implies vectorize(enable), take 3.

LGTM

Nov 25 2019, 10:35 AM · Restricted Project
Meinersbur added a comment to D61446: Generalize the pass registration mechanism used by Polly to any third-party tool.

I still have to try out the patch.

Nov 25 2019, 10:25 AM · Restricted Project, Restricted Project
Meinersbur added a comment to D70634: Ignore Unknown dependencies using vectorize.ivdep metadata.

[serious] We did not come to a conclusion during the discussion about the semantics ivdep being implementation-dependent.

Nov 25 2019, 9:01 AM · Restricted Project
Meinersbur added a comment to D70361: [Polly][ScopInfo]Fix wrong map in updating AccessRelation of multi-element access.

When I looked into the issue, I identified the following code being part of the problem:

if (DimsAccess == 1) {
  isl::val V = isl::val(Ctx, ArrayElemSize);
  AccessRelation = AccessRelation.floordiv_val(V);
}

which assumes single dimensions only and is just wrong with more dimensions. It seems your patch just does the the same thing with more dimensions.

Hmm, subscripts (thus AccessRelations) for multi-dimensions are built in units of elment type, so it's right to handle only single dimension here?

I guess this assumption is from reading the code building memory access for single/multi dimension cases, but yes, I agree it's not as good as expected.

Nov 25 2019, 7:01 AM · Restricted Project, Restricted Project
Meinersbur added a comment to D69092: [CodeGen] #pragma clang transform.

ping

Nov 25 2019, 6:42 AM · Restricted Project

Nov 22 2019

Meinersbur accepted D70619: [NFC][LoopFusion] Use isControlFlowEquivalent() from CodeMoverUtils..
Nov 22 2019, 8:38 PM · Restricted Project
Meinersbur accepted D70609: [DDG] Data Dependence Graph - Topological Sort.
Nov 22 2019, 2:25 PM · Restricted Project
Meinersbur added a parent revision for D70572: [Serialization] #pragma clang transform: D69091: [Sema] #pragma clang transform.
Nov 22 2019, 9:40 AM · Restricted Project
Meinersbur added a child revision for D69091: [Sema] #pragma clang transform: D70572: [Serialization] #pragma clang transform.
Nov 22 2019, 9:40 AM · Restricted Project
Meinersbur updated the diff for D70572: [Serialization] #pragma clang transform.
  • Remove some leftovers
Nov 22 2019, 9:12 AM · Restricted Project

Nov 21 2019

Meinersbur updated subscribers of D70572: [Serialization] #pragma clang transform.
Nov 21 2019, 3:06 PM · Restricted Project
Meinersbur updated subscribers of D70572: [Serialization] #pragma clang transform.
Nov 21 2019, 3:06 PM · Restricted Project
Meinersbur created D70572: [Serialization] #pragma clang transform.
Nov 21 2019, 3:06 PM · Restricted Project
Meinersbur added a comment to D69091: [Sema] #pragma clang transform.

ping

Nov 21 2019, 9:44 AM · Restricted Project

Nov 20 2019

Meinersbur added a comment to D69089: [Parser] #pragma clang transform.

ping

Nov 20 2019, 10:30 AM · Restricted Project
Meinersbur added a comment to D68789: [LoopNest]: Analysis to discover properties of a loop nest..

[suggestion] Add a methods that returns/fills a vector with all the Loop*s that are part of the perfect loop nest.

Nov 20 2019, 9:54 AM · Restricted Project

Nov 19 2019

Meinersbur updated the diff for D69088: [Lex] #pragma clang transform.
Nov 19 2019, 9:29 AM · Restricted Project
Meinersbur closed D70065: [test-suite] Add sollve_vv external project..

Committed in https://github.com/llvm/llvm-test-suite/commit/9a9a976cb5cc73a411df8e6f1a1e2d49c804b858

Nov 19 2019, 9:01 AM · Restricted Project
Meinersbur added a comment to D69088: [Lex] #pragma clang transform.

ping

Nov 19 2019, 9:01 AM · Restricted Project

Nov 18 2019

Meinersbur added inline comments to D70065: [test-suite] Add sollve_vv external project..
Nov 18 2019, 3:59 PM · Restricted Project
Meinersbur updated the diff for D70065: [test-suite] Add sollve_vv external project..
  • Address @bhomerdin's review:
    • Add README
    • Respect TEST_SUITE_BENCHMARKING_ONLY
Nov 18 2019, 3:59 PM · Restricted Project
Meinersbur added inline comments to D69628: [Clang] Pragma vectorize_width() implies vectorize(enable), take 3.
Nov 18 2019, 1:44 PM · Restricted Project
Meinersbur added a comment to D70361: [Polly][ScopInfo]Fix wrong map in updating AccessRelation of multi-element access.

Adding @grosser as reviewer who wrote the code in question and already looked into the issue.

Nov 18 2019, 9:56 AM · Restricted Project, Restricted Project
Meinersbur added a reviewer for D70361: [Polly][ScopInfo]Fix wrong map in updating AccessRelation of multi-element access: grosser.
Nov 18 2019, 9:38 AM · Restricted Project, Restricted Project

Nov 14 2019

Meinersbur committed rGf7b3ae65c8ac: [GPGPU] Fix depricated warning. (authored by Meinersbur).
[GPGPU] Fix depricated warning.
Nov 14 2019, 1:29 PM
Meinersbur committed rG2c831971bf96: [GPGPU] Fix #includes. (authored by Meinersbur).
[GPGPU] Fix #includes.
Nov 14 2019, 12:43 PM
Meinersbur added a comment to D69897: Add #pragma clang loop vectorize_assume_alignment(n).

Could you elaborate why this is better than __builtin_assume_aligned?

Nov 14 2019, 9:02 AM · Restricted Project
Meinersbur added a comment to D11833: s/NDEBUG/LLVM_NDEBUG/ in most places.

s/NDEBUG/LLVM_NDEBUG/ will not apply to the use of NDEBUG in assert.h. Most uses of NDEBUG are hidden in the assert macro.

Nov 14 2019, 8:43 AM

Nov 12 2019

Meinersbur committed rG7be6ec5fa210: [GPGPU] Fix regression test after 395124. (authored by Meinersbur).
[GPGPU] Fix regression test after 395124.
Nov 12 2019, 10:25 PM
Meinersbur added a comment to D69628: [Clang] Pragma vectorize_width() implies vectorize(enable), take 3.

Sorry for the delay, for some reason I did not see a notification for the update.

Nov 12 2019, 2:31 PM · Restricted Project
Meinersbur committed rG0aff3174dcc0: [CodeGen] Fix getArrayAccessFor crashes as in bug 32534 with -polly… (authored by Meinersbur).
[CodeGen] Fix getArrayAccessFor crashes as in bug 32534 with -polly…
Nov 12 2019, 12:01 PM
Meinersbur closed D70076: [Polly][CodeGen]Fix getArrayAccessFor crashes as in bug 32534 with -polly-vectorizer=polly.
Nov 12 2019, 12:01 PM · Restricted Project, Restricted Project
Meinersbur added inline comments to D69825: [Clang][Driver] Re-use the calling process instead of creating a new process for the cc1 invocation.
Nov 12 2019, 10:28 AM · Restricted Project, Restricted Project

Nov 11 2019

Meinersbur accepted D70076: [Polly][CodeGen]Fix getArrayAccessFor crashes as in bug 32534 with -polly-vectorizer=polly.

Thanks for looking into the bug. The suggestion change is obvious (IMHO).

Nov 11 2019, 8:35 PM · Restricted Project, Restricted Project
Meinersbur added inline comments to D70049: [CodeMoverUtils] Added an API to check if an instruction can be safely moved before another instruction..
Nov 11 2019, 8:25 PM · Restricted Project