Page MenuHomePhabricator
Feed Advanced Search

Today

jdoerfert accepted D77005: [OpenMP] Optimized stream selection by scheduling data mapping for the same target region into a same stream.

One nit, otherwise LGTM.

Sun, Apr 5, 10:08 AM · Restricted Project
jdoerfert added reviewers for D26348: Allow convergent attribute for function arguments: simoll, fpetrogalli.
Sun, Apr 5, 9:36 AM
jdoerfert added a comment to D77402: [AssumeBundles] adapt Assumption cache to assume bundles.

How does this work with multiple occurrences of a value in an assume?


change assumption cache to store an assume along with an index to the operand bundle containg the knoledge.

Two typos in the commit message

Sun, Apr 5, 9:36 AM · Restricted Project
jdoerfert updated the diff for D77252: [OpenMP] Try to find an existing base for `omp begin/end declare variant`.

Simplify as suggeston by @mikerice, continue using the Declarator to create the implicit base if needed

Sun, Apr 5, 12:30 AM · Restricted Project

Yesterday

jdoerfert added a comment to D77005: [OpenMP] Optimized stream selection by scheduling data mapping for the same target region into a same stream.

I think this is good. Do you happen to have some runtime results?

Sat, Apr 4, 7:42 PM · Restricted Project
jdoerfert added a comment to D77252: [OpenMP] Try to find an existing base for `omp begin/end declare variant`.

[...]

 [...]
TypeSourceInfo *TInfo = GetTypeForDeclarator(D, S);
QualType FType = TInfo->getType();
[...]
Sat, Apr 4, 7:42 PM · Restricted Project
jdoerfert updated the diff for D77472: [OpenMP][PoC][WIP] An OpenMP-based OpenMP device runtime [NOT FOR COMMIT].

Use pragma syntax for allocators (e.g., to replace shared)

Sat, Apr 4, 6:06 PM · Restricted Project
jdoerfert committed rGc80cf48801be: [Attributor] AAReachability : use isPotentiallyReachable in isKnownReachable (authored by okura).
[Attributor] AAReachability : use isPotentiallyReachable in isKnownReachable
Sat, Apr 4, 5:34 PM
jdoerfert committed rG475abe14a59f: [Attributor] Make use of analysis in the MustBeExecutedExplorer (authored by okura).
[Attributor] Make use of analysis in the MustBeExecutedExplorer
Sat, Apr 4, 5:34 PM
jdoerfert closed D76210: [Attributor] AAReachability : use isPotentiallyReachable in isKnownReachable.
Sat, Apr 4, 5:34 PM · Restricted Project
jdoerfert closed D76378: [Attributor] Make use of analysis in the MustBeExecutedExplorer.
Sat, Apr 4, 5:34 PM · Restricted Project
jdoerfert added a comment to D76873: [Attributor][NFC] Split AbstractAttribute subclasses out of Attributor.cpp.

I think we'll benefit from more structure and this is only one step in that direction. If there is no argument against I'd like to land this now as we have little attributor patches in the pipeline.

Sat, Apr 4, 5:34 PM · Restricted Project
jdoerfert updated the summary of D77472: [OpenMP][PoC][WIP] An OpenMP-based OpenMP device runtime [NOT FOR COMMIT].
Sat, Apr 4, 5:34 PM · Restricted Project
jdoerfert added a comment to D76210: [Attributor] AAReachability : use isPotentiallyReachable in isKnownReachable.

Nevermind, I merged it.

Sat, Apr 4, 5:34 PM · Restricted Project
jdoerfert added a comment to D76210: [Attributor] AAReachability : use isPotentiallyReachable in isKnownReachable.

Can you please rebase this, doesn't apply cleanly anymore. Sorry for the wait. @uenoku @sstefan1 you can also commit Attributor patches for other people ;)

Sat, Apr 4, 5:34 PM · Restricted Project
jdoerfert added inline comments to D77252: [OpenMP] Try to find an existing base for `omp begin/end declare variant`.
Sat, Apr 4, 5:01 PM · Restricted Project
jdoerfert created D77472: [OpenMP][PoC][WIP] An OpenMP-based OpenMP device runtime [NOT FOR COMMIT].
Sat, Apr 4, 12:13 PM · Restricted Project
jdoerfert committed rGeec6d87626e7: [Attributor] Deduce attributes for non-exact functions (authored by bbn).
[Attributor] Deduce attributes for non-exact functions
Sat, Apr 4, 10:05 AM
jdoerfert committed rGceed44adfd1a: [OpenMP][NFC] Remove unnecessary argument (authored by jdoerfert).
[OpenMP][NFC] Remove unnecessary argument
Sat, Apr 4, 10:04 AM
jdoerfert closed D76404: [Attributor] Deduce attributes for non-exact functions.
Sat, Apr 4, 10:04 AM · Restricted Project
jdoerfert updated the diff for D75788: [OpenMP] Provide math functions in OpenMP device code via OpenMP variants.

Cleanup and rebase

Sat, Apr 4, 9:32 AM · Restricted Project
jdoerfert added a comment to D77454: [WIP] LoadInst should store Align, not MaybeAlign..

I'm in favor. The issues that arise due to confusion around the alignment are real.

Sat, Apr 4, 9:32 AM · Restricted Project
jdoerfert accepted D76550: [Attributor] Improve the alignment of the loads.

LGTM, with a small nit. Can you update the diff and provide me with "Firstname Lastname <email>" so I can upload this for you?

Sat, Apr 4, 9:00 AM · Restricted Project
jdoerfert accepted D76871: Expose `attributor-disable` to the new and old pass managers.

Apologies for the delay. LGTM.

Sat, Apr 4, 9:00 AM · Restricted Project
jdoerfert accepted D71960: [Attributor] AAUndefinedBehavior: Use AAValueSimplify in memory accessing instructions..

LGTM

Sat, Apr 4, 9:00 AM · Restricted Project
jdoerfert updated the diff for D77290: [OpenMP] Specialize OpenMP calls after template instantiation.

Rebase on D77252

Sat, Apr 4, 9:00 AM · Restricted Project
jdoerfert added a reviewer for D77414: [OpenMP] Add match_{all,any,none} declare variant selector extensions.: lebedev.ri.
Sat, Apr 4, 9:00 AM · Restricted Project
jdoerfert added a comment to D71739: [WIP] Use operand bundles to encode alignment assumptions.

@lebedev.ri We'd need to identify other uses of the alignment encoding in-tree so we can replace them as well. Also, this patch uses not only the alignment but also the offset in the operand bundle. We can either allow that or encode the offset via a gep in the IR. I guess the latter is easier to implement until we have more reasons to allow more complex operand bundles (which we will need to have eventually).

Sat, Apr 4, 9:00 AM · Restricted Project, Restricted Project
jdoerfert planned changes to D66618: [WIP] Expose functions to determine pointer properties (Align & Deref).

@lebedev.ri There were some concerns and I first have to reevaluate how to address them and achieve value in the move. Long story short, this is halted for now.

Sat, Apr 4, 9:00 AM · Restricted Project
jdoerfert planned changes to D71692: [WIP] Prototype outlined assumptions and operand bundle information attachment.

@lebedev.ri This was mostly outlining related code. While I still believe this is the right way to go, I want to focus on the operand bundle changes now and revisit this afterwards. I'll update the status so it's off your list.

Sat, Apr 4, 9:00 AM · Restricted Project
jdoerfert updated the diff for D77113: [OpenMP][NFC] Move and simplify directive -> allowed clause mapping.

Rebase

Sat, Apr 4, 8:28 AM · Restricted Project
jdoerfert updated the diff for D77112: [OpenMP][NFCI] Move OpenMP clause information to `lib/Frontend/OpenMP`.

Rebase

Sat, Apr 4, 8:28 AM · Restricted Project

Fri, Apr 3

jdoerfert updated the diff for D77414: [OpenMP] Add match_{all,any,none} declare variant selector extensions..

Allow the new match clauses to be used in begin/end declare variant as well (with their respective effect)

Fri, Apr 3, 7:30 PM · Restricted Project
jdoerfert accepted D77430: [OpenMP] NFC: Fix trivial typo.

LGTM.

Fri, Apr 3, 2:05 PM · Restricted Project
jdoerfert added a comment to D76149: [AssumeBundles] Use assume bundles in isKnownNonZero.

I'm fine with this, one test needs an update though.

Fri, Apr 3, 2:05 PM · Restricted Project
jdoerfert added inline comments to D77290: [OpenMP] Specialize OpenMP calls after template instantiation.
Fri, Apr 3, 2:05 PM · Restricted Project
jdoerfert added a reviewer for D77402: [AssumeBundles] adapt Assumption cache to assume bundles: hfinkel.

How does this work with multiple occurrences of a value in an assume?

Fri, Apr 3, 12:26 PM · Restricted Project
jdoerfert accepted D77403: [AssumeBundles] preserve knowledge in DCE.

LGTM.

Fri, Apr 3, 12:25 PM · Restricted Project
jdoerfert accepted D77404: [AssumeBundles] preserve knowledge in DSE.

LGTM.

Fri, Apr 3, 12:25 PM · Restricted Project
jdoerfert added a comment to D77405: [AssumeBundles] adapte GVN to assume bundles.

We need a test with an existing assume + op bundles to verify it is not eliminated.

Fri, Apr 3, 12:25 PM · Restricted Project
jdoerfert accepted D77407: [AssumeBundles] preserve information in LICM.
Fri, Apr 3, 11:53 AM · Restricted Project
jdoerfert added a comment to D77407: [AssumeBundles] preserve information in LICM.

LGTM.

Fri, Apr 3, 11:53 AM · Restricted Project
jdoerfert added a comment to D70366: Add new 'flatten' LLVM attribute to fix clang's 'flatten' function attribute.

I'm fine with this. I would hope a C/C++/Clang person will also take a look though.

Fri, Apr 3, 11:53 AM · Restricted Project, Restricted Project
jdoerfert accepted D77406: [AssumeBundles] preserve information in NewGVN.

LGTM!

Fri, Apr 3, 11:53 AM · Restricted Project
jdoerfert added a comment to D77412: [OpenMP] Introduce stream pool to make sure the correctness of device synchronization.

I like this a lot. I have one high-level question and a request for documentation:
Shouldn't we hide the stream stuff behind the async_info object instead?
I mean, we could avoid accidental misuse by restricting the getStream/returnStream to the constructor/destructor of async_info for example.
We should also unify the naming.

Fri, Apr 3, 11:53 AM · Restricted Project
jdoerfert added inline comments to D77005: [OpenMP] Optimized stream selection by scheduling data mapping for the same target region into a same stream.
Fri, Apr 3, 11:20 AM · Restricted Project
jdoerfert added a reviewer for D77252: [OpenMP] Try to find an existing base for `omp begin/end declare variant`: mikerice.
Fri, Apr 3, 10:15 AM · Restricted Project
jdoerfert created D77414: [OpenMP] Add match_{all,any,none} declare variant selector extensions..
Fri, Apr 3, 10:15 AM · Restricted Project

Thu, Apr 2

jdoerfert updated the diff for D77112: [OpenMP][NFCI] Move OpenMP clause information to `lib/Frontend/OpenMP`.

Update with clang-tidy and documentation adjustments

Thu, Apr 2, 9:44 AM · Restricted Project
jdoerfert abandoned D77240: [CUDA] Add missing cmath overloads.
In D77240#1957468, @tra wrote:

I just noticed those as well. I forgot to put the new definitions into the forward declare header. Will do it in a second. The OpenMP math overlay doesn't have one so I forgot :(

I'm not sure how it's going to help. The problem is that the functions are already defined by CUDA headers. Moving the duplicate definition to a different header does not change that.
Bottom line is that the already-existing definitions are not needed for CUDA. If OpenMP needs them, then they should probably go into an OpenMP-specific header.

Thu, Apr 2, 9:44 AM · Restricted Project
jdoerfert added a comment to D76550: [Attributor] Improve the alignment of the loads.

and i think the base (i32* B) is wrong and it is a base that's because sometimes ACSRepairCB is invoked before FnRepairCB so the alloca instructions are not yet added so it gets the value of the base from the argument itself and not the alloca so isn't we should make sure that FnRepairCB is invoked before ACSRepairCB to make sure that not happens ?

Thu, Apr 2, 9:44 AM · Restricted Project
jdoerfert added a comment to D77240: [CUDA] Add missing cmath overloads.

I just noticed those as well. I forgot to put the new definitions into the forward declare header. Will do it in a second. The OpenMP math overlay doesn't have one so I forgot :(

Thu, Apr 2, 9:12 AM · Restricted Project
jdoerfert reopened D77112: [OpenMP][NFCI] Move OpenMP clause information to `lib/Frontend/OpenMP`.
Thu, Apr 2, 8:06 AM · Restricted Project
jdoerfert committed rGc18d55998b33: [OpenMP][NFCI] Move OpenMP clause information to `lib/Frontend/OpenMP` (authored by jdoerfert).
[OpenMP][NFCI] Move OpenMP clause information to `lib/Frontend/OpenMP`
Thu, Apr 2, 12:30 AM
jdoerfert committed rG1858f4b50dd3: Revert "[OpenMP][NFCI] Move OpenMP clause information to `lib/Frontend/OpenMP`" (authored by jdoerfert).
Revert "[OpenMP][NFCI] Move OpenMP clause information to `lib/Frontend/OpenMP`"
Thu, Apr 2, 12:30 AM
jdoerfert closed D77112: [OpenMP][NFCI] Move OpenMP clause information to `lib/Frontend/OpenMP`.
Thu, Apr 2, 12:30 AM · Restricted Project
jdoerfert added a comment to D77112: [OpenMP][NFCI] Move OpenMP clause information to `lib/Frontend/OpenMP`.

Reverted in 1858f4b50dd35c28b377ba5dbc572fed43a5d38a as some uses need fixing, didn't build clang-tidy locally apparently.

Thu, Apr 2, 12:30 AM · Restricted Project
jdoerfert added a child revision for D77290: [OpenMP] Specialize OpenMP calls after template instantiation: D77252: [OpenMP] Try to find an existing base for `omp begin/end declare variant`.
Thu, Apr 2, 12:30 AM · Restricted Project
jdoerfert removed a parent revision for D77290: [OpenMP] Specialize OpenMP calls after template instantiation: D77113: [OpenMP][NFC] Move and simplify directive -> allowed clause mapping.
Thu, Apr 2, 12:30 AM · Restricted Project
jdoerfert updated the summary of D77290: [OpenMP] Specialize OpenMP calls after template instantiation.
Thu, Apr 2, 12:30 AM · Restricted Project
jdoerfert added a parent revision for D77252: [OpenMP] Try to find an existing base for `omp begin/end declare variant`: D77290: [OpenMP] Specialize OpenMP calls after template instantiation.
Thu, Apr 2, 12:30 AM · Restricted Project
jdoerfert removed a child revision for D77113: [OpenMP][NFC] Move and simplify directive -> allowed clause mapping: D77290: [OpenMP] Specialize OpenMP calls after template instantiation.
Thu, Apr 2, 12:30 AM · Restricted Project
jdoerfert created D77290: [OpenMP] Specialize OpenMP calls after template instantiation.
Thu, Apr 2, 12:30 AM · Restricted Project
jdoerfert added a comment to D77112: [OpenMP][NFCI] Move OpenMP clause information to `lib/Frontend/OpenMP`.
NOTE: I mixed this one up with the follow up that was approved already (D77113) and committed it. If it turns out to be problematic we revert but I'll leave it for now as there was a positive review from @fghanim .
Thu, Apr 2, 12:30 AM · Restricted Project
jdoerfert added a child revision for D77113: [OpenMP][NFC] Move and simplify directive -> allowed clause mapping: D77290: [OpenMP] Specialize OpenMP calls after template instantiation.
Thu, Apr 2, 12:30 AM · Restricted Project

Wed, Apr 1

jdoerfert committed rGb0b5f0416be6: [OpenMP][FIX] Undo changes accidentally already introduced in NFC commit (authored by jdoerfert).
[OpenMP][FIX] Undo changes accidentally already introduced in NFC commit
Wed, Apr 1, 11:58 PM
jdoerfert added a comment to D77238: [CUDA][NFC] Split math.h functions out of __clang_cuda_device_functions.h.

this patch breaks the test clang/test/Headers/nvptx_device_cmath_functions.cpp, could you please fix it ASAP?
Once NVPTX target is enabled, the following tests failed:

Failing Tests (6):

Clang :: Headers/nvptx_device_cmath_functions.c
Clang :: Headers/nvptx_device_cmath_functions.cpp
Clang :: Headers/nvptx_device_cmath_functions_cxx17.cpp
Clang :: Headers/nvptx_device_math_functions.c
Clang :: Headers/nvptx_device_math_functions.cpp
Clang :: Headers/nvptx_device_math_functions_cxx17.cpp
Wed, Apr 1, 11:57 PM · Restricted Project
jdoerfert committed rG410cfc478f35: [OpenMP][FIX] Add second include after header was split in d1705c1196 (authored by jdoerfert).
[OpenMP][FIX] Add second include after header was split in d1705c1196
Wed, Apr 1, 10:51 PM
jdoerfert committed rGd1705c1196fe: [CUDA][NFC] Split math.h functions out of __clang_cuda_device_functions.h (authored by jdoerfert).
[CUDA][NFC] Split math.h functions out of __clang_cuda_device_functions.h
Wed, Apr 1, 10:19 PM
jdoerfert closed D77238: [CUDA][NFC] Split math.h functions out of __clang_cuda_device_functions.h.
Wed, Apr 1, 10:19 PM · Restricted Project
jdoerfert committed rGbcd8009369f8: [Attributor] Use the proper context instruction in genericValueTraversal (authored by jdoerfert).
[Attributor] Use the proper context instruction in genericValueTraversal
Wed, Apr 1, 8:42 PM
jdoerfert committed rGac96c8fd8535: [Attributor][FIX] Do not compute ranges for arguments of declarations (authored by jdoerfert).
[Attributor][FIX] Do not compute ranges for arguments of declarations
Wed, Apr 1, 8:42 PM
jdoerfert closed D76870: [Attributor] Use the proper context instruction in genericValueTraversal.
Wed, Apr 1, 8:42 PM · Restricted Project
jdoerfert committed rGa8b2fed0aef9: [Utils][FIX] Properly deal with occasionally deleted functions (authored by jdoerfert).
[Utils][FIX] Properly deal with occasionally deleted functions
Wed, Apr 1, 8:10 PM
jdoerfert committed rG54d6a608bf81: [Attributor][NFC] Predetermine the module (authored by jdoerfert).
[Attributor][NFC] Predetermine the module
Wed, Apr 1, 8:10 PM
jdoerfert committed rG9e19693994dc: [Attributor] Derive better alignment for accessed pointers (authored by jdoerfert).
[Attributor] Derive better alignment for accessed pointers
Wed, Apr 1, 8:10 PM
jdoerfert closed D76586: [Utils][FIX] Properly deal with occasionally deleted functions.
Wed, Apr 1, 8:10 PM · Restricted Project
jdoerfert committed rGb1c788d05187: [Attributor][FIX] Prevent alignment breakage wrt. must-tail calls (authored by jdoerfert).
[Attributor][FIX] Prevent alignment breakage wrt. must-tail calls
Wed, Apr 1, 8:10 PM
jdoerfert closed D76674: [Attributor] Derive better alignment for accessed pointers.
Wed, Apr 1, 8:10 PM · Restricted Project
jdoerfert committed rGf7f932284352: [Attributor][NFC] Cleanup leftover check lines (authored by jdoerfert).
[Attributor][NFC] Cleanup leftover check lines
Wed, Apr 1, 8:09 PM
jdoerfert closed D76673: [Attributor][FIX] Prevent alignment breakage wrt. must-tail calls.
Wed, Apr 1, 8:09 PM · Restricted Project
jdoerfert committed rG6cd673345cfa: [LangRef][AliasAnalysis] Clarify `noalias` affects only modified objects (authored by jdoerfert).
[LangRef][AliasAnalysis] Clarify `noalias` affects only modified objects
Wed, Apr 1, 7:05 PM
jdoerfert committed rG41f2a57d0bc1: [Attributor][NFC] Use a BumpPtrAllocator to allocate `AbstractAttribute`s (authored by jdoerfert).
[Attributor][NFC] Use a BumpPtrAllocator to allocate `AbstractAttribute`s
Wed, Apr 1, 7:05 PM
jdoerfert closed D74935: [LangRef][AliasAnalysis] Clarify `noalias` affects only modified objects.
Wed, Apr 1, 7:05 PM · Restricted Project
jdoerfert closed D76589: [Attributor][NFC] Use a BumpPtrAllocator to allocate `AbstractAttribute`s.
Wed, Apr 1, 7:05 PM · Restricted Project
jdoerfert added a comment to D76184: [OpenMP][NFC] Remove the need to include `OpenMPClause.h`.

@rnk What is the plan for this one now? Should I abandon it?

Wed, Apr 1, 7:04 PM · Restricted Project
jdoerfert added a comment to D76404: [Attributor] Deduce attributes for non-exact functions.

Apologies for the delay, can you rebase this and provide me with "Firstname Lastname <email>" from you so I can attribute it to you?

Wed, Apr 1, 7:04 PM · Restricted Project
jdoerfert added a comment to D76208: [Attributor] Use AAValueConstantRange to infer dereferencability..

Apologies for the delay, can you rebase this and provide me with "Firstname Lastname <email>" from you so I can attribute it to you?

Wed, Apr 1, 7:04 PM · Restricted Project
jdoerfert added a comment to D76378: [Attributor] Make use of analysis in the MustBeExecutedExplorer.

I want to upstream but to attribute this to you I need "Firstname Lastname <email>" from you

Wed, Apr 1, 7:04 PM · Restricted Project
jdoerfert updated the diff for D75788: [OpenMP] Provide math functions in OpenMP device code via OpenMP variants.

Rewrite. Wrap math.h, time.h, and cmath. Preload only device functions.

Wed, Apr 1, 5:28 PM · Restricted Project
jdoerfert created D77252: [OpenMP] Try to find an existing base for `omp begin/end declare variant`.
Wed, Apr 1, 4:20 PM · Restricted Project
jdoerfert added a comment to D77240: [CUDA] Add missing cmath overloads.
In D77240#1955755, @tra wrote:

At least that one is defined in what is "now" __clang_cuda_math.h:

Cool. We may be OK, but we still need to verify it. Math headers are rather fragile and we need to make sure it all still works two different standard libraries and all CUDA versions.
Unfortunately my CUDA build bot has decided to die the day we've started working from home, so it has to be done manually.
Let me try patching in your changes and try them with the CUDA versions I have. Stay tuned.

Wed, Apr 1, 3:12 PM · Restricted Project
jdoerfert added inline comments to D77238: [CUDA][NFC] Split math.h functions out of __clang_cuda_device_functions.h.
Wed, Apr 1, 2:38 PM · Restricted Project
jdoerfert added a comment to D77240: [CUDA] Add missing cmath overloads.
In D77240#1955678, @tra wrote:

We'll need to make sure that all of these new functions are vailable in all supported CUDA versions.
E.g. acoshf does not seem to be present in CUDA-9.

Wed, Apr 1, 2:38 PM · Restricted Project
jdoerfert abandoned D77239: [CUDA][NFCI] Use unqualified lookup for math functions.
In D77239#1955720, @tra wrote:

The other macro uses a unqualified lookup already and the qualified one
will cause problems in the OpenMP overlay.

There's a bit of inconsitency here. While __CUDA_CLANG_FN_INTEGER_OVERLOAD_2 indeed uses unqualified lookup, pretty much all other functions use qualified global scope lookups, which, I believe is correct, as we want to use the functions defined by CUDA headers there.

@jlebar -- WDYT?

Wed, Apr 1, 2:38 PM · Restricted Project
jdoerfert created D77240: [CUDA] Add missing cmath overloads.
Wed, Apr 1, 1:30 PM · Restricted Project
jdoerfert created D77239: [CUDA][NFCI] Use unqualified lookup for math functions.
Wed, Apr 1, 1:30 PM · Restricted Project
jdoerfert added a child revision for D77239: [CUDA][NFCI] Use unqualified lookup for math functions: D77240: [CUDA] Add missing cmath overloads.
Wed, Apr 1, 1:30 PM · Restricted Project
jdoerfert created D77238: [CUDA][NFC] Split math.h functions out of __clang_cuda_device_functions.h.
Wed, Apr 1, 1:30 PM · Restricted Project
jdoerfert added a child revision for D77238: [CUDA][NFC] Split math.h functions out of __clang_cuda_device_functions.h: D77239: [CUDA][NFCI] Use unqualified lookup for math functions.
Wed, Apr 1, 1:30 PM · Restricted Project