Meinersbur (Michael Kruse)
User

Projects

User does not belong to any projects.

User Details

User Since
Jun 17 2015, 7:07 AM (157 w, 20 h)

Recent Activity

Yesterday

Meinersbur created D48398: [test-suite] Set the language standard for SPEC benchmarks that do not compile using the newest..
Wed, Jun 20, 3:30 PM

Tue, Jun 19

Meinersbur created D48348: [ADT] Add zip_longest iterators..
Tue, Jun 19, 10:39 PM
Meinersbur added a comment to D47675: [test-suite][RFC] Using Google Benchmark Library on Harris Kernel.

Did you check whether Polly recognizes the call to exp as part of the SCoP?

Tue, Jun 19, 9:34 PM
Meinersbur committed rL335084: Append new attributes to the end of an AttributeList..
Append new attributes to the end of an AttributeList.
Tue, Jun 19, 4:52 PM
Meinersbur committed rC335084: Append new attributes to the end of an AttributeList..
Append new attributes to the end of an AttributeList.
Tue, Jun 19, 4:51 PM
Meinersbur closed D48100: Append new attributes to the end of an AttributeList..
Tue, Jun 19, 4:51 PM
Meinersbur added inline comments to D48136: [Polly] Implement an iterator for isl maps, basic_maps, sets, basic_sets.
Tue, Jun 19, 3:35 PM

Mon, Jun 18

Meinersbur requested changes to D40369: Support sext instruction in SCEV delinearization algorithm (new revision).

I applied this patch. However, your test-case fails.

Mon, Jun 18, 4:25 PM
Meinersbur added inline comments to D48136: [Polly] Implement an iterator for isl maps, basic_maps, sets, basic_sets.
Mon, Jun 18, 9:47 AM
Meinersbur added inline comments to D48162: [GSoC] Schedule tree performance..
Mon, Jun 18, 9:33 AM · Restricted Project

Fri, Jun 15

Meinersbur added a comment to D48136: [Polly] Implement an iterator for isl maps, basic_maps, sets, basic_sets.

Thanks for the test case

Fri, Jun 15, 4:14 PM

Thu, Jun 14

Meinersbur added a comment to D48046: [test-suite] Backprop kernel from Rodinia Benchmark.

Polly only optimizes part of the kernel. The loops containing exp calls are not. The swtich -ffast-math might help.

Thu, Jun 14, 9:00 PM
Meinersbur added a comment to D47675: [test-suite][RFC] Using Google Benchmark Library on Harris Kernel.

Using Polly's -debug-only=polly-scops output showed that the kernel is in fact not optimized:

Invalidate SCoP because of reason 0
Thu, Jun 14, 8:25 PM
Meinersbur added a comment to D48100: Append new attributes to the end of an AttributeList..

Can you also simplify hasSameOverloadableAttrs() in ASTReaderDecl.cpp similar to what you did in SemaOverload.cpp (the copy seems spurious)?

Thu, Jun 14, 10:46 AM
Meinersbur updated the diff for D48100: Append new attributes to the end of an AttributeList..
  • Remove FIXME
  • Add comment about O(n^2) execution time when adding attributes
  • Do not store enable_if attributes in temporary list
Thu, Jun 14, 10:33 AM

Wed, Jun 13

Meinersbur added inline comments to D48100: Append new attributes to the end of an AttributeList..
Wed, Jun 13, 2:24 PM
Meinersbur added a comment to D48136: [Polly] Implement an iterator for isl maps, basic_maps, sets, basic_sets.

For reference: This is an alternative to D47604

Wed, Jun 13, 2:11 PM
Meinersbur updated the diff for D48100: Append new attributes to the end of an AttributeList..
  • Remove obsolete comment
  • Refactor getOrderedEnableIfAttrs
Wed, Jun 13, 11:28 AM
Meinersbur added a comment to D47675: [test-suite][RFC] Using Google Benchmark Library on Harris Kernel.

Could you check whether llvm-lit correctly collects execution time,compile/link time, LLVM -stats, code size?

Wed, Jun 13, 9:04 AM
Meinersbur added a comment to D47675: [test-suite][RFC] Using Google Benchmark Library on Harris Kernel.

Looks great. Did you do a performance comparison with/without Polly?

Polly + O3 and only O3 are taking the same time. It seems like before code reaches Polly, It is already heavily optimized at O3 and Polly cannot find any further optimization possible on it even though it is in its SCoP.

Wed, Jun 13, 9:02 AM

Tue, Jun 12

Meinersbur added inline comments to D48100: Append new attributes to the end of an AttributeList..
Tue, Jun 12, 3:39 PM
Meinersbur created D48100: Append new attributes to the end of an AttributeList..
Tue, Jun 12, 3:12 PM
Meinersbur accepted D48070: [Polly] Simplify the implementation of getCUDALibDeviceFunction. NFC..

Why was there a lambda in the first place?

Tue, Jun 12, 8:33 AM

Mon, Jun 11

Meinersbur added a comment to D48046: [test-suite] Backprop kernel from Rodinia Benchmark.

How long does the benchmark run with/without Polly?

Mon, Jun 11, 4:03 PM
Meinersbur added a comment to D47675: [test-suite][RFC] Using Google Benchmark Library on Harris Kernel.

Looks great. Did you do a performance comparison with/without Polly?

Mon, Jun 11, 3:54 PM
Meinersbur added a comment to D48026: [ScopHelper] Provide support for recognising collective invariant loads.

[serious] Could you add a test-case?

Mon, Jun 11, 8:28 AM

Fri, Jun 8

Meinersbur added a comment to D47890: [Polly][zorg] Enable GPGPU Codegen on the builders only if NVPTX is an LLVM target.

That's a way to find the first matching element and decide whether there is one in a compact functional way. Do you think it's stylistically questionable?

Fri, Jun 8, 11:07 AM

Thu, Jun 7

Meinersbur accepted D47890: [Polly][zorg] Enable GPGPU Codegen on the builders only if NVPTX is an LLVM target.

I still think that any(True for ... is unnecessary.

Thu, Jun 7, 2:27 PM
Meinersbur added inline comments to D47890: [Polly][zorg] Enable GPGPU Codegen on the builders only if NVPTX is an LLVM target.
Thu, Jun 7, 2:23 PM
Meinersbur added a comment to D40369: Support sext instruction in SCEV delinearization algorithm (new revision).

I could not apply the patch: test/Analysis/Delinearization/test_sext.ll is marked to modify an existing file which does not exist. Did you add the file using git add -N and created the diff against that?

Thu, Jun 7, 12:37 PM
Meinersbur accepted D47888: [Polly] Back out of GPU Codegen if NVPTX is not available.

LGTM

Thu, Jun 7, 12:18 PM
Meinersbur added inline comments to D47890: [Polly][zorg] Enable GPGPU Codegen on the builders only if NVPTX is an LLVM target.
Thu, Jun 7, 12:17 PM

Wed, Jun 6

Meinersbur added inline comments to D40369: Support sext instruction in SCEV delinearization algorithm (new revision).
Wed, Jun 6, 2:53 PM
Meinersbur committed rL334134: [OpTree] Introduce shortcut for computing the def->target mapping. NFCI..
[OpTree] Introduce shortcut for computing the def->target mapping. NFCI.
Wed, Jun 6, 2:42 PM
Meinersbur closed D47752: [Polly][OpTree] Introduce shortcut for computing the def->target mapping. NFCI..
Wed, Jun 6, 2:42 PM · Restricted Project

Tue, Jun 5

Meinersbur added a comment to D47267: [UnrollAndJam] Add unroll_and_jam pragma handling.

I see your point about the mix of underscores. "nounroll_and_jam" also comes from the Intel docs, and theres already "nounroll" vs "unroll". The "no" becomes a qualifier on "unroll_and_jam". "no_unroll_and_jam" feels less consistent to me.

Tue, Jun 5, 3:33 PM
Meinersbur added a comment to D47675: [test-suite][RFC] Using Google Benchmark Library on Harris Kernel.

Did you consider putting the driver code (initialization, malloc, free, checking result), Into a different file than the kernel code? This would allow measuring it (code size, LLVM statistics, compile time, etc.) independently from the boilerplate code.

Tue, Jun 5, 11:35 AM
Meinersbur added a comment to D47644: [test-suite] Added backprop kernel from Rodinia Benchmark.

Does Polly recognize the SCoP?

Tue, Jun 5, 11:25 AM
Meinersbur added a comment to D47267: [UnrollAndJam] Add unroll_and_jam pragma handling.

I noticed in the paper that you used the name "unrollandjam", minus underscores. Should I change this use that spelling here? I have no strong opinion of one over the other (was just using what I had found from the Intel docs).

Tue, Jun 5, 10:38 AM

Mon, Jun 4

Meinersbur created D47752: [Polly][OpTree] Introduce shortcut for computing the def->target mapping. NFCI..
Mon, Jun 4, 6:22 PM · Restricted Project

Fri, Jun 1

Meinersbur added a comment to D47604: [Polly] Add isl C++ list iterators.

[serious] Could you document what you expect to happen in out-of-quote situations? I just noticed that eg. USet.get_set_list will allocate a new list, thus may fail in IslQuotaScopes.

Fri, Jun 1, 2:55 PM
Meinersbur added a comment to D47604: [Polly] Add isl C++ list iterators.

[suggestion] unit tests?

Fri, Jun 1, 12:07 PM
Meinersbur accepted D47252: partitionSetParts from C to C++ interface..

LGTM

Fri, Jun 1, 12:02 PM · Restricted Project
Meinersbur added a comment to D47604: [Polly] Add isl C++ list iterators.

Nice one, at least for lists.

Fri, Jun 1, 11:54 AM
Meinersbur added a comment to D47267: [UnrollAndJam] Add unroll_and_jam pragma handling.

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

Fri, Jun 1, 10:03 AM

Thu, May 31

Meinersbur committed rL333709: [ZoneAlgo] Make ZoneAlgorithm::isNormalized out-of-quota safe..
[ZoneAlgo] Make ZoneAlgorithm::isNormalized out-of-quota safe.
Thu, May 31, 3:48 PM

Tue, May 29

Meinersbur committed rL333426: [ForwardOpTree] Use less computationally expensive method to compute def-to….
[ForwardOpTree] Use less computationally expensive method to compute def-to…
Tue, May 29, 8:23 AM
Meinersbur closed D47385: [Polly][ForwardOpTree] Use less computationally expensive method to compute def-to-target map. NFCI..
Tue, May 29, 8:23 AM · Restricted Project

Fri, May 25

Meinersbur created D47385: [Polly][ForwardOpTree] Use less computationally expensive method to compute def-to-target map. NFCI..
Fri, May 25, 12:20 PM · Restricted Project

Thu, May 24

Meinersbur added a comment to D47267: [UnrollAndJam] Add unroll_and_jam pragma handling.

Yes, this is what I had in mind. Thank you.

Thu, May 24, 9:54 AM

Wed, May 23

Meinersbur added inline comments to D47252: partitionSetParts from C to C++ interface..
Wed, May 23, 12:17 PM · Restricted Project
Meinersbur added a comment to D47267: [UnrollAndJam] Add unroll_and_jam pragma handling.

Could we maybe disable the #pragma clang loop unroll_and_jam spelling ftm to avoid compatibility issues?

Sure, I'm not against. It sounds like you have opinions on how this should work. That's good. If there are multiple clang loop pragma's, what is the expected behaviour there?

In the llvm side of this, in the unroll and jam pass, I made it so that a loop with "llvm.loop.unroll" metadata without any "llvm.loop.unroll_and_jam" metadata will not do unroll and jam, it will leave the loop for the unroller. On the expectation that the use really wants to unroll (and it applies to llvm.loop.unroll.disable too, disabling unroll and jam as well as unroll). I haven't done anything with other loop metadata though.

Wed, May 23, 12:02 PM
Meinersbur added a comment to D47267: [UnrollAndJam] Add unroll_and_jam pragma handling.

This is straightforward in that it clones the implementation of #pragma unroll for unroll_and_jam.

Wed, May 23, 10:00 AM

May 18 2018

Meinersbur accepted D47087: [ScopHelper] Cache ScopExpander results..
May 18 2018, 3:42 PM
Meinersbur added a comment to D47087: [ScopHelper] Cache ScopExpander results..

SCEVExpander itself already has a cache. For some reason (I don't understand myself) ScopExpander recursively visits the SCEV before calling into SCEVExpander (and in the process expands subelements itself, then converts it back using getSCEV?!!!?). The SCEV has already been visited even before polly::expandCodeFor is called in trySynthesizeNewValue to replace original (non-SCEV) values by generated ones.

May 18 2018, 3:42 PM

May 16 2018

Meinersbur committed rL332488: [DeLICM] Avoid assertion on out-of-quota..
[DeLICM] Avoid assertion on out-of-quota.
May 16 2018, 9:43 AM

May 14 2018

Meinersbur accepted D44978: Change DEBUG() macro to LLVM_DEBUG() in Polly.

The patch doesn't apply cleanly anymore, but generally LGTM after r332240

May 14 2018, 3:19 PM
Meinersbur added a comment to D46227: [islpp] Do not abuse isl::stat::error as early-abort.

Scop::containsExtensionNode is missing

May 14 2018, 1:38 PM
Meinersbur added a reviewer for D46714: [test-suite] Add list of programs we might add.: proton.
May 14 2018, 1:36 PM

May 11 2018

Meinersbur added a comment to D46735: [Test-Suite] Added Box Blur And Sobel Edge Detection.

I don't see why it wouldn't work on longer-running kernels.

May 11 2018, 8:18 PM
Meinersbur added a comment to D46735: [Test-Suite] Added Box Blur And Sobel Edge Detection.

First, let me keep the record straight:

  • Only SingleSource/Benchmarks/Polybench profits from the (mostly tiling) transformations applied by Polly.
  • There are various reasons why other benchmarks are "not optimizable" by Polly but only a fraction is caused by manual "pre-optimizations" (except the input language choice obviously).
  • Adding simple "Polly-optimizable" benchmarks is all good and well (as it makes for nicer evaluation sections in future papers...), but I would argue it is much more interesting to investigate if the existing benchmarks could be optimized and why they currently are not.
May 11 2018, 4:50 PM
Meinersbur added a comment to D46735: [Test-Suite] Added Box Blur And Sobel Edge Detection.

Sorry, I did not read the summary. I expected it to just contain a description of blur and sobel.

May 11 2018, 10:06 AM
Meinersbur added a comment to D46735: [Test-Suite] Added Box Blur And Sobel Edge Detection.

Some context: Pankaj is a GSoC student on a project to add more Polly-optimizable benchmarks. Currently, only SingleSource/Benchmarks/Polybench is really optimizable, most other benchmarks contain some kind of pre-optimization that makes it difficult for Polly to preserve semantics, even if the algorithm itself is 100% optimizable.

May 11 2018, 10:03 AM

May 10 2018

Meinersbur added a comment to D46714: [test-suite] Add list of programs we might add..

SPEC can be very sensitive on how you run it, so it may be a losing battle, but I'm not against doing this, as long as it doesn't break existing downstream scripts (which there are loads).

May 10 2018, 1:16 PM
Meinersbur added a comment to D46714: [test-suite] Add list of programs we might add..

some image processing algorithms

I wonder if it would be of any interest to add a raw image decoding library? (the images produced by digital cameras, DSLRs)?
https://github.com/darktable-org/rawspeed

The downside is that it require the actual images to work on.
The upside to that downside is that there is a maintained set of such images exactly for this purpose already.
https://raw.pixls.us/data-unique/

May 10 2018, 1:06 PM
Meinersbur added a comment to D46714: [test-suite] Add list of programs we might add..

We can't add SPEC, as it's commercial. I'm not sure about others, but please make sure they are open source.

May 10 2018, 1:03 PM
Meinersbur created D46714: [test-suite] Add list of programs we might add..
May 10 2018, 12:37 PM
Meinersbur accepted D46445: [SCEVAffinator] Fix handling of pwaff complexity limit..
May 10 2018, 7:26 AM

May 9 2018

Meinersbur added a comment to D45066: [Polly] [ScopInfo] Remove bail out condition in buildMinMaxAccess().

Congratulations for your first contribution!

May 9 2018, 9:48 AM
Meinersbur committed rL331891: [ScopInfo] Remove bail out condition in buildMinMaxAccess()..
[ScopInfo] Remove bail out condition in buildMinMaxAccess().
May 9 2018, 9:27 AM
Meinersbur closed D45066: [Polly] [ScopInfo] Remove bail out condition in buildMinMaxAccess().
May 9 2018, 9:27 AM
Meinersbur added a comment to D45066: [Polly] [ScopInfo] Remove bail out condition in buildMinMaxAccess().

@cs15btech11044 is it ok if I commit this on your behalf?

May 9 2018, 8:43 AM

May 8 2018

Meinersbur added a comment to D45066: [Polly] [ScopInfo] Remove bail out condition in buildMinMaxAccess().

I'm waiting for the ok from Tobias.

May 8 2018, 4:42 PM

May 2 2018

Meinersbur added a comment to D40369: Support sext instruction in SCEV delinearization algorithm (new revision).

Could you re-upload the patch with the LLVM source directory as patch root (so it patches include/llvm/Analysis/ScalarEvolution.h instead of ./ScalarEvolution.h).

May 2 2018, 10:58 AM
Meinersbur removed a dependent revision for D35478: Support sext and trunc instructions in SCEV delinearization algorithm: D40369: Support sext instruction in SCEV delinearization algorithm (new revision).
May 2 2018, 10:08 AM · Restricted Project
Meinersbur removed a dependency for D40369: Support sext instruction in SCEV delinearization algorithm (new revision): D35478: Support sext and trunc instructions in SCEV delinearization algorithm.
May 2 2018, 10:08 AM
Meinersbur added inline comments to D45753: Lift JSON library from clang-tools-extra/clangd to llvm/Support..
May 2 2018, 9:48 AM
Meinersbur accepted D46359: [Polly] Pass compiler arguments in the create_ll.sh script.

LGTM

May 2 2018, 8:23 AM

Apr 30 2018

Meinersbur added a comment to D46227: [islpp] Do not abuse isl::stat::error as early-abort.

Why not just waiting until isl_*_every is available? When it comes, do we need to undo the changes here again?

Apr 30 2018, 9:26 AM
Meinersbur added a comment to D46231: Move to new C++ binding interface that requires isl::quota annotations [RFC].

Could you add a paragraph about what (and) this is trying to accomplish into the summary? Even better, add documentation?

Apr 30 2018, 8:46 AM

Apr 27 2018

Meinersbur added a comment to D46164: Support: assume `std::is_final` with MSVC.

LGTM

Apr 27 2018, 8:38 AM
Meinersbur added inline comments to D45753: Lift JSON library from clang-tools-extra/clangd to llvm/Support..
Apr 27 2018, 8:32 AM

Apr 25 2018

Meinersbur committed rL330865: [CodeGen] Fix comment. NFC..
[CodeGen] Fix comment. NFC.
Apr 25 2018, 12:57 PM
Meinersbur committed rL330864: [CodeGen] Print executed statement instances at runtime..
[CodeGen] Print executed statement instances at runtime.
Apr 25 2018, 12:47 PM
This revision was not accepted when it landed; it landed in state Needs Revision.
Apr 25 2018, 12:47 PM · Restricted Project
Meinersbur committed rL330858: [ScopDetect] Reject loop with multiple exit blocks..
[ScopDetect] Reject loop with multiple exit blocks.
Apr 25 2018, 11:57 AM
Meinersbur closed D45649: [Polly][ScopDetect] Reject loop with multiple exit blocks..
Apr 25 2018, 11:57 AM · Restricted Project
Meinersbur added a comment to D45649: [Polly][ScopDetect] Reject loop with multiple exit blocks..

But, can you commit a cleaner test case. This one looks very polluted.

Apr 25 2018, 8:21 AM · Restricted Project

Apr 24 2018

Meinersbur added a comment to D45753: Lift JSON library from clang-tools-extra/clangd to llvm/Support..

Thanks for the work, I would like to replace Polly's jsoncpp with this one once it is done.

Apr 24 2018, 8:51 AM
Meinersbur added inline comments to D45753: Lift JSON library from clang-tools-extra/clangd to llvm/Support..
Apr 24 2018, 8:50 AM

Apr 23 2018

Meinersbur added a comment to D45649: [Polly][ScopDetect] Reject loop with multiple exit blocks..

ping?

Apr 23 2018, 6:36 PM · Restricted Project

Apr 20 2018

Meinersbur abandoned D41694: [Polly][ScopInfo] Remove RunTimeChecksMaxAccessDisjuncts bail-out condition..

Deprecated in favor of D45066.

Apr 20 2018, 12:04 PM · Restricted Project
Meinersbur committed rL330467: [isl++] abort() on assertion violation..
[isl++] abort() on assertion violation.
Apr 20 2018, 12:02 PM
Meinersbur closed D45171: [Polly] abort() on assertion violation..
Apr 20 2018, 12:02 PM · Restricted Project
Meinersbur committed rL330466: Allow arbitrary function calls for debugging purposes..
Allow arbitrary function calls for debugging purposes.
Apr 20 2018, 12:01 PM
Meinersbur closed D45728: [Polly] Allow arbitrary function calls for debugging purposes..
Apr 20 2018, 12:01 PM · Restricted Project

Apr 19 2018

Meinersbur added inline comments to D45743: [Polly] Print executed statement instances at runtime..
Apr 19 2018, 3:21 PM · Restricted Project

Apr 18 2018

Meinersbur added a comment to D45066: [Polly] [ScopInfo] Remove bail out condition in buildMinMaxAccess().

As discussed, here is a test-case. It was more difficult than I originally thought because ScalarEvolution does not support plain select (Array subscripts must be SCEVs). Using JScop-import also was no solution because Polly does not create new aliasing expressions after the import. I used smax expressions instead, which SCEVAffinator produces piecewise pw_affs. polly::simplify must also not coalesce these sets after remove_divs() and range() (it does still coalesces some of them), and I need at least 9 pieces.

Apr 18 2018, 3:15 PM

Apr 17 2018

Meinersbur created D45743: [Polly] Print executed statement instances at runtime..
Apr 17 2018, 3:57 PM · Restricted Project
Meinersbur updated the diff for D45728: [Polly] Allow arbitrary function calls for debugging purposes..

Use a ScopStmt's instruction list.

Apr 17 2018, 12:02 PM · Restricted Project