Page MenuHomePhabricator

jdoerfert (Johannes Doerfert)
Argonne National Laboratory

Projects

User does not belong to any projects.

User Details

User Since
Jan 30 2014, 6:27 AM (290 w, 1 d)

Recent Activity

Today

jdoerfert added a comment to D66664: [FIX] Nonnull is not always implied by dereferenceable.

getPointerDereferenceableBytes returns some number of dereferenceable bytes. If CanBeNull is true, that result is modified: if the pointer value is null, the number of known dereferenceable bytes is actually zero.

Fri, Aug 23, 1:56 PM · Restricted Project
jdoerfert committed rG5a5a13991759: [Attributor] Manifest alignment in load and store instructions (authored by jdoerfert).
[Attributor] Manifest alignment in load and store instructions
Fri, Aug 23, 1:22 PM
jdoerfert committed rL369804: [Attributor] Manifest alignment in load and store instructions.
[Attributor] Manifest alignment in load and store instructions
Fri, Aug 23, 1:22 PM
jdoerfert closed D66567: [Attributor] Manifest alignment in load and store instructions.
Fri, Aug 23, 1:21 PM · Restricted Project
jdoerfert added a comment to D66673: [OPENMP][NVPTX]Fix critical region codegen..

I guess IR test should be affected already and it would be good to have the run time test that breaks with barriers.

Fri, Aug 23, 1:17 PM · Restricted Project
jdoerfert added a comment to D66672: [OPENMP][NVPTX]Add __kmpc_syncwarp(int32_t) function..

We have uses of __SYNCWARP in the library, right? Can we use the function instead and maybe put it in the language dependent part?

Fri, Aug 23, 12:18 PM · Restricted Project
jdoerfert added inline comments to D65860: [Attributor] Add LoopInfo to InformationCache and improve willreturn deduction.
Fri, Aug 23, 11:47 AM · Restricted Project
jdoerfert added a comment to D65013: [OPENMP][NVPTX]Use __syncwarp() to reconverge the threads..

Make sure to update the commit message as well.

Fri, Aug 23, 11:19 AM · Restricted Project, Restricted Project
jdoerfert accepted D65013: [OPENMP][NVPTX]Use __syncwarp() to reconverge the threads..

thx for the explanation. LGTM.

Fri, Aug 23, 11:19 AM · Restricted Project, Restricted Project
jdoerfert committed rG22e6e108e108: [BasicAA] Use dereferenceability to reason about aliasing (authored by jdoerfert).
[BasicAA] Use dereferenceability to reason about aliasing
Fri, Aug 23, 10:56 AM
jdoerfert committed rL369786: [BasicAA] Use dereferenceability to reason about aliasing.
[BasicAA] Use dereferenceability to reason about aliasing
Fri, Aug 23, 10:55 AM
jdoerfert closed D66157: [BasicAA] Use dereferenceability to reason about aliasing.
Fri, Aug 23, 10:55 AM · Restricted Project
jdoerfert committed rG23400e618b98: [Attributor] Manifest constant return values (authored by jdoerfert).
[Attributor] Manifest constant return values
Fri, Aug 23, 10:45 AM
jdoerfert committed rL369785: [Attributor] Manifest constant return values.
[Attributor] Manifest constant return values
Fri, Aug 23, 10:41 AM
jdoerfert closed D66551: [Attributor] Manifest constant return values.
Fri, Aug 23, 10:41 AM · Restricted Project
jdoerfert committed rG785fad32025a: [Attributor] Deal with shrinking dereferenceability in a loop (authored by jdoerfert).
[Attributor] Deal with shrinking dereferenceability in a loop
Fri, Aug 23, 10:29 AM
jdoerfert committed rL369784: [Attributor] Deal with shrinking dereferenceability in a loop.
[Attributor] Deal with shrinking dereferenceability in a loop
Fri, Aug 23, 10:28 AM
jdoerfert closed D66558: [Attributor] Deal with shrinking dereferenceability in a loop.
Fri, Aug 23, 10:28 AM · Restricted Project
jdoerfert created D66664: [FIX] Nonnull is not always implied by dereferenceable.
Fri, Aug 23, 10:01 AM · Restricted Project
jdoerfert committed rG2f2d7c3addff: [Attributor][Fix] Deal with "growing" dereferenceability (authored by jdoerfert).
[Attributor][Fix] Deal with "growing" dereferenceability
Fri, Aug 23, 8:46 AM
jdoerfert committed rL369771: [Attributor][Fix] Deal with "growing" dereferenceability.
[Attributor][Fix] Deal with "growing" dereferenceability
Fri, Aug 23, 8:44 AM
jdoerfert closed D66557: [Attributor][Fix] Deal with "growing" dereferenceability.
Fri, Aug 23, 8:44 AM · Restricted Project
jdoerfert committed rGdeb9ea3a8c84: [Attributor][NFCI] Avoid lookups when resolving returned values (authored by jdoerfert).
[Attributor][NFCI] Avoid lookups when resolving returned values
Fri, Aug 23, 8:44 AM
jdoerfert committed rL369770: [Attributor][NFCI] Avoid lookups when resolving returned values.
[Attributor][NFCI] Avoid lookups when resolving returned values
Fri, Aug 23, 8:43 AM
jdoerfert closed D66484: [Attributor][NFCI] Avoid lookups when resolving returned values.
Fri, Aug 23, 8:43 AM · Restricted Project
jdoerfert added a comment to D65013: [OPENMP][NVPTX]Use __syncwarp() to reconverge the threads..

Generally, this seems fine but I was hoping we could say what configuration and test file can be used to reproduce this error.

Fri, Aug 23, 8:37 AM · Restricted Project, Restricted Project
jdoerfert committed rG9543f1498c30: [Attributor] FIX: Treat new attributes as changed ones (authored by jdoerfert).
[Attributor] FIX: Treat new attributes as changed ones
Fri, Aug 23, 8:29 AM
jdoerfert committed rG695089ecfb2b: [Attributor][NFCI] Try to avoid potential non-deterministic behavior (authored by jdoerfert).
[Attributor][NFCI] Try to avoid potential non-deterministic behavior
Fri, Aug 23, 8:29 AM
jdoerfert committed rL369768: [Attributor] FIX: Treat new attributes as changed ones.
[Attributor] FIX: Treat new attributes as changed ones
Fri, Aug 23, 8:29 AM
jdoerfert closed D66549: [Attributor] FIX: Treat new attributes as changed ones.
Fri, Aug 23, 8:29 AM · Restricted Project
jdoerfert committed rL369767: [Attributor][NFCI] Try to avoid potential non-deterministic behavior.
[Attributor][NFCI] Try to avoid potential non-deterministic behavior
Fri, Aug 23, 8:28 AM
jdoerfert added a comment to D66651: Annotate return values of allocation functions with dereferenceable_or_null.

It seems inconsistent to declare Op0C initially and Op1C late given that both are need 2 times in almost the same fashion.

Fri, Aug 23, 8:28 AM · Restricted Project
jdoerfert committed rGa5b10b464e5e: [MustExec] Add a generic "must-be-executed-context" explorer (authored by jdoerfert).
[MustExec] Add a generic "must-be-executed-context" explorer
Fri, Aug 23, 8:19 AM
jdoerfert committed rL369765: [MustExec] Add a generic "must-be-executed-context" explorer.
[MustExec] Add a generic "must-be-executed-context" explorer
Fri, Aug 23, 8:19 AM
jdoerfert closed D65186: [MustExec] Add a generic "must-be-executed-context" explorer.
Fri, Aug 23, 8:19 AM · Restricted Project
jdoerfert added a comment to D66645: [Attributor] Add helper class to compose two structured deduction..

This is what I wanted but I think I need to see this in action as I'm not a template wizard. (Btw. if you want to clean up the mess I made, feel free!)

Fri, Aug 23, 7:46 AM · Restricted Project
jdoerfert planned changes to D66461: [CaptureTracker] Comparisons of allocation pointers do not capture.

As I described, the compare will capture only if the other pointer was captured.

But the other pointer can be captured afterward, no?

Fri, Aug 23, 12:05 AM · Restricted Project
jdoerfert added a comment to D66608: [InstCombine] icmp eq/ne (gep inbounds P, Idx..), null -> icmp eq/ne P, null.

When I went to add the suggested size-0 type bailout, I realized the existing code was correct for this case. I added tests and a comment to show this.

Fri, Aug 23, 12:05 AM · Restricted Project

Yesterday

jdoerfert updated the diff for D66618: [WIP] Expose functions to determine pointer properties (Align & Deref).

Update tests and fix errors

Thu, Aug 22, 10:57 PM · Restricted Project
jdoerfert added inline comments to D65402: [Attributor][MustExec] Deduce dereferenceable and nonnull attribute using MustBeExecutedContextExplorer.
Thu, Aug 22, 2:48 PM · Restricted Project
jdoerfert added a comment to D64533: [IndVars] Special case the problematic (gep inbounds p, iv == nullptr) problem (pr42357) .

See https://reviews.llvm.org/D66608 for an alternate approach in InstCombine as suggested in review here.

Thu, Aug 22, 2:21 PM
jdoerfert added a comment to D66608: [InstCombine] icmp eq/ne (gep inbounds P, Idx..), null -> icmp eq/ne P, null.

As mentioned on the previous review, do we need to handle getelementptr inbounds {}, {}* %p, i32 %idx? That is, an inbounds GEP on a zero-sized type, which may be null for a non-zero index. It looks like this case is not handled in the existing code either though, so possibly this construction isn't legal (though I don't see anything to that effect in langref)?

Thu, Aug 22, 2:15 PM · Restricted Project
jdoerfert retitled D66618: [WIP] Expose functions to determine pointer properties (Align & Deref) from [WIP] Expose functions to determine pointer properties (Align & Deref) NOTE: This is a prototype to show an alternative to the two solutions sketched in http://lists.llvm.org/pipermail/llvm-dev/2019-August/134680.html . to [WIP] Expose functions to determine pointer properties (Align & Deref).
Thu, Aug 22, 2:08 PM · Restricted Project
jdoerfert created D66618: [WIP] Expose functions to determine pointer properties (Align & Deref).
Thu, Aug 22, 2:07 PM · Restricted Project
jdoerfert added a comment to D66461: [CaptureTracker] Comparisons of allocation pointers do not capture.

As I described, the compare will capture only if the other pointer was captured. So additionally to the checks in the patch ask the tracker if that is the case

You can't actually reconstruct the pointer in that case, but the bits are still significant; if two functions sort a list of pointers, they have to sort the same way. Whether that means the pointer is "captured" depends on the definition of "captured"; I can think of transforms that don't care, and transforms that do care.

Thu, Aug 22, 1:15 PM · Restricted Project
jdoerfert added inline comments to D66608: [InstCombine] icmp eq/ne (gep inbounds P, Idx..), null -> icmp eq/ne P, null.
Thu, Aug 22, 1:14 PM · Restricted Project
jdoerfert accepted D66575: [AlignmentFromAssumptions] getNewAlignmentDiff(): use getURemExpr().

The original code tried to do the modulo computation (as per comment and the looks of it) but the operands of DiffUnitsSCEV = SE->getMinusSCEV(DiffAlign, DiffSCEV) were swapped.
Swapping them should yield the same result as using URem but using URem is better so this is fine.

Thu, Aug 22, 9:41 AM · Restricted Project
jdoerfert added a comment to D66461: [CaptureTracker] Comparisons of allocation pointers do not capture.

Yes, you can't capture a pointer that's already captured.

! In D66461#1640565, @hfinkel wrote:
If you compare the same pointer (or derived from the same), you need to capture at least one from them "explicitly" to learn the bits.

Yes, but then we'd need some way to account for that. If pointer A is compared to pointer B, and then pointer B is unambiguously captured, then so has been pointer A (at least in the part of the control flow dominated by the true edge of the comparison).

Thu, Aug 22, 6:51 AM · Restricted Project
jdoerfert accepted D66585: [Attributor][NFC] Move DerefState to header and use StateWrapper.

LGTM

Thu, Aug 22, 6:20 AM · Restricted Project

Wed, Aug 21

jdoerfert created D66567: [Attributor] Manifest alignment in load and store instructions.
Wed, Aug 21, 5:05 PM · Restricted Project
jdoerfert added inline comments to D64451: [PoisonChecking] Validate inbounds annotation on getelementptr where possible.
Wed, Aug 21, 3:53 PM · Restricted Project
jdoerfert added a reviewer for D66559: [OPENMP] Update the diagnosis message for canonical loop form: ABataev.
Wed, Aug 21, 3:48 PM · Restricted Project, Restricted Project
jdoerfert committed rG92dee44d7716: [Attributor] FIX: Try to make bots happy (authored by jdoerfert).
[Attributor] FIX: Try to make bots happy
Wed, Aug 21, 3:28 PM
jdoerfert committed rL369592: [Attributor] FIX: Try to make bots happy.
[Attributor] FIX: Try to make bots happy
Wed, Aug 21, 3:26 PM
jdoerfert created D66562: [Attributor] Restrict liveness and return information to functions.
Wed, Aug 21, 3:05 PM · Restricted Project
jdoerfert committed rGd98f975089e3: [Attributor] Fix: Gracefully handle non-instruction users (authored by jdoerfert).
[Attributor] Fix: Gracefully handle non-instruction users
Wed, Aug 21, 2:53 PM
jdoerfert committed rL369588: [Attributor] Fix: Gracefully handle non-instruction users.
[Attributor] Fix: Gracefully handle non-instruction users
Wed, Aug 21, 2:51 PM
jdoerfert committed rGa41b239081c1: [Attributor][NFCI] Introduce tight iteration bounds in the tests (authored by jdoerfert).
[Attributor][NFCI] Introduce tight iteration bounds in the tests
Wed, Aug 21, 2:46 PM
jdoerfert committed rL369586: [Attributor][NFCI] Introduce tight iteration bounds in the tests.
[Attributor][NFCI] Introduce tight iteration bounds in the tests
Wed, Aug 21, 2:45 PM
jdoerfert closed D66554: [Attributor][NFCI] Introduce tight iteration bounds in the tests.
Wed, Aug 21, 2:45 PM · Restricted Project
jdoerfert created D66558: [Attributor] Deal with shrinking dereferenceability in a loop.
Wed, Aug 21, 2:02 PM · Restricted Project
jdoerfert created D66557: [Attributor][Fix] Deal with "growing" dereferenceability.
Wed, Aug 21, 1:59 PM · Restricted Project
jdoerfert committed rG5427aa843bbe: [Attributor][NFC] Fix copy & paste error (authored by jdoerfert).
[Attributor][NFC] Fix copy & paste error
Wed, Aug 21, 1:59 PM
jdoerfert committed rG2db8528fb476: [Attributor][NFC] Remove leftover semicolon (authored by jdoerfert).
[Attributor][NFC] Remove leftover semicolon
Wed, Aug 21, 1:58 PM
jdoerfert committed rGd410805d578b: [Attributor] Use existing unreachable instead of introducing new ones (authored by jdoerfert).
[Attributor] Use existing unreachable instead of introducing new ones
Wed, Aug 21, 1:58 PM
jdoerfert committed rL369577: [Attributor][NFC] Fix copy & paste error.
[Attributor][NFC] Fix copy & paste error
Wed, Aug 21, 1:58 PM
jdoerfert committed rL369575: [Attributor] Use existing unreachable instead of introducing new ones.
[Attributor] Use existing unreachable instead of introducing new ones
Wed, Aug 21, 1:58 PM
jdoerfert committed rL369576: [Attributor][NFC] Remove leftover semicolon.
[Attributor][NFC] Remove leftover semicolon
Wed, Aug 21, 1:58 PM
jdoerfert updated the diff for D66484: [Attributor][NFCI] Avoid lookups when resolving returned values.

Use the call site as a key for the cache

Wed, Aug 21, 1:53 PM · Restricted Project
jdoerfert created D66554: [Attributor][NFCI] Introduce tight iteration bounds in the tests.
Wed, Aug 21, 1:43 PM · Restricted Project
jdoerfert created D66551: [Attributor] Manifest constant return values.
Wed, Aug 21, 1:31 PM · Restricted Project
jdoerfert created D66549: [Attributor] FIX: Treat new attributes as changed ones.
Wed, Aug 21, 1:25 PM · Restricted Project
jdoerfert added a comment to D66461: [CaptureTracker] Comparisons of allocation pointers do not capture.

I'm missing something here. If I have two pointers (e.g., returned from malloc), and I compare them so I know they're equal, then I've learned that the pointers are equal -- and, thus, if I know all of the bits of one pointer I now know all of the bits of the other pointer. As a result, I can still reconstruct it later using that information.

Wed, Aug 21, 9:38 AM · Restricted Project
jdoerfert abandoned D66439: [LibFunc] "free" captures the pointer operand.

We'll need "nofree" for call site arguments ;)

Wed, Aug 21, 9:30 AM · Restricted Project
jdoerfert added a comment to D66439: [LibFunc] "free" captures the pointer operand.

Thx @efriedma, We'll do it without this change

Wed, Aug 21, 9:30 AM · Restricted Project

Tue, Aug 20

jdoerfert added a comment to D66439: [LibFunc] "free" captures the pointer operand.

Is there some practical issue I'm missing?

Tue, Aug 20, 3:42 PM · Restricted Project
jdoerfert added inline comments to D53342: [SimplifyLibCalls] Mark known arguments with nonnull.
Tue, Aug 20, 11:53 AM
jdoerfert added a comment to D53342: [SimplifyLibCalls] Mark known arguments with nonnull.

For some cases I would like to copy just attributes for argno 0 - but I dont know to do it :(

I mean something like this:

NewCI->setAttrubutes(0, CI->getAttributes(0))

Maybe you can help me?

Tue, Aug 20, 11:53 AM
jdoerfert updated the diff for D66484: [Attributor][NFCI] Avoid lookups when resolving returned values.

Remove accidentally included code

Tue, Aug 20, 10:16 AM · Restricted Project
jdoerfert added inline comments to D66155: [Attributor] Liveness for internal functions..
Tue, Aug 20, 10:16 AM · Restricted Project
jdoerfert created D66484: [Attributor][NFCI] Avoid lookups when resolving returned values.
Tue, Aug 20, 10:07 AM · Restricted Project
jdoerfert added a comment to D53342: [SimplifyLibCalls] Mark known arguments with nonnull.

Can you use ` (three backticks) to enclose the code regions for better formatting?

Tue, Aug 20, 7:47 AM

Mon, Aug 19

jdoerfert committed rG12cbbab9d936: [Attributor] Create abstract attributes on-demand (authored by jdoerfert).
[Attributor] Create abstract attributes on-demand
Mon, Aug 19, 11:17 PM
jdoerfert committed rL369331: [Attributor] Create abstract attributes on-demand.
[Attributor] Create abstract attributes on-demand
Mon, Aug 19, 11:17 PM
jdoerfert closed D66276: [Attributor] Create abstract attributes on-demand.
Mon, Aug 19, 11:17 PM · Restricted Project
jdoerfert committed rG169af994bcd6: [Attributor][NFC] Cleanup statistics code (authored by jdoerfert).
[Attributor][NFC] Cleanup statistics code
Mon, Aug 19, 11:11 PM
jdoerfert committed rGcfcca1a5b12d: [Attributor] Use structured deduction for AADereferenceable (authored by jdoerfert).
[Attributor] Use structured deduction for AADereferenceable
Mon, Aug 19, 11:11 PM
jdoerfert committed rL369330: [Attributor][NFC] Cleanup statistics code.
[Attributor][NFC] Cleanup statistics code
Mon, Aug 19, 11:11 PM
jdoerfert committed rL369329: [Attributor] Use structured deduction for AADereferenceable.
[Attributor] Use structured deduction for AADereferenceable
Mon, Aug 19, 11:11 PM
jdoerfert closed D66272: [Attributor] Use structured deduction for AADereferenceable.
Mon, Aug 19, 11:10 PM · Restricted Project
jdoerfert committed rGb9b8791fedea: [Attributor] Use structured deduction for AANonNull (authored by jdoerfert).
[Attributor] Use structured deduction for AANonNull
Mon, Aug 19, 11:03 PM
jdoerfert committed rL369328: [Attributor] Use structured deduction for AANonNull.
[Attributor] Use structured deduction for AANonNull
Mon, Aug 19, 11:02 PM
jdoerfert closed D66128: [Attributor] Use structured deduction for AANonNull.
Mon, Aug 19, 11:02 PM · Restricted Project
jdoerfert committed rG028b2aa56a62: [Attributor] Fix the "clamp" operator (authored by jdoerfert).
[Attributor] Fix the "clamp" operator
Mon, Aug 19, 10:58 PM
jdoerfert committed rL369327: [Attributor] Fix the "clamp" operator.
[Attributor] Fix the "clamp" operator
Mon, Aug 19, 10:58 PM
jdoerfert added inline comments to D53342: [SimplifyLibCalls] Mark known arguments with nonnull.
Mon, Aug 19, 10:09 PM
jdoerfert updated the diff for D66157: [BasicAA] Use dereferenceability to reason about aliasing.

Fix typo and add baseline tests

Mon, Aug 19, 10:04 PM · Restricted Project
jdoerfert created D66461: [CaptureTracker] Comparisons of allocation pointers do not capture.
Mon, Aug 19, 9:53 PM · Restricted Project
jdoerfert committed rG8b962f281499: [CaptureTracker] Let subclasses provide dereferenceability information (authored by jdoerfert).
[CaptureTracker] Let subclasses provide dereferenceability information
Mon, Aug 19, 2:58 PM
jdoerfert committed rL369305: [CaptureTracker] Let subclasses provide dereferenceability information.
[CaptureTracker] Let subclasses provide dereferenceability information
Mon, Aug 19, 2:56 PM