jdoerfert (Johannes Doerfert)
User

Projects

User does not belong to any projects.

User Details

User Since
Jan 30 2014, 6:27 AM (242 w, 4 d)

Recent Activity

Sat, Sep 15

jdoerfert accepted D52118: [Loopinfo] Remove one latch case in getLoopID. NFC..

save an iteration over the loop's basic blocks (which is what getLoopLatch does)

Sat, Sep 15, 3:49 AM

Tue, Sep 11

jdoerfert committed rL341968: [LoopInfo][FIX] Remove leftover dump in unit test.
[LoopInfo][FIX] Remove leftover dump in unit test
Tue, Sep 11, 10:51 AM
jdoerfert committed rL341927: [FuncAttrs] Remove "access range attributes" for read-none functions.
[FuncAttrs] Remove "access range attributes" for read-none functions
Tue, Sep 11, 4:52 AM
jdoerfert committed rL341926: [LoopInfo] Fix Loop::getLoopID() for loops with multiple latches.
[LoopInfo] Fix Loop::getLoopID() for loops with multiple latches
Tue, Sep 11, 4:46 AM
jdoerfert committed rL341923: [FIX] Remove non-existent css property.
[FIX] Remove non-existent css property
Tue, Sep 11, 3:37 AM
jdoerfert committed rL341922: [FIX] Remove old style encoding definition, new one is present.
[FIX] Remove old style encoding definition, new one is present
Tue, Sep 11, 3:37 AM
jdoerfert committed rL341920: [FIX] Use charset not encoding to denote utf-8.
[FIX] Use charset not encoding to denote utf-8
Tue, Sep 11, 3:30 AM
jdoerfert committed rL341918: [NFC] Use relative links to llvm.org [No 4].
[NFC] Use relative links to llvm.org [No 4]
Tue, Sep 11, 2:24 AM

Fri, Aug 31

jdoerfert committed rL341204: [NFC] Use relative links to llvm.org [No 3].
[NFC] Use relative links to llvm.org [No 3]
Fri, Aug 31, 4:36 AM
jdoerfert added a comment to D51255: [WWW] Use https instead of http to fix page problems.

First off, thanks for offering to help make the website work correctly! This all looks pretty reasonable to me. I'm wondering though, would it be possible to break this patch up into a few smaller patches? Since we do not have any type of staging infrastructure for llvm.org, I would prefer we not change so many files all at once. I feel like three steps here might be appropriate:

  1. Try with one file (one of the files with a one or two line change) to ensure the changes work as we expect them to.
  2. Apply changes to the rest of the files with the exception of footer.incl.
  3. Apply the last patch to footer.incl which adds the javascript bits in the footer (my experience tells me this is the most likely to break something, though the JS you have provided LGTM).
Fri, Aug 31, 3:47 AM
jdoerfert committed rL341196: [NFC] Use relative links to llvm.org [No 2].
[NFC] Use relative links to llvm.org [No 2]
Fri, Aug 31, 3:39 AM
jdoerfert committed rL341195: [NFC] Use relative links to llvm.org.
[NFC] Use relative links to llvm.org
Fri, Aug 31, 3:30 AM

Mon, Aug 27

jdoerfert updated the diff for D51255: [WWW] Use https instead of http to fix page problems.

Use relative links where possible (thus if we stay in the same subdomain http{,s}://llvm.org/.*)

Mon, Aug 27, 9:54 AM
jdoerfert added a comment to D51255: [WWW] Use https instead of http to fix page problems.
In D51255#1214424, @asl wrote:

I think we need to preserve the protocol. E.g. if the page is loaded via http we need to load css via http as well.

Mon, Aug 27, 7:19 AM
jdoerfert added a comment to D51255: [WWW] Use https instead of http to fix page problems.
In D51255#1214403, @kpn wrote:

Is there a good reason to have the hostname in the URL? Why not just link to "/Users.html" instead of "https://llvm.org/Users.html", for example? Using the hostname is only needed when linking to a page on a different server.

Mon, Aug 27, 7:13 AM

Aug 25 2018

jdoerfert created D51255: [WWW] Use https instead of http to fix page problems.
Aug 25 2018, 1:46 AM

Aug 6 2018

jdoerfert added inline comments to D50295: Let GetUnderlyingObject/Objects use MemorySSA.
Aug 6 2018, 1:56 AM

Aug 2 2018

jdoerfert added inline comments to D50125: [FunctionAttrs] Annotate function arguments with call site information.
Aug 2 2018, 7:44 AM
jdoerfert updated the diff for D50125: [FunctionAttrs] Annotate function arguments with call site information.

Use call sites for now and improve testing of non-null deduction

Aug 2 2018, 6:13 AM
jdoerfert updated the diff for D50125: [FunctionAttrs] Annotate function arguments with call site information.

Remove large macro in favor of a switch

Aug 2 2018, 5:16 AM

Aug 1 2018

jdoerfert updated the diff for D50125: [FunctionAttrs] Annotate function arguments with call site information.

Fixed spelling, stripped casts, added the tests from D4609

Aug 1 2018, 3:40 PM
jdoerfert updated the summary of D50125: [FunctionAttrs] Annotate function arguments with call site information.
Aug 1 2018, 10:46 AM
jdoerfert created D50146: [FunctionAttrs] Introduce transitive call sites to represent callbacks.
Aug 1 2018, 9:45 AM
jdoerfert committed rL338585: [NFC][FunctionAttrs] Remove duplication in old/new PM pipeline.
[NFC][FunctionAttrs] Remove duplication in old/new PM pipeline
Aug 1 2018, 9:38 AM

Jul 31 2018

jdoerfert created D50125: [FunctionAttrs] Annotate function arguments with call site information.
Jul 31 2018, 7:17 PM
jdoerfert added a dependency for D50107: [FunctionAttrs] Infer the argmemonly function attribute: D48387: [FunctionAttrs] Infer WriteOnly Function Attribute .
Jul 31 2018, 3:07 PM
jdoerfert added a dependent revision for D48387: [FunctionAttrs] Infer WriteOnly Function Attribute : D50107: [FunctionAttrs] Infer the argmemonly function attribute.
Jul 31 2018, 3:07 PM
jdoerfert created D50107: [FunctionAttrs] Infer the argmemonly function attribute.
Jul 31 2018, 3:03 PM
jdoerfert added a comment to D48387: [FunctionAttrs] Infer WriteOnly Function Attribute .

Ping. Are you going to upstream this?

Jul 31 2018, 8:49 AM

Jul 30 2018

jdoerfert committed rL338249: [LLVMDev18] Add link to submission guide.
[LLVMDev18] Add link to submission guide
Jul 30 2018, 6:10 AM

Jun 21 2018

jdoerfert added a comment to D48387: [FunctionAttrs] Infer WriteOnly Function Attribute .

This patch looks fine to me.

Jun 21 2018, 8:13 AM

Jun 6 2018

jdoerfert updated the summary of D47300: [RFC] Abstract parallel IR analyzes & optimizations + OpenMP implementations.
Jun 6 2018, 6:04 AM
jdoerfert updated the diff for D47300: [RFC] Abstract parallel IR analyzes & optimizations + OpenMP implementations.

Fix spelling and improve comments

Jun 6 2018, 4:50 AM
jdoerfert updated the diff for D47300: [RFC] Abstract parallel IR analyzes & optimizations + OpenMP implementations.

Fix capture problem and small improvements

Jun 6 2018, 4:45 AM
jdoerfert added a comment to D47300: [RFC] Abstract parallel IR analyzes & optimizations + OpenMP implementations.

Thanks for these initial comments. Second revision and actual RFC mail is coming.

Jun 6 2018, 4:43 AM

May 23 2018

jdoerfert updated the summary of D47300: [RFC] Abstract parallel IR analyzes & optimizations + OpenMP implementations.
May 23 2018, 4:18 PM
jdoerfert created D47300: [RFC] Abstract parallel IR analyzes & optimizations + OpenMP implementations.
May 23 2018, 4:17 PM
jdoerfert abandoned D47298: Silence warnings introduced with r333093.

Misused arcanist, sorry.

May 23 2018, 4:02 PM
jdoerfert created D47298: Silence warnings introduced with r333093.
May 23 2018, 4:01 PM
jdoerfert planned changes to D47298: Silence warnings introduced with r333093.
May 23 2018, 4:01 PM

May 11 2018

jdoerfert 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:30 AM

Mar 30 2018

jdoerfert added a comment to D41692: [Polly][WIP] Remove immediate dominator heuristic for error block detection..

I ran a comparison on the test-suite and here is the result:

Program                                                                        leone_N20_polly  leone_N30_errheuristic diff
 SingleSource/Benchmarks/Misc/flops                                            4.332            6.311                    45.7% 
 S...urce/Benchmarks/Polybench/linear-algebra/solvers/gramschmidt/gramschmidt  1.443            1.637                    13.4% 
 Polybench/Polybench-421/stencils/adi/P421_adi                                21.096           19.344                    -8.3%  
 External/SPEC/CFP2017rate/507.cactuBSSN_r/507.cactuBSSN_r                    31.899           33.395                     4.7%
Mar 30 2018, 4:36 AM · Restricted Project

Mar 29 2018

jdoerfert resigned from D41692: [Polly][WIP] Remove immediate dominator heuristic for error block detection..

I am confused. It seems you want to be smarter about the error blocks (which is necessary!) but this will just make them more greedy (too greedy in my experience). Did anybody check how this affects the test-suite or why the test cases fail [, after all, this says "ready to land"] ?

Mar 29 2018, 8:20 AM · Restricted Project

Mar 6 2018

jdoerfert committed rL326770: Add Slides for the LLVM-Performance Workshop @CGO.
Add Slides for the LLVM-Performance Workshop @CGO
Mar 6 2018, 1:16 AM

Mar 1 2018

jdoerfert committed rL326421: Add Slides for the LLVM-Performance Workshop @CGO.
Add Slides for the LLVM-Performance Workshop @CGO
Mar 1 2018, 12:27 AM

Feb 18 2018

jdoerfert committed rL325472: Finish LLVM-Performance Workshop @CGO Schedule.
Finish LLVM-Performance Workshop @CGO Schedule
Feb 18 2018, 1:59 PM
jdoerfert committed rL325471: Format LLVM-Performance Workshop @CGO Schedule.
Format LLVM-Performance Workshop @CGO Schedule
Feb 18 2018, 1:58 PM
jdoerfert committed rL325470: Add LLVM-Performance Workshop @CGO Schedule.
Add LLVM-Performance Workshop @CGO Schedule
Feb 18 2018, 1:55 PM

Jan 25 2018

jdoerfert committed rL323446: Change Performance Workshop Talk Title/Abstract.
Change Performance Workshop Talk Title/Abstract
Jan 25 2018, 9:29 AM

Jan 10 2018

jdoerfert committed rL322173: Add CGO performance workshop abstracts.
Add CGO performance workshop abstracts
Jan 10 2018, 3:55 AM

Oct 16 2017

jdoerfert added a comment to rL315683: [SCEV] Teach SCEV to find maxBECount when loop endbound is variant.

@jdoerfert @grosser
Could we please add as an XFAIL for now, so that it doesn't keep failing the polly buildbots?

Oct 16 2017, 8:14 AM

Oct 13 2017

jdoerfert updated subscribers of rL315683: [SCEV] Teach SCEV to find maxBECount when loop endbound is variant.

My local Polly does not pass this test anyway, but I guess Tobias can help you out or maybe @Meinersbur or @bollu. In any case it doesn't seem to be a "loop bounds test" so it should be possible to change it a little bit and keep it around.

Oct 13 2017, 2:32 PM

Oct 9 2017

jdoerfert committed rL315208: Add CGO performance workshop dates.
Add CGO performance workshop dates
Oct 9 2017, 9:00 AM

Sep 28 2017

jdoerfert 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,

Sep 28 2017, 7:45 AM

Sep 26 2017

jdoerfert 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.
Sep 26 2017, 3:30 PM
jdoerfert added inline comments to D38255: [WIP] Polyhedral Value Analysis.
Sep 26 2017, 3:30 PM
jdoerfert added inline comments to D38255: [WIP] Polyhedral Value Analysis.
Sep 26 2017, 3:29 PM

Sep 25 2017

jdoerfert added a comment to D38255: [WIP] Polyhedral Value Analysis.

I forgot to include a softlink of the isl include folder. In the llvm src directory the following should be sufficent:

Sep 25 2017, 3:37 PM
jdoerfert created D38255: [WIP] Polyhedral Value Analysis.
Sep 25 2017, 1:32 PM
jdoerfert committed rL314131: Add the Second LLVM Performance Workshop at CGO.
Add the Second LLVM Performance Workshop at CGO
Sep 25 2017, 11:17 AM

Sep 19 2017

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

Just out of curiosity, did you compare the results (compile time, runtime, number of required overflow tracking intrinsics,...) to the simple bit-width tracking that was implemented in the IslExpr builder?

Sep 19 2017, 3:05 PM

Apr 11 2017

jdoerfert added inline comments to D31842: [Polly] Load hoisting of indirect loads.
Apr 11 2017, 4:26 AM

Apr 2 2017

jdoerfert added a comment to D31582: Use caller information to avoid noalias metadata.

It's early in the morning, but I'm having a little trouble understanding the overall goal. Is this fixing a bug, it just being done because it's a waste of time to add the metadata in this situation.

Apr 2 2017, 10:48 AM
jdoerfert created D31582: Use caller information to avoid noalias metadata.
Apr 2 2017, 9:13 AM
jdoerfert updated the summary of D29251: [PIR] A sequentialization pass for parallel regions.
Apr 2 2017, 7:52 AM
jdoerfert added reviewers for D29251: [PIR] A sequentialization pass for parallel regions: hfinkel, chandlerc, xtian.
Apr 2 2017, 7:48 AM
jdoerfert updated the diff for D29251: [PIR] A sequentialization pass for parallel regions.

Utilize the ParallelRegionInfo pass and emit parallel loop metadata

Apr 2 2017, 7:47 AM
jdoerfert added a dependent revision for D30354: [PIR] Add ParallelRegionInfoPass that builds the parallel region tree: D29251: [PIR] A sequentialization pass for parallel regions.
Apr 2 2017, 7:46 AM
jdoerfert added a dependent revision for D31580: [PIR] Allow to detect parallel loops using the ParallelRegionInfo.: D29251: [PIR] A sequentialization pass for parallel regions.
Apr 2 2017, 7:46 AM
jdoerfert added dependencies for D29251: [PIR] A sequentialization pass for parallel regions: D31580: [PIR] Allow to detect parallel loops using the ParallelRegionInfo., D30354: [PIR] Add ParallelRegionInfoPass that builds the parallel region tree.
Apr 2 2017, 7:46 AM
jdoerfert added a dependency for D31580: [PIR] Allow to detect parallel loops using the ParallelRegionInfo.: D30354: [PIR] Add ParallelRegionInfoPass that builds the parallel region tree.
Apr 2 2017, 7:42 AM
jdoerfert added a dependent revision for D30354: [PIR] Add ParallelRegionInfoPass that builds the parallel region tree: D31580: [PIR] Allow to detect parallel loops using the ParallelRegionInfo..
Apr 2 2017, 7:42 AM
jdoerfert created D31580: [PIR] Allow to detect parallel loops using the ParallelRegionInfo..
Apr 2 2017, 7:42 AM
jdoerfert added a dependent revision for D30354: [PIR] Add ParallelRegionInfoPass that builds the parallel region tree: D31579: [PIR] Consult the ParallelRegionInfo before promoting allocas.
Apr 2 2017, 7:41 AM
jdoerfert added a dependency for D31579: [PIR] Consult the ParallelRegionInfo before promoting allocas: D30354: [PIR] Add ParallelRegionInfoPass that builds the parallel region tree.
Apr 2 2017, 7:41 AM
jdoerfert created D31579: [PIR] Consult the ParallelRegionInfo before promoting allocas.
Apr 2 2017, 7:38 AM
jdoerfert updated the diff for D30354: [PIR] Add ParallelRegionInfoPass that builds the parallel region tree.

Still trying to separate a single commit

Apr 2 2017, 7:32 AM
jdoerfert updated the diff for D30354: [PIR] Add ParallelRegionInfoPass that builds the parallel region tree.

Try to make arcanist upload only one commit

Apr 2 2017, 7:29 AM
jdoerfert updated the diff for D30354: [PIR] Add ParallelRegionInfoPass that builds the parallel region tree.

Add more functionality

Apr 2 2017, 7:26 AM
jdoerfert awarded D31570: Revert "Remove autoconf support" a Party Time token.
Apr 2 2017, 3:11 AM
jdoerfert abandoned D20230: [WIP] Minimal SCEV interval analysis.
Apr 2 2017, 3:07 AM

Mar 7 2017

jdoerfert added a comment to D30376: Playing with tokens OR breaking coroutines manually.

I agree that verifier could be more rigorous with checking that coroutine intrinsics are used properly, but, I would not want to change the tests ex0 - ex5.ll as you suggested.
ex?.ll tests are examples from the coroutine walkthrough in LLVM Coroutines doc and I would like to keep them in sync with the tutorial. They represent minimally useful, but still sensible coroutines.

I would not object of adding new tests along the lines that your suggested (possibly with verifier changes to give better diagnostics) where assumptions about coroutine structure are violated.

And I would like to add that I appreciate very much your interest in LLVM coroutines and proposing this patch.

Mar 7 2017, 2:52 AM

Mar 3 2017

jdoerfert added reviewers for D30353: [PIR] Add documentation for PIR instructions: hfinkel, chandlerc, xtian.
Mar 3 2017, 5:16 AM
jdoerfert added reviewers for D30354: [PIR] Add ParallelRegionInfoPass that builds the parallel region tree: hfinkel, chandlerc, xtian.
Mar 3 2017, 5:15 AM
jdoerfert added reviewers for D29250: [PIR] Add fork, join and halt instructions: hfinkel, chandlerc, xtian.
Mar 3 2017, 5:15 AM

Feb 27 2017

jdoerfert added inline comments to D29251: [PIR] A sequentialization pass for parallel regions.
Feb 27 2017, 2:57 AM

Feb 25 2017

jdoerfert created D30376: Playing with tokens OR breaking coroutines manually.
Feb 25 2017, 2:39 AM

Feb 24 2017

jdoerfert added a comment to D29250: [PIR] Add fork, join and halt instructions.

Is there another patch which updates the langref? The semantics are most important of all.

Please see https://reviews.llvm.org/D30353 for a draft documentation and semantics.

Feb 24 2017, 2:18 PM
jdoerfert added a dependency for D30354: [PIR] Add ParallelRegionInfoPass that builds the parallel region tree: D29250: [PIR] Add fork, join and halt instructions.
Feb 24 2017, 2:17 PM
jdoerfert added a dependent revision for D29250: [PIR] Add fork, join and halt instructions: D30354: [PIR] Add ParallelRegionInfoPass that builds the parallel region tree.
Feb 24 2017, 2:17 PM
jdoerfert added a dependent revision for D29250: [PIR] Add fork, join and halt instructions: D30353: [PIR] Add documentation for PIR instructions.
Feb 24 2017, 2:17 PM
jdoerfert added a dependency for D30353: [PIR] Add documentation for PIR instructions: D29250: [PIR] Add fork, join and halt instructions.
Feb 24 2017, 2:17 PM
jdoerfert created D30354: [PIR] Add ParallelRegionInfoPass that builds the parallel region tree.
Feb 24 2017, 2:15 PM
jdoerfert created D30353: [PIR] Add documentation for PIR instructions.
Feb 24 2017, 2:11 PM

Feb 22 2017

jdoerfert updated the diff for D29251: [PIR] A sequentialization pass for parallel regions.

Update to match new D29250

Feb 22 2017, 7:56 AM
jdoerfert updated the diff for D29250: [PIR] Add fork, join and halt instructions.

Fix smaller issues and minor renaming

Feb 22 2017, 6:41 AM

Jan 29 2017

jdoerfert added a comment to D29250: [PIR] Add fork, join and halt instructions.

Is there another patch which updates the langref? The semantics are most important of all.

Jan 29 2017, 9:25 AM

Jan 28 2017

jdoerfert added a comment to D29250: [PIR] Add fork, join and halt instructions.

I'm not sure who's the proper person to review that, but that wouldn't be me. Did you discussed adding these instruction with someone ? If so, who is that ? maybe you want to add these people as reviewer.

Jan 28 2017, 7:30 AM
jdoerfert added a dependency for D29251: [PIR] A sequentialization pass for parallel regions: D29250: [PIR] Add fork, join and halt instructions.
Jan 28 2017, 5:53 AM
jdoerfert added a dependent revision for D29250: [PIR] Add fork, join and halt instructions: D29251: [PIR] A sequentialization pass for parallel regions.
Jan 28 2017, 5:53 AM