grosser (Tobias Grosser)
User

Projects

User does not belong to any projects.

User Details

User Since
Jul 30 2014, 11:40 AM (173 w, 20 h)

Recent Activity

Thu, Nov 16

grosser added inline comments to D38585: Enable interprocedural optimization in libquantum - LLVM-part [WIP].
Thu, Nov 16, 9:40 AM

Fri, Nov 10

grosser accepted D39916: [polly] Remove redundant return [NFC].

Thank you

Fri, Nov 10, 11:58 AM · Restricted Project

Wed, Nov 8

grosser added a comment to D39607: [PartialInliner] Inline vararg functions that forward varargs..

Officially accept this revision. From my perspective this looks good.

Do you have some other partial inliner person who could give some additional feedback?

I think it would be great if either @davidxl or @davide could sign-off on this.

Wed, Nov 8, 5:18 AM

Tue, Nov 7

grosser accepted D39607: [PartialInliner] Inline vararg functions that forward varargs..

Officially accept this revision. From my perspective this looks good.

Tue, Nov 7, 5:26 AM
grosser added a comment to D39607: [PartialInliner] Inline vararg functions that forward varargs..

Also, AFAIKS the outliner will (temporarily) generate invalid IR as the calls to the outlined function won't forward the vararg parameters. This is only "fixed" after inlining, when the va_start() and va_end() intrinsics again refer to the right function. While I don't feel we should "fix" this (e.g., by obtaining and forwarding the necessary parameters to the outlined function), we should certainly document this behavior.

Correct. I've added a comment to doFunctionOutlining, not sure if that is the right place.

Tue, Nov 7, 5:24 AM
grosser requested changes to D39607: [PartialInliner] Inline vararg functions that forward varargs..

Hi Florian,

Tue, Nov 7, 12:58 AM

Thu, Oct 26

grosser accepted D39333: [Polly][ZoneAlgo/ForwardOpTree] Normalize PHIs to their known incoming values..

LGTM, otherwise.

Thu, Oct 26, 11:30 PM · Restricted Project
grosser accepted D39325: [Polly][ForwardOpTree] Reload know values..
Thu, Oct 26, 11:29 PM · Restricted Project

Oct 19 2017

grosser added a comment to D38585: Enable interprocedural optimization in libquantum - LLVM-part [WIP].

Florian Hahn, feel free to pick this one up.

Oct 19 2017, 2:46 PM

Oct 5 2017

grosser retitled D38584: Changes to Polly enable interprocedural loop fusion on libquantum [WIP] from Changes to Polly enable interprocedural loop fusion on libquantum to Changes to Polly enable interprocedural loop fusion on libquantum [WIP].
Oct 5 2017, 7:54 AM
grosser created D38585: Enable interprocedural optimization in libquantum - LLVM-part [WIP].
Oct 5 2017, 7:44 AM
grosser created D38584: Changes to Polly enable interprocedural loop fusion on libquantum [WIP].
Oct 5 2017, 7:25 AM

Oct 4 2017

grosser accepted D38403: [Polly][ScopBuilder] Introduce -polly-stmt-granularity=scalar-indep option..

Very cool. That looks good to me (after addressing Siddharth's comments).

Oct 4 2017, 11:01 PM · Restricted Project
grosser accepted D38541: [Dominators] Take fast path when applying <=1 updates.

Looks fine to me as well.

Oct 4 2017, 10:26 AM
grosser added a comment to rL314665: [ScopBuilder] Iterate over statement instructions. NFC..

Nice!

Oct 4 2017, 9:53 AM
grosser added a comment to D38403: [Polly][ScopBuilder] Introduce -polly-stmt-granularity=scalar-indep option..

Hi Michael,

Oct 4 2017, 5:35 AM · Restricted Project

Sep 29 2017

grosser added a comment to D38403: [Polly][ScopBuilder] Introduce -polly-stmt-granularity=scalar-indep option..

I mean see it working with LICM. Thanks Michael!

Sep 29 2017, 8:32 AM · Restricted Project
grosser added a comment to D38403: [Polly][ScopBuilder] Introduce -polly-stmt-granularity=scalar-indep option..

Cool. Would be great to see the LICM working.

Sep 29 2017, 8:32 AM · Restricted Project
grosser added a comment to D38331: [Dominators] Add DFS number verification.

Dear Kuhar,

Sep 29 2017, 12:09 AM

Sep 28 2017

grosser added a comment to D35471: [Polly] [RFC] Calculate AST expression type.

I never said your approach is wrong or has an entirely wrong design, but said that a similar approach caused issues in graphite,

I am pretty sure you did say exactly that.

hence I would like to understand your patch in detail before going this road. I still don't fully understand how this works, but tried some simple examples with https://llvm.org/svn/llvm-project/polly/trunk@271878. Maybe you can cross-check if what I observe is the intended behavior of your patch.

I am not sure what this is supposed to achieve. I did (~1.5 years ago) try to get this in in order to improve performance but now I have a lot of other things on my plate. I asked if you compared yourself against this but it's OK if you feel that is impossible because the patch is hard to understand.

Sep 28 2017, 7:58 AM
grosser added a comment to D35471: [Polly] [RFC] Calculate AST expression type.

Hi Johannes,

Sep 28 2017, 7:27 AM
grosser accepted D38349: [Polly] Add dumpPw() and dumpExpanded() functions. NFC..

LGTM.

Sep 28 2017, 3:30 AM

Sep 27 2017

grosser added a comment to D38330: [docs] Add a performance doc.

LGTM. However, can you make sure this patch is referenced from the Polly documentation index.

Sep 27 2017, 11:02 PM · Restricted Project
grosser accepted D38322: [Polly] Fix typo. NFC..

LGTM.

Sep 27 2017, 9:52 AM · Restricted Project
grosser added a comment to D38198: [Polly][Support] Force instatiation of isl dump() methods. NFC..

I see. Let's go with the hack for now. ;-)

Sep 27 2017, 3:18 AM · Restricted Project

Sep 26 2017

grosser committed rL314212: [ScopInfo] Allow PHI nodes that reference an error block.
[ScopInfo] Allow PHI nodes that reference an error block
Sep 26 2017, 3:33 PM
grosser added a comment to D38255: [WIP] Polyhedral Value Analysis.

Hi Johannes,

thanks for posting the patch. Obviously it misses comments, and unittests for the C++ interface, but it already gives a very good idea where you are heading. I also feel this patch covers a couple of areas:

  1. A new C++ interface which seems to serve multiple purposes
    • Automatic memory management
    • Add some additional math functionality not available in isl at the moment
    • Rename a couple of functions to provide a better interface to LLVM
    • Add a couple of helpers / convenience features on top of isl (e.g. automatic space adjustment)
    • Add some functionality that is directly needed for the domain/range modeling, but not necessarily belongs to the core properties of an isl set.

      All of these ideas make a lot of sense. I am however slightly worried regarding the large amount of hand-written interfacing code -- which is often replicated across different classes. How much of isl are you planning to cover? Will you also introduce callbacks and stuff? I wonder if there would be a way to avoid a lot of this duplication and possibly make the separation between the parts that are just isl interfaces and the parts that are indeed LLVM additions more clear. We also have a larger set of isl extensions in Polly -- including corresponding unit tests. I think sharing these would indeed make a lot of sense.
  2. The polyhedral value analysis

    The general interface makes a lot of sense - I played with this myself (after having introduced islpp), but waited for your proposal to come out. It is a clear extension of the LLVM-IR modeling we discussed together in Polly and you nicely mixed it with the ScalarEvolution design of LLVM. Cool! The code is currently a little too large to comment on specific items. Some of the things you do are already things we did in Polly but unfortunately missing most comments, others are clearly new and I need to read through them in detail. As I said on the mailing list thread, I feel that this analysis generally makes a lot of sense -- assuming we agree -- I would like to help getting it into LLVM. If you would like to do this incrementally -- the RISC-V model would make a lot of sense here. Do you believe there is a way to split this into smaller pieces? Maybe this can be split into:
  3. Basic Interface
  4. Analysis of scalar values without control flow
  5. Simple loops
  6. Wrapping

    I am especially interested in understanding (and having documented well) how integer wrapping is modeled.
  7. Specifically, I would like this analysis to speculate the wrapping introduced by casts as they commonly arise e.g. in OpenCL code get_global_id / get_local_id. Not sure if this is currently possibly / optional.
  8. Also, did you consider multi-dimensional output spaces. I discussed with Siddharth and we might be able to model certain polynomial expressions this way. Most interestingly, we might be able to do delinearization on this model, which would allow us to effectively delinearize even in the presence of integer casts.
  9. Can you make wrapping optional -- meaning can you potentially model precise wrapping?

    Also, do you happen to have a design description why all this works? If not, I wonder if we should create this together when building up the code incrementally in LLVM.

    I also have a random set of comments, but these are clearly by far not complete but just passby comments.

These are all very good but also very detailed questions. I would like to postpone them till this patch is in a form that should be reviewed. Right now I'd like to focus on the general idea, query interface and early results. Specific design choices (such as optional wrapping) can be discussed and added on top of a first implementation.

Just as a remark to the multi-dimentional spaces: Creating a multi-dimensional memory view (aka. "deliniarization") is already happening (for simple cases) in the memory analysis (which I did not yet publish). Conceptually that should be the place for such an "analysis". If we would allow multi-dimensional output spaces then to represent vector values which are actually multi-dimensional values.

Sep 26 2017, 3:30 PM
grosser added a comment to D38255: [WIP] Polyhedral Value Analysis.

Hi Johannes,

Sep 26 2017, 3:30 PM

Sep 25 2017

grosser committed rL314146: [ScopInfo] Allow invariant loads in branch conditions.
[ScopInfo] Allow invariant loads in branch conditions
Sep 25 2017, 1:29 PM
grosser committed rL314116: [ScopInfo] Allow uniform branch conditions.
[ScopInfo] Allow uniform branch conditions
Sep 25 2017, 9:38 AM
grosser added a comment to D35471: [Polly] [RFC] Calculate AST expression type.

Hi Johannes,

Sep 25 2017, 7:54 AM
grosser accepted D38218: [Polly] Information about generalized matrix multiplication.

LGTM.

Sep 25 2017, 5:03 AM
grosser accepted D38198: [Polly][Support] Force instatiation of isl dump() methods. NFC..

LGTM

Sep 25 2017, 5:02 AM · Restricted Project
grosser requested changes to D36884: [WIP!][Dominators] Collect tree construction and update statistics .

I mark this as requesting changes such that it does not appear in my "to-review" queue. Looking forward to see this evolve.

Sep 25 2017, 5:02 AM
grosser requested changes to D36897: [WIP!][Dominators] Add a tool for benchmarking the incremental updater.

I mark this as requesting changes such that it does not appear in my "to-review" queue. Looking forward to see this evolve.

Sep 25 2017, 5:02 AM

Sep 19 2017

grosser requested changes to D37061: [Polly] Third Updated translating the function Scop::foldSizeConstantsToRight() to isl C++.

Hi Siddharth,

Sep 19 2017, 5:40 AM
grosser added a comment to D37691: [GPUJIT] Improved temporary file handling..

No worries. Thank you for reviewing!

Sep 19 2017, 2:38 AM
grosser added a comment to D37691: [GPUJIT] Improved temporary file handling..

This is a run-time library, we do not (yet) link with LLVM libraries.

Sep 19 2017, 2:09 AM

Sep 18 2017

grosser accepted D37691: [GPUJIT] Improved temporary file handling..

Typo: "improve"

Sep 18 2017, 11:42 PM
grosser accepted D37984: [Polly][ForwardOpTree] Allow out-of-quota in examination part of forwardTree..

LGTM. Thank you!

Sep 18 2017, 11:25 PM · Restricted Project
grosser accepted D37969: [Polly][test] Enable -polly-codegen-verify for regression tests..
Sep 18 2017, 5:11 AM · Restricted Project
grosser added a comment to D37969: [Polly][test] Enable -polly-codegen-verify for regression tests..

LGTM.

Sep 18 2017, 5:11 AM · Restricted Project

Sep 11 2017

grosser accepted D37692: [Polly] Unroll and separate the remaining parts of isolation.

LGTM.

Sep 11 2017, 8:47 AM

Sep 8 2017

grosser accepted D37641: [zorg] Reduce the number of concurrent jobs for AOSP build.

LGTM

Sep 8 2017, 2:35 PM

Sep 7 2017

grosser accepted D37571: [Polly][CodegenCleanup] Update cleanup passes according (old) PassManagerBuilder..
Sep 7 2017, 8:16 AM

Sep 4 2017

grosser committed rL312480: [CodegenCleanup] Use old GVN pass instead of NewGVN.
[CodegenCleanup] Use old GVN pass instead of NewGVN
Sep 4 2017, 4:05 AM
grosser committed rL312476: [ISLTools]: Move singleton to isl++.
[ISLTools]: Move singleton to isl++
Sep 4 2017, 3:06 AM
grosser committed rL312475: [DeLICM] Move some functions to isl++ [NFC].
[DeLICM] Move some functions to isl++ [NFC]
Sep 4 2017, 3:06 AM

Sep 3 2017

grosser committed rL312456: [ForwardOp] Remove read accesses for all instructions that have been moved.
[ForwardOp] Remove read accesses for all instructions that have been moved
Sep 3 2017, 12:53 PM
grosser closed D37424: [ForwardOp] Remove read accesses for all instructions that have been moved by committing rL312456: [ForwardOp] Remove read accesses for all instructions that have been moved.
Sep 3 2017, 12:53 PM · Restricted Project
grosser committed rL312455: [IslAst] Do not assert in case of empty min/max alias locations.
[IslAst] Do not assert in case of empty min/max alias locations
Sep 3 2017, 12:48 PM
grosser committed rL312452: [IslAst] Move buildCondition to isl++.
[IslAst] Move buildCondition to isl++
Sep 3 2017, 11:33 AM
grosser committed rL312451: [ScopHelper] Do not crash on unreachable blocks.
[ScopHelper] Do not crash on unreachable blocks
Sep 3 2017, 11:02 AM
grosser requested changes to D37061: [Polly] Third Updated translating the function Scop::foldSizeConstantsToRight() to isl C++.

Hi Siddharth,

Sep 3 2017, 10:18 AM
grosser added a comment to D37424: [ForwardOp] Remove read accesses for all instructions that have been moved.

This seems to work, but my commit message is not very good yet. Can you suggest a commit message that describes the reason you prefer this solution?

Sep 3 2017, 9:54 AM · Restricted Project
grosser updated the diff for D37424: [ForwardOp] Remove read accesses for all instructions that have been moved.

Use Michael's suggested change

Sep 3 2017, 9:52 AM · Restricted Project
grosser added a comment to D37424: [ForwardOp] Remove read accesses for all instructions that have been moved.

Hi Michael,

Sep 3 2017, 7:01 AM · Restricted Project
grosser updated the diff for D37424: [ForwardOp] Remove read accesses for all instructions that have been moved.

Add failing test case

Sep 3 2017, 7:00 AM · Restricted Project
grosser created D37424: [ForwardOp] Remove read accesses for all instructions that have been moved.
Sep 3 2017, 6:29 AM · Restricted Project

Sep 2 2017

grosser committed rL312410: [ScopDetect/Info] Look through PHIs that follow an error block.
[ScopDetect/Info] Look through PHIs that follow an error block
Sep 2 2017, 1:27 AM
grosser added a comment to D37337: [Polly] Split statements on encountering store instructions..

Hi Nandini,

Sep 2 2017, 12:10 AM · Restricted Project

Sep 1 2017

grosser abandoned D36425: [ZoneAlgo] Allow two writes that write identical values into same array slot.

I think this is not needed any more!

Sep 1 2017, 10:56 PM · Restricted Project
grosser accepted D37379: [Polly] [ISLNodeBuilder] [Fortran Arrays] Materialize Fortran array sizes of arrays without memory accesses..
Sep 1 2017, 9:17 AM

Aug 31 2017

grosser added a comment to D37360: Keep sqlalchemy session separate from database objects.

I agree with Kristof. Even though I did not write DB code since a while, the reasoning sounds very good. Hope this fixes some of the errors we see!

Aug 31 2017, 11:50 PM
grosser added a comment to D37340: [Polly] Run GVN during the cleanup.

Thanks Dani. Then we should certainly go for the new GVN.

Aug 31 2017, 11:20 PM
grosser committed rL312304: Drop unused statistic counter.
Drop unused statistic counter
Aug 31 2017, 7:18 PM
grosser accepted D37362: [Polly][ZoneAlgo] Handle non-StoreInst/LoadInst MemoryAccesses including memset..

in the commit message

Aug 31 2017, 7:02 PM
grosser accepted D37349: [polly] Fix non-deterministic output due to iteration of unordered ScopArrayInfo.
Aug 31 2017, 1:09 PM
grosser added inline comments to D37349: [polly] Fix non-deterministic output due to iteration of unordered ScopArrayInfo.
Aug 31 2017, 12:43 PM
grosser accepted D37340: [Polly] Run GVN during the cleanup.

LGTM

Aug 31 2017, 10:28 AM
grosser committed rL312249: [ForwardOpTree] Allow forwarding in the presence of region statements.
[ForwardOpTree] Allow forwarding in the presence of region statements
Aug 31 2017, 9:07 AM
grosser closed D37298: [ForwardOpTree] Allow forwarding in the presence of region statements by committing rL312249: [ForwardOpTree] Allow forwarding in the presence of region statements.
Aug 31 2017, 9:07 AM · Restricted Project
grosser updated the diff for D37298: [ForwardOpTree] Allow forwarding in the presence of region statements.

Addressed Michael's comment

Aug 31 2017, 6:40 AM · Restricted Project
grosser updated the diff for D37298: [ForwardOpTree] Allow forwarding in the presence of region statements.

It seems the change in collectIncompatibleElts is not even needed. I also have
a hard time to reproduce a test case where the forwarding is refused due to
incompatible statements. Michael, do you have an idea?

Aug 31 2017, 2:06 AM · Restricted Project

Aug 30 2017

grosser closed D37296: [ScopInfo] Use statement lists for entry blocks of region statements.

This was committed in 312211.

Aug 30 2017, 9:52 PM · Restricted Project
grosser committed rL312210: [ScopInfo] Use statement lists for entry blocks of region statements.
[ScopInfo] Use statement lists for entry blocks of region statements
Aug 30 2017, 8:17 PM
grosser committed rL312209: Revert "[ScopInfo] Use statement lists for entry blocks of region statements".
Revert "[ScopInfo] Use statement lists for entry blocks of region statements"
Aug 30 2017, 7:45 PM
grosser added a comment to D37298: [ForwardOpTree] Allow forwarding in the presence of region statements.

Thank you. Looking into it.

Aug 30 2017, 8:46 AM · Restricted Project
grosser created D37298: [ForwardOpTree] Allow forwarding in the presence of region statements.
Aug 30 2017, 8:13 AM · Restricted Project
grosser committed rL312128: [ScopInfo] Use statement lists for entry blocks of region statements.
[ScopInfo] Use statement lists for entry blocks of region statements
Aug 30 2017, 8:10 AM
grosser added inline comments to D37296: [ScopInfo] Use statement lists for entry blocks of region statements.
Aug 30 2017, 8:06 AM · Restricted Project
grosser created D37296: [ScopInfo] Use statement lists for entry blocks of region statements.
Aug 30 2017, 6:17 AM · Restricted Project

Aug 28 2017

grosser committed rL311920: [IslAst] Do not compare arrays in alias check which are known to be identical.
[IslAst] Do not compare arrays in alias check which are known to be identical
Aug 28 2017, 1:18 PM
grosser accepted D37219: [Polly][ZoneAlgo] More fine-grained bail-out..

Very nice!

Aug 28 2017, 12:00 PM
grosser accepted D37178: [Polly] Use the information about the target cache provided by the TargetTransformInfo.

Nice!

Aug 28 2017, 11:44 AM

Aug 27 2017

grosser committed rL311863: [Detect] Consider nested loop profitable if entry block is not in loop.
[Detect] Consider nested loop profitable if entry block is not in loop
Aug 27 2017, 2:40 PM

Aug 26 2017

grosser updated subscribers of D37064: [InstCombine] Fold insert sequence if first ins has multiple users..
Aug 26 2017, 12:52 AM
grosser accepted D37169: [zorg] Increase AOSP build timeout to 240s.
Aug 26 2017, 12:50 AM

Aug 25 2017

grosser added a comment to D37169: [zorg] Increase AOSP build timeout to 240s.

LGTM, thank you!

Aug 25 2017, 11:46 PM
grosser accepted D37056: [Polly] [PPCGCodeGeneration] Convert intrinsics to libdevice functions whenever possible..

Hi Eli,

Aug 25 2017, 9:36 AM

Aug 24 2017

grosser requested changes to D37061: [Polly] Third Updated translating the function Scop::foldSizeConstantsToRight() to isl C++.

Mark this as requesting changes.

Aug 24 2017, 1:11 PM
grosser committed rL311692: Revert "[polly] Fix ScopDetectionDiagnostic test failure caused by r310940".
Revert "[polly] Fix ScopDetectionDiagnostic test failure caused by r310940"
Aug 24 2017, 12:48 PM
grosser committed rL311647: Model cache size and associativity in TargetTransformInfo.
Model cache size and associativity in TargetTransformInfo
Aug 24 2017, 2:47 AM
grosser closed D37051: Model cache size and associativity in TargetTransformInfo by committing rL311647: Model cache size and associativity in TargetTransformInfo.
Aug 24 2017, 2:47 AM
grosser added a comment to D37051: Model cache size and associativity in TargetTransformInfo.

@fhahn, I just addressed your comments.

Aug 24 2017, 1:46 AM
grosser updated the diff for D37051: Model cache size and associativity in TargetTransformInfo.

Use LLVM_FALLTHROUGH

Aug 24 2017, 1:43 AM
grosser added inline comments to D37051: Model cache size and associativity in TargetTransformInfo.
Aug 24 2017, 12:50 AM
grosser added a comment to D37051: Model cache size and associativity in TargetTransformInfo.

Addressed Alex comments.

Aug 24 2017, 12:41 AM
grosser updated the diff for D37051: Model cache size and associativity in TargetTransformInfo.

Use C++ class enum

Aug 24 2017, 12:41 AM

Aug 23 2017

grosser accepted D37058: [Polly] [PPCGCodeGeneration] Mild refactoring of checking validity of functions in a kernel..

LGTM

Aug 23 2017, 9:04 PM