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 (340 w, 1 d)

Recent Activity

Today

jdoerfert added a comment to D84220: [IPSCCP] Fix a bug that the "returned" attribute is not cleared when function is optimized to return undef.

The assertion doesn't work alone. I would still prefer not to skip over non-call sites blindly. @fhahn in addition to blockaddr users, do we expect anything else? We can skip those just fine.

Fri, Aug 7, 12:14 PM · Restricted Project, Restricted Project
jdoerfert added a comment to D85522: [Loads] Globals are dereferenceable, if offset + size <= sizeof(global)..

IIRC, not all globals are dereferenceable and we have to look at the linkage. Could be wrong though.

Fri, Aug 7, 12:11 PM · Restricted Project
jdoerfert added a comment to D75384: OpenMP for loop fusion.

Also clang format the patch please.

Fri, Aug 7, 10:11 AM · Restricted Project
jdoerfert accepted D84220: [IPSCCP] Fix a bug that the "returned" attribute is not cleared when function is optimized to return undef.

This diff is only against the last version, squash the commits locally before merging them into master. LGTM, apologies for the long time this took.

Fri, Aug 7, 8:25 AM · Restricted Project, Restricted Project

Yesterday

jdoerfert added inline comments to D84220: [IPSCCP] Fix a bug that the "returned" attribute is not cleared when function is optimized to return undef.
Thu, Aug 6, 7:21 PM · Restricted Project, Restricted Project
jdoerfert accepted D85178: [Attributor] Check violation of returned position nonnull and noundef attribute in AAUndefinedBehavior.

LGTM

Thu, Aug 6, 7:20 PM · Restricted Project
jdoerfert added a comment to D82317: [Clang/Test]: Update tests where `noundef` attribute is necessary.

Are you seriously adding an attribute to literally every argument and return value? Why is this the right representation?

Thu, Aug 6, 1:09 PM · Restricted Project
jdoerfert added inline comments to D84347: [MLIR,OpenMP] Lowering of parallel operation: proc_bind clause 2/n.
Thu, Aug 6, 1:07 PM · Restricted Project, Restricted Project, Restricted Project
jdoerfert added a comment to D85393: [WIP] [IR] Adding noprogress as a LLVM IR attribute.

Either should do the trick after a while given that all optimizations need to preserve/handle attribute already, you cannot just drop them and so noprogress should be sufficient.

Ah, I thought so far attributes were always safe to drop. If that is not the case, what remains is the possible confusion on our side when having to talk about "noprogress" and no-"noprogress" functions, and the asymmetry with most (but seemingly not all) existing attributes.

Thu, Aug 6, 12:08 PM · Restricted Project
jdoerfert added a comment to D84519: [llvm-objdump][AMDGPU] Detect CPU string.

This seems to be related to the push of the cpu-id (aka. target-id) into other places as well: e.g., D84822, D80750, probably more.
I mentioned in those reviews already, this doesn't strike me as an "AMDGPU" feature at all.
We should start the discussions around missing functionality instead of adding AMDGPU workarounds in all these places...
One example is an IR module level target cpu and/or target feature, similar to target triple.

Thu, Aug 6, 12:02 PM · Restricted Project
jdoerfert requested changes to D84779: [AMDGPU] Add amdgpu specific loop threshold metadata.
Thu, Aug 6, 11:43 AM · Restricted Project
jdoerfert updated subscribers of D84779: [AMDGPU] Add amdgpu specific loop threshold metadata.

This is now patch number 3 or so that want's to introduce duplication of existing functionality for AMDGPU. This is an alarming trend. @gregrodgers

Thu, Aug 6, 11:43 AM · Restricted Project
jdoerfert added a comment to D80639: AMDGPU: Support non-entry block static sized allocas.

Is this still happening, I might have fixed the IRBuilder.

Thu, Aug 6, 9:39 AM · Restricted Project
jdoerfert accepted D85379: Reduce dropTriviallyDeadConstantArrays cumulative time percentage from 17% to 4%.

LGTM. Nice and small :) Thx!

Thu, Aug 6, 8:53 AM · Restricted Project
jdoerfert added a comment to D85393: [WIP] [IR] Adding noprogress as a LLVM IR attribute.

I am going solely off the description here as I am not familiar with LLVM internals. Looking forward to the LangRef update. :)

Great to see some progress (heh ;) is made on this, thanks Johannes! One thing made me curious though: if I understand correctly "noprogress" is a somewhat strange attribute in that *not* having this attribute promises that the function *will* "make progress"? That's the opposite from other attributes like "nounwind". Is it not possible to instead have a "progress" or "nodiverge" attribute which promises that the function *will* make progress / will not diverge (in the sense of running infinitely without any side-effect)? I imagine the attribute could be added by default when loading old bitcode to preserve semantics (but dropping the attribute is safe so this would only be crucial for performance, not for correctness).

Thu, Aug 6, 8:51 AM · Restricted Project
jdoerfert added inline comments to D85099: [UpdateTestChecks] Match unnamed values like "@[0-9]+" and "![0-9]+".
Thu, Aug 6, 8:42 AM · Restricted Project

Wed, Aug 5

jdoerfert added a comment to D85184: [Attributor][WIP] Deduce noundef attribute.

I made D85345.

Wed, Aug 5, 9:03 PM · Restricted Project
jdoerfert added reviewers for D85393: [WIP] [IR] Adding noprogress as a LLVM IR attribute: efriedma, spatel, nlopes, aqjune.

This was quick, we need to write an RFC now ;). For this we should probably write the lang ref part too.
We should also mention somewhere this is the first step to properly fix PR965 and make the llvm.sideeffect obsolete (for this use case).

Wed, Aug 5, 8:56 PM · Restricted Project
jdoerfert added a comment to D85379: Reduce dropTriviallyDeadConstantArrays cumulative time percentage from 17% to 4%.

What is "cl/324220676" and how to I see it?

Wed, Aug 5, 8:49 PM · Restricted Project
jdoerfert added inline comments to D84220: [IPSCCP] Fix a bug that the "returned" attribute is not cleared when function is optimized to return undef.
Wed, Aug 5, 8:36 PM · Restricted Project, Restricted Project
jdoerfert added inline comments to D85345: [BuildLibCalls] Add noundef to standard I/O functions.
Wed, Aug 5, 8:32 PM · Restricted Project
jdoerfert resigned from D85370: [mlir][Attribute] Remove usages of Attribute::getKind.

wrong attribute file ;)

Wed, Aug 5, 8:29 PM · Restricted Project
jdoerfert requested changes to D84822: Add target ID to AMDGPU documentation.

The commit does not have a message, contains unrelated parts, and is still not addressing my issues wrt. the description of common functionality as AMDGPU functionality.

Wed, Aug 5, 8:28 PM · Restricted Project
jdoerfert accepted D85353: [libomptarget][NFC] Replace `%ld` with PRId64 for data of type int64_t..

LGTM. thx

Wed, Aug 5, 1:27 PM · Restricted Project
jdoerfert added inline comments to D84822: Add target ID to AMDGPU documentation.
Wed, Aug 5, 8:46 AM · Restricted Project
jdoerfert added a comment to D85299: [llvm] Support autoloading vendor-defined plugins.

[DriveBy] We should test this ;)

Wed, Aug 5, 8:24 AM · Restricted Project
jdoerfert added inline comments to D84822: Add target ID to AMDGPU documentation.
Wed, Aug 5, 7:56 AM · Restricted Project

Tue, Aug 4

jdoerfert added inline comments to D81054: [OpenMP] Introduce target memory manager.
Tue, Aug 4, 11:40 PM · Restricted Project
jdoerfert added a comment to D85184: [Attributor][WIP] Deduce noundef attribute.

Note: @aqjune, and @okura We should also seed noundef in the intrinsics and especially known library functions definitions. I mean, malloc is not returning a undef or poison value (I hope), and free is not accepting one.

BuildLibCalls.cpp 's inferLibFuncAttributes seems to be the right place for this?
I'll start with adding noundef to return values of library functions.

Tue, Aug 4, 11:32 PM · Restricted Project
jdoerfert added inline comments to D80816: [OpenMP] Add unbundling of archives containing bundled object files into device specific archives..
Tue, Aug 4, 8:30 PM · Restricted Project, Restricted Project
jdoerfert added inline comments to D82703: [InstCombine] convert assumes to operand bundles.
Tue, Aug 4, 5:37 PM · Restricted Project
jdoerfert added inline comments to D80816: [OpenMP] Add unbundling of archives containing bundled object files into device specific archives..
Tue, Aug 4, 4:40 PM · Restricted Project, Restricted Project
jdoerfert added a comment to D85246: [OpenMP] Fix `omp target update` for array extension.

Maybe change the commit title to OpenMP to confuse less people.

Tue, Aug 4, 4:36 PM · Restricted Project
jdoerfert added inline comments to D85099: [UpdateTestChecks] Match unnamed values like "@[0-9]+" and "![0-9]+".
Tue, Aug 4, 2:49 PM · Restricted Project
jdoerfert added a comment to D85184: [Attributor][WIP] Deduce noundef attribute.

Note: @aqjune, and @okura We should also seed noundef in the intrinsics and especially known library functions definitions. I mean, malloc is not returning a undef or poison value (I hope), and free is not accepting one.

Tue, Aug 4, 7:46 AM · Restricted Project
jdoerfert added a reviewer for D85210: [OpenMP] Don't use MSVC workaround with MinGW: AndreyChurbanov.

This looks fine to me but it doesn't impact me at all TBH.

Tue, Aug 4, 7:42 AM · Restricted Project
jdoerfert added a comment to D85178: [Attributor] Check violation of returned position nonnull and noundef attribute in AAUndefinedBehavior.

There is a typo in your subject line [Attributor].

Tue, Aug 4, 7:40 AM · Restricted Project
jdoerfert added inline comments to D85099: [UpdateTestChecks] Match unnamed values like "@[0-9]+" and "![0-9]+".
Tue, Aug 4, 5:18 AM · Restricted Project
jdoerfert added a comment to D85184: [Attributor][WIP] Deduce noundef attribute.

Forgot to say, this is really cool :) I'll take a closer look in a bit.

Tue, Aug 4, 5:13 AM · Restricted Project
jdoerfert added inline comments to D85184: [Attributor][WIP] Deduce noundef attribute.
Tue, Aug 4, 5:12 AM · Restricted Project

Mon, Aug 3

jdoerfert added inline comments to D81054: [OpenMP] Introduce target memory manager.
Mon, Aug 3, 3:47 PM · Restricted Project
jdoerfert added a comment to D84844: [OpenMP] Ensure testing for versions 4.5 and default - Part 1.

I think this is good. Let's see if there are objections

Mon, Aug 3, 2:19 PM · Restricted Project
jdoerfert added inline comments to D85131: [NFC][APInt][DenseMapInfo] Move DenseMapAPIntKeyInfo into DenseMap.h as DenseMapInfo<APInt>.
Mon, Aug 3, 9:40 AM · Restricted Project
jdoerfert accepted D85131: [NFC][APInt][DenseMapInfo] Move DenseMapAPIntKeyInfo into DenseMap.h as DenseMapInfo<APInt>.

LGTM, thx

Mon, Aug 3, 7:28 AM · Restricted Project
jdoerfert resigned from D82317: [Clang/Test]: Update tests where `noundef` attribute is necessary.

@jdoerfert what would the procedure be for reviewing these test changes / getting this landed with the noundef patch?

Mon, Aug 3, 12:06 AM · Restricted Project
jdoerfert accepted D84733: [Attributor] Check nonnull attribute violation in AAUndefinedBehavior.

LGTM. Some minor nits below. I guess this doesn't affect other tests because of the noundef restriction. We should really derive that one as well.

Mon, Aug 3, 12:02 AM · Restricted Project

Sun, Aug 2

jdoerfert added a comment to D85099: [UpdateTestChecks] Match unnamed values like "@[0-9]+" and "![0-9]+".

Will update the clang tests shortly.

Sun, Aug 2, 2:32 PM · Restricted Project
jdoerfert added a comment to D82822: [OpenMP][FIX] Consistently use OpenMPIRBuilder if requested.

@davezarzycki The bots reported this as well, didn't build MLIR locally, this should have been fixed by 4d83aa4771d84940626d86c883193af390812281

I was seeing the same issue with what @davezarzycki has encountered. Not sure why this is related to MLIR. The failure is cause by this line:

74: // CHECK-DEBUG-NEXT:    [[OMP_GLOBAL_THREAD_NUM:%.*]] = call i32 @__kmpc_global_thread_num(%struct.ident_t* **@12**), !dbg !{{[0-9]*}}

where @12 is supposed to be defined as

@11 = private unnamed_addr constant [90 x i8] c";llvm-project/clang/test/OpenMP/irbuilder_nested_parallel_for.c;parallel_for_1;85;1;;\00", align 1
@12 = private unnamed_addr global %struct.ident_t { i32 0, i32 2, i32 0, i32 0, i8* getelementptr inbounds ([90 x i8], [90 x i8]* @11, i32 0, i32 0) }, align 8

The exact match of @12 seems a bit fragile to me since global data names could be changed from time to time. Can you please make it bit more robust? Thank

Sun, Aug 2, 1:27 PM · Restricted Project
jdoerfert updated the summary of D85099: [UpdateTestChecks] Match unnamed values like "@[0-9]+" and "![0-9]+".
Sun, Aug 2, 1:24 PM · Restricted Project
jdoerfert requested review of D85099: [UpdateTestChecks] Match unnamed values like "@[0-9]+" and "![0-9]+".
Sun, Aug 2, 1:21 PM · Restricted Project

Sat, Aug 1

jdoerfert added a comment to D85052: [OpenMPOpt] ICV Tracking Between BasicBlocks.

Follow up with the interprocedural replacement sounds good.

Sat, Aug 1, 10:13 PM · Restricted Project

Fri, Jul 31

jdoerfert added a comment to D85052: [OpenMPOpt] ICV Tracking Between BasicBlocks.

This is still "intra-procedural", correct? Or can it replace across function boundaries too?

Fri, Jul 31, 7:46 PM · Restricted Project
jdoerfert accepted D85065: [Attributor][NFC] Update description for the dependency graph.

LGTM

Fri, Jul 31, 7:34 PM · Restricted Project
jdoerfert added inline comments to D84347: [MLIR,OpenMP] Lowering of parallel operation: proc_bind clause 2/n.
Fri, Jul 31, 3:28 PM · Restricted Project, Restricted Project, Restricted Project
jdoerfert updated subscribers of D84906: [NFC] Use GetUnderlyingObjects in findAllocaForValue.
Fri, Jul 31, 10:48 AM · Restricted Project
jdoerfert added a comment to D82822: [OpenMP][FIX] Consistently use OpenMPIRBuilder if requested.

@davezarzycki The bots reported this as well, didn't build MLIR locally, this should have been fixed by 4d83aa4771d84940626d86c883193af390812281

Fri, Jul 31, 9:02 AM · Restricted Project

Thu, Jul 30

jdoerfert accepted D20758: Support addrspacecast initializers with isNoopAddrSpaceCast.

LGTM, one nit below

Thu, Jul 30, 10:36 PM · Restricted Project
jdoerfert added a comment to D84996: [OpenMP] Fixed the issue that target memory deallocation might be called when they're being used.

[Drive By]

Thu, Jul 30, 10:28 PM · Restricted Project
jdoerfert added a comment to D84220: [IPSCCP] Fix a bug that the "returned" attribute is not cleared when function is optimized to return undef.

Regarding the semantics of the "returned" attribute: I am very interested in your above-mentioned discussions on the semantics of the "returned" attribute, to be honest however, I did not quite follow and understand them. Would you please clarify them a little bit more, like what do you think should be the correct and incorrect semantics of "returned" ? Thank you!

Thu, Jul 30, 5:23 PM · Restricted Project, Restricted Project
jdoerfert accepted D83283: [Attributor] AAPotentialValues Interface.

Don't worry about the other test, master is sometimes broken as well. I left one comment for a follow up patch and one comment for a cleanup to avoid code duplication we have now.
Assuming that can be done without problems prior to committing this, the patch looks good to me :)

Thu, Jul 30, 5:19 PM · Restricted Project
jdoerfert added a comment to D84980: [Attributor] Add time trace support..

I am not sure if we want to go that route, maybe we land this patch like this for now and if we have hard time interpreting this data, we can add that later ?

Thu, Jul 30, 2:20 PM · Restricted Project
jdoerfert accepted D84980: [Attributor] Add time trace support..

Really cool :) LGTM

Thu, Jul 30, 1:42 PM · Restricted Project
jdoerfert added a comment to D84220: [IPSCCP] Fix a bug that the "returned" attribute is not cleared when function is optimized to return undef.

FWIW, I don't try to block this. The call site attribute comment is not addressed but other than that this patch "makes sense" assuming we keep the current semantics.

Thu, Jul 30, 1:09 PM · Restricted Project, Restricted Project
jdoerfert committed rG4d83aa4771d8: [MLIR][OpenMP] Fix OpenMPIRBuilder usage after D82470 (authored by jdoerfert).
[MLIR][OpenMP] Fix OpenMPIRBuilder usage after D82470
Thu, Jul 30, 9:57 AM
jdoerfert added inline comments to D84906: [NFC] Use GetUnderlyingObjects in findAllocaForValue.
Thu, Jul 30, 9:18 AM · Restricted Project
jdoerfert committed rGebad64dfe133: [OpenMP][FIX] Consistently use OpenMPIRBuilder if requested (authored by jdoerfert).
[OpenMP][FIX] Consistently use OpenMPIRBuilder if requested
Thu, Jul 30, 8:22 AM
jdoerfert committed rG19756ef53a49: [OpenMP][IRBuilder] Support allocas in nested parallel regions (authored by jdoerfert).
[OpenMP][IRBuilder] Support allocas in nested parallel regions
Thu, Jul 30, 8:21 AM
jdoerfert closed D82822: [OpenMP][FIX] Consistently use OpenMPIRBuilder if requested.
Thu, Jul 30, 8:21 AM · Restricted Project
jdoerfert closed D82470: [OpenMP][IRBuilder] Support allocas in nested parallel regions.
Thu, Jul 30, 8:21 AM · Restricted Project, Restricted Project

Wed, Jul 29

jdoerfert added inline comments to D83738: [Attributor]Introduce call base context argument pathway..
Wed, Jul 29, 9:16 PM · Restricted Project
jdoerfert added a comment to D80750: llvm-link: Add module flag behavior MergeTargetID.

I believe there are three things in this patch, but feel free to correct me:

  1. A way to specify a target triple + cpu. Basically like target triple = ... but in the module metadata plus some additional target cpu suffix, which is so far in the target-cpu function attribute list.
  2. A way to specify global target features, which are so far in the target-features function attribute list.
  3. Making llvm-link aware of 1) and 2) and verifying they match (under some rules).

If this is the case, what is the benefit over a toplevel module entry that allows you to specify target-cpu and target-feature for the entire module? I mean, they seem to be very much the same thing as target triple, yet we go a totally different route to add them and verify the match during linking. I believe other people might benefit from this, e.g., to get rid of function-level attributes, so we should shoot for a generic solution.

The matching and merging rule we want to apply to the target features in target ID is not generic for arbitrary target features. We can apply these rules to target features only if they appear in a target ID.

Wed, Jul 29, 7:07 PM · Restricted Project
jdoerfert added inline comments to D84822: Add target ID to AMDGPU documentation.
Wed, Jul 29, 7:04 PM · Restricted Project
jdoerfert added a comment to D84220: [IPSCCP] Fix a bug that the "returned" attribute is not cleared when function is optimized to return undef.

The current definition of "returned" in LangRef is unclear, yes.

In terms of what we actually want, the "must be equal or else instant UB" variation seems more useful than the "must be equal or poison" variation. With "must be equal or poison", basically the only legal optimization is replacing the result with the argument.

I always thought that was the purpose. Could you elaborate what else we want to do?

Would poison limit the way we can use other information for the returned value, e.g. range information?

For example, consider the (arguably a bit contrived) code below. We know that %limit is [0, 2), not poison, and that it is UB for @foo to return anything other than %limit. It should be legal to replace %res with %r.f. https://alive2.llvm.org/ce/z/NrdV6x

But can we do the same transform if @foo returns poison instead of immediate UB on an invalid return value? In case it returned poison, %r.f would be any i4, while in the original function it would be in the range [0, 2).

declare i4 @foo(i4 returned %arg)

define i4 @src(i4 %x) {
  %x.f = freeze i4 %x
  %limit = and i4 %x.f, 1
  %r = call i4 @foo(i4 %limit)
  %r.f = freeze i4 %r
  %res = and i4 %r.f, 1
  ret i4 %res
}
Wed, Jul 29, 2:52 PM · Restricted Project, Restricted Project
jdoerfert committed rGb08abf4c808e: [OpenMP] Fix D83281 issue on windows by allowing `dso_local` in CHECK [2/1] (authored by jdoerfert).
[OpenMP] Fix D83281 issue on windows by allowing `dso_local` in CHECK [2/1]
Wed, Jul 29, 1:50 PM
jdoerfert added a comment to D83281: [OpenMP] Allow traits for the OpenMP context selector `isa`.

Looks like it's still failing with that change: http://45.33.8.238/win/20885/step_7.txt

Wed, Jul 29, 1:47 PM · Restricted Project, Restricted Project
jdoerfert added a comment to D83281: [OpenMP] Allow traits for the OpenMP context selector `isa`.

This breaks check-clang on Windows: http://45.33.8.238/win/20850/step_7.txt

Please take a look, and revert while you investigate if it takes a while to fix.

Wed, Jul 29, 1:22 PM · Restricted Project, Restricted Project
jdoerfert committed rG8723280b68b1: [OpenMP] Fix D83281 issue on windows by allowing `dso_local` in CHECK (authored by jdoerfert).
[OpenMP] Fix D83281 issue on windows by allowing `dso_local` in CHECK
Wed, Jul 29, 1:21 PM
jdoerfert updated subscribers of D84860: [LangRef] Add uniqueptr attribute..

As discussed on IRC, I think noalias is actually what you want. Storing a pointer and loading it does *not* break the "based on" relationship (https://llvm.org/docs/LangRef.html#pointeraliasing). We might want to clarify the rules though.

Wed, Jul 29, 9:30 AM · Restricted Project
jdoerfert committed rGee05167cc42b: [OpenMP] Allow traits for the OpenMP context selector `isa` (authored by jdoerfert).
[OpenMP] Allow traits for the OpenMP context selector `isa`
Wed, Jul 29, 8:24 AM
jdoerfert closed D83281: [OpenMP] Allow traits for the OpenMP context selector `isa`.
Wed, Jul 29, 8:24 AM · Restricted Project, Restricted Project
jdoerfert committed rG7db017bf3405: [OpenMP][Docs] Update Clang Support docs after D75591 (authored by jdoerfert).
[OpenMP][Docs] Update Clang Support docs after D75591
Wed, Jul 29, 8:23 AM
jdoerfert added a comment to rGe2f5444c9ce2: [OpenMP][Tests] Enable nvptx64 testing for most libomptarget tests.

THX!

Wed, Jul 29, 7:01 AM
jdoerfert added a comment to D83636: omp: Make OMP tablegen more like all other tablegens..

@jdoerfert Any comments?

Wed, Jul 29, 6:07 AM · Restricted Project
jdoerfert added a comment to D84751: [Attributor][Not for commit] Make call site specific deduction default..

I looked at some and we need to check what is happening.

Wed, Jul 29, 5:17 AM · Restricted Project

Tue, Jul 28

jdoerfert added inline comments to D84743: [Clang][AMDGCN] Universal device offloading macros header.
Tue, Jul 28, 11:23 PM · Restricted Project
jdoerfert added a comment to D84743: [Clang][AMDGCN] Universal device offloading macros header.
In D84743#2179441, @tra wrote:

I'm not sure it's particularly useful, to be honest. CUDA code still needs to be compatible with NVCC so it can't be used in portable code like TF or other currently used CUDA libraries.
It could be useful internally, though, so I'm fine with it for that purpose.

FWIW, I was only thinking about clang/lib/Header usage. *Potentially* documented for user of clang.

Honestly I am a bit uneasy with the new clang/lib/Header file. It will be part of the clang resource directory and users on every target will be able to #include <offload_macros.h> it.
This is also a namespace pollution - used incorrectly, people can trip over it if they have files of the same name.

Tue, Jul 28, 11:22 PM · Restricted Project
jdoerfert added inline comments to D83635: [OpenMPOpt][WIP] Merge parallel regions.
Tue, Jul 28, 10:39 PM · Restricted Project
jdoerfert added a comment to D83281: [OpenMP] Allow traits for the OpenMP context selector `isa`.

ping :)

Tue, Jul 28, 10:37 PM · Restricted Project, Restricted Project
jdoerfert added a comment to D84722: [Attributor] Call site specific AAValueSimplification and AAIsDead..

Can you, maybe as a separate patch, run the update script with the call site deduction enabled *before* this patch and *after* to get the difference on all tests we have?

Tue, Jul 28, 10:36 PM · Restricted Project
jdoerfert added a comment to D84743: [Clang][AMDGCN] Universal device offloading macros header.
In D84743#2179441, @tra wrote:

I'm not sure it's particularly useful, to be honest. CUDA code still needs to be compatible with NVCC so it can't be used in portable code like TF or other currently used CUDA libraries.
It could be useful internally, though, so I'm fine with it for that purpose.

Tue, Jul 28, 10:30 PM · Restricted Project
jdoerfert added a comment to D84665: [Attributor] Implement AAReachability.

Thanks for working on this! Reachability should be used more and with an actual optimistic implementation it makes sense. The next user (in addition to AANoAlias) could be value simplification, for load/store simplification. Similarly to the noalias case we can preserve other properties for a program point if it is not reachable from all potential violations (I am thinking a use of a dereferenceable argument that cannot be reached from a function call that is not nofree. This makes sense once we split dereferenceable_globally from dereferenceable.) Let's get this in first though ;)

Tue, Jul 28, 10:25 PM · Restricted Project
jdoerfert accepted D84813: [NewPM][Attributor] Pin tests with -attributor to legacy PM.

LGTM, assuming this is NFC and gets us closer to the NPM default :)

Tue, Jul 28, 8:25 PM · Restricted Project
jdoerfert added a comment to D84220: [IPSCCP] Fix a bug that the "returned" attribute is not cleared when function is optimized to return undef.

The current definition of "returned" in LangRef is unclear, yes.

In terms of what we actually want, the "must be equal or else instant UB" variation seems more useful than the "must be equal or poison" variation. With "must be equal or poison", basically the only legal optimization is replacing the result with the argument.

Tue, Jul 28, 3:56 PM · Restricted Project, Restricted Project
jdoerfert committed rG450dc09d69df: [SROA][Mem2Reg] Use efficient droppable use API (after D83976) (authored by jdoerfert).
[SROA][Mem2Reg] Use efficient droppable use API (after D83976)
Tue, Jul 28, 3:43 PM
jdoerfert closed D84804: [SROA][Mem2Reg] Use efficient droppable use API (after D83976).
Tue, Jul 28, 3:43 PM · Restricted Project
jdoerfert added inline comments to D84804: [SROA][Mem2Reg] Use efficient droppable use API (after D83976).
Tue, Jul 28, 3:23 PM · Restricted Project
jdoerfert added inline comments to D84804: [SROA][Mem2Reg] Use efficient droppable use API (after D83976).
Tue, Jul 28, 3:23 PM · Restricted Project
jdoerfert added a comment to D80750: llvm-link: Add module flag behavior MergeTargetID.

I believe there are three things in this patch, but feel free to correct me:

Tue, Jul 28, 3:15 PM · Restricted Project
jdoerfert added inline comments to D83976: [Mem2Reg] Teach promote to register about droppable instructions.
Tue, Jul 28, 2:58 PM · Restricted Project
jdoerfert requested review of D84804: [SROA][Mem2Reg] Use efficient droppable use API (after D83976).
Tue, Jul 28, 2:56 PM · Restricted Project