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 (385 w, 10 h)

Recent Activity

Today

jdoerfert accepted D104416: [Attributor] Add an option to increase the max number of iterations.

Go higher for GPUs, 128 or so. And we really need a metadata check to avoid looking for kernels.

Thu, Jun 17, 5:22 PM · Restricted Project
jdoerfert updated the diff for D103856: [Attributor] Introduce a helper do deal with constant type mismatches.

Rebase + address comment

Thu, Jun 17, 11:19 AM · Restricted Project
jdoerfert updated the diff for D101976: [OpenMP] Unified entry point for SPMD & generic kernels in the device RTL.

Fix tests

Thu, Jun 17, 10:06 AM · Restricted Project, Restricted Project, Restricted Project
jdoerfert updated the diff for D98608: [Attributor] Make sure Heap2Stack works properly on a GPU target.

address reviews

Thu, Jun 17, 9:21 AM · Restricted Project
jdoerfert added inline comments to D103856: [Attributor] Introduce a helper do deal with constant type mismatches.
Thu, Jun 17, 9:00 AM · Restricted Project
jdoerfert updated the diff for D103861: [Attributor] Look through selects in genericValueTraversal.

Improve according to feedback

Thu, Jun 17, 7:23 AM · Restricted Project
jdoerfert added inline comments to D103856: [Attributor] Introduce a helper do deal with constant type mismatches.
Thu, Jun 17, 6:43 AM · Restricted Project
jdoerfert accepted D104059: [Attributor] Derive AACallEdges attribute.

LGTM, some nits. Thanks for fixing this up so quickly.

Thu, Jun 17, 6:38 AM · Restricted Project

Yesterday

jdoerfert updated the diff for D104432: [Attributor] Introduce AAPointerInfo.

Rebase

Wed, Jun 16, 8:38 PM · Restricted Project
jdoerfert added a comment to D102107: [OpenMP] Codegen aggregate for outlined function captures.

We used this kind of codegen initially but later found out that it causes a large overhead when gathering pointers into a record. What about hybrid scheme where the first args are passed as arguments and others (if any) are gathered into a record?

Wed, Jun 16, 8:38 PM · Restricted Project, Restricted Project
jdoerfert updated the diff for D103862: [Attributor] Simplify loads.

Introduc a helper

Wed, Jun 16, 8:20 PM · Restricted Project
jdoerfert added a comment to D103860: [Attributor] Use AAValueSimplify to simplify returned values.

ping

Wed, Jun 16, 7:35 PM · Restricted Project
jdoerfert added a comment to D103858: [Attributor][FIX] Traverse uses even if a value is assumed constant.

ping

Wed, Jun 16, 7:15 PM · Restricted Project
jdoerfert added a comment to D103857: [Attributor] Introduce a helper function to deal with undef + none.

ping

Wed, Jun 16, 7:13 PM · Restricted Project
jdoerfert updated the diff for D103856: [Attributor] Introduce a helper do deal with constant type mismatches.

Address review

Wed, Jun 16, 7:11 PM · Restricted Project
jdoerfert requested review of D104432: [Attributor] Introduce AAPointerInfo.
Wed, Jun 16, 6:53 PM · Restricted Project
jdoerfert added a comment to D104418: [PoC][WIP][OpenMP][Offloading] Fixed data race in libomptarget caused by async data movement.

I don't understand why we have an event in the async_info object at all. I would have assumed only to have some plugin specific "lock" in the table.

Wed, Jun 16, 5:10 PM · Restricted Project
jdoerfert added a comment to D104059: [Attributor] Derive AACallEdges attribute.

Can you add a test case with a callback and one with an unknown function pointer call. Maybe also one with a function pointer and callee metadata + a FIXME.

Wed, Jun 16, 2:58 PM · Restricted Project
jdoerfert added a comment to D104059: [Attributor] Derive AACallEdges attribute.

More comments, also, please fix the clang tidy warnings, they make it hard to read.

Wed, Jun 16, 11:19 AM · Restricted Project
jdoerfert added a comment to D102107: [OpenMP] Codegen aggregate for outlined function captures.

(answered now, I forgot to submit this yesterday -.- )

Wed, Jun 16, 7:12 AM · Restricted Project, Restricted Project

Mon, Jun 14

jdoerfert added a comment to D104013: [LangRef] State that the based-on relation is for pointer typed values only.

This makes sense to me, wording seems to be alright, though it's late. Thx for working on this!

Mon, Jun 14, 10:12 PM · Restricted Project
jdoerfert added inline comments to D104059: [Attributor] Derive AACallEdges attribute.
Mon, Jun 14, 9:30 PM · Restricted Project
jdoerfert added inline comments to D104013: [LangRef] State that the based-on relation is for pointer typed values only.
Mon, Jun 14, 9:14 PM · Restricted Project
jdoerfert accepted D104258: [OPENMP]Fix PR50699: capture locals in combine directrives for aligned clause..

LG

Mon, Jun 14, 2:23 PM · Restricted Project
jdoerfert added a comment to D103316: Hoist llvm.assume into single predecessor if block otherwise empty.

I thought the problem was that a block with an assume caused us to miss out on some backed optimization.
The proposed solution was to eliminate blocks that only contain an assume as side effect early as middle-end
optimizations would also benefit from a simplified CFG.

Mon, Jun 14, 11:47 AM · Restricted Project
jdoerfert accepted D104240: [OPENMP][C++20]Add support for CXXRewrittenBinaryOperator in ranged for loops..

LG, thanks

Mon, Jun 14, 11:06 AM · Restricted Project

Sun, Jun 13

jdoerfert added inline comments to D104059: [Attributor] Derive AACallEdges attribute.
Sun, Jun 13, 2:21 PM · Restricted Project
jdoerfert added inline comments to D104059: [Attributor] Derive AACallEdges attribute.
Sun, Jun 13, 10:46 AM · Restricted Project

Sat, Jun 12

jdoerfert added a comment to D101977: [OpenMP] Create custom state machines for generic target regions.

ping?

Sat, Jun 12, 3:10 PM · Restricted Project

Fri, Jun 11

jdoerfert added inline comments to D103861: [Attributor] Look through selects in genericValueTraversal.
Fri, Jun 11, 11:14 AM · Restricted Project

Thu, Jun 10

jdoerfert added inline comments to D103861: [Attributor] Look through selects in genericValueTraversal.
Thu, Jun 10, 8:50 PM · Restricted Project
jdoerfert added a comment to D103862: [Attributor] Simplify loads.

The code for the AAPotentialValues and AAValueSimplify is the same. Maybe we could move this to a separate function with a callback for doing the unions ?

Thu, Jun 10, 6:28 PM · Restricted Project
jdoerfert added inline comments to D103861: [Attributor] Look through selects in genericValueTraversal.
Thu, Jun 10, 6:26 PM · Restricted Project
jdoerfert added inline comments to D103856: [Attributor] Introduce a helper do deal with constant type mismatches.
Thu, Jun 10, 3:25 PM · Restricted Project
jdoerfert added inline comments to D103861: [Attributor] Look through selects in genericValueTraversal.
Thu, Jun 10, 3:12 PM · Restricted Project
jdoerfert added a comment to D104059: [Attributor] Derive AACallEdges attribute.

Can you please reupload after clang formatting the code :)

Thu, Jun 10, 2:56 PM · Restricted Project
jdoerfert added a comment to D99784: [LICM] Hoist loads with invariant.group metadata.

// Loads/stores with an invariant.group metadata are ok to hoist/sink.

Thu, Jun 10, 2:07 PM · Restricted Project
jdoerfert added a comment to D103907: [LV] Parallel annotated loop does not imply all loads can be hoisted..

FWIW, if someone adds documentation what #pragma clang loop vectorize(assume_safety) actually means (somewhere), we can go back and make it imply if-conversion. However, we should not conflate it with the access groups/parallel metadata. Instead, annotate loads as "speculatable" (or sth. similar) and we go with that.

Thu, Jun 10, 1:54 PM · Restricted Project
jdoerfert accepted D103907: [LV] Parallel annotated loop does not imply all loads can be hoisted..

This fixes a bug and people are in favor. If we need to add a new mechanism for this we can afterwards still. LGTM

Thu, Jun 10, 1:45 PM · Restricted Project

Wed, Jun 9

jdoerfert added inline comments to D103995: [OpenMP] Add type to firstprivate symbol for const firstprivate values.
Wed, Jun 9, 5:01 PM · Restricted Project
jdoerfert updated subscribers of D103958: [WIP] Support MustControl conditional control attribute.

This starts to sound an awful lot like convergent to me, basically: Do not change the control conditions of this call.
Still unsure, maybe you can add a LangRef draft so we know what you try to do, or a nice example what you don't want to happen.

Wed, Jun 9, 1:59 PM · Restricted Project, Restricted Project
jdoerfert added a comment to D103958: [WIP] Support MustControl conditional control attribute.

Please bear with me, I'm updating examples and documentation. I didn't think anybody would look at this while [WIP]. :-)

Wed, Jun 9, 1:42 PM · Restricted Project, Restricted Project
jdoerfert added a comment to D103958: [WIP] Support MustControl conditional control attribute.

The first talk from https://www.youtube.com/watch?v=FFjV9f_Ub9o (https://github.com/ClangBuiltLinux/plumbers-2020-slides/blob/master/LPC_2020_--_Dependency_ordering.pdf) might be helpful to link to at some point from the commit message, for a little additional context.

Wed, Jun 9, 12:32 PM · Restricted Project, Restricted Project
jdoerfert accepted D103975: [Attributor] Set floating point loads and stores as nofree in AANoFreeFloating.

LG, two nits

Wed, Jun 9, 11:08 AM · Restricted Project
jdoerfert added a comment to D103958: [WIP] Support MustControl conditional control attribute.

WIP here is fine, would help to include a test that shows/explains what problem is actually solved though. I don't understand form this patch alone.

Wed, Jun 9, 7:22 AM · Restricted Project, Restricted Project
jdoerfert added a comment to D93525: [clang-offload-bundler] Add unbundling of archives containing bundled object files into device specific archives.

Thanks for splitting this. I quickly went over it only.

Wed, Jun 9, 7:15 AM · Restricted Project

Tue, Jun 8

jdoerfert accepted D103770: Injection of kernel features into the LLVM IR during the OpenMP transform stage.

LG, one nit. Once the nit is resolved I can commit this for you.

Tue, Jun 8, 7:58 PM · Restricted Project
jdoerfert accepted D103927: [OpenMP] Add an information flag for device data transfers.

LG, one nit

Tue, Jun 8, 2:13 PM · Restricted Project
jdoerfert added a comment to D103770: Injection of kernel features into the LLVM IR during the OpenMP transform stage.

squash the commits so that we see the diff not from the last change but the entire change set

Tue, Jun 8, 7:17 AM · Restricted Project

Mon, Jun 7

jdoerfert updated the diff for D103862: [Attributor] Simplify loads.

Put in a little more to reduce the follow up size

Mon, Jun 7, 5:19 PM · Restricted Project
jdoerfert requested review of D103862: [Attributor] Simplify loads.
Mon, Jun 7, 5:00 PM · Restricted Project
jdoerfert requested review of D103861: [Attributor] Look through selects in genericValueTraversal.
Mon, Jun 7, 4:59 PM · Restricted Project
jdoerfert requested review of D103860: [Attributor] Use AAValueSimplify to simplify returned values.
Mon, Jun 7, 4:58 PM · Restricted Project
jdoerfert requested review of D103859: [Attributor] Introduce an optimistic getUnderlyingObjects helper.
Mon, Jun 7, 4:58 PM · Restricted Project
jdoerfert requested review of D103858: [Attributor][FIX] Traverse uses even if a value is assumed constant.
Mon, Jun 7, 4:56 PM · Restricted Project
jdoerfert requested review of D103857: [Attributor] Introduce a helper function to deal with undef + none.
Mon, Jun 7, 4:55 PM · Restricted Project
jdoerfert requested review of D103856: [Attributor] Introduce a helper do deal with constant type mismatches.
Mon, Jun 7, 4:53 PM · Restricted Project
jdoerfert added a comment to D103529: [OPENMP]Referencing a static function defined in declare variant is generating an erroneous warning..

Does this by any chance also fix https://bugs.llvm.org/show_bug.cgi?id=49650 ?

Mon, Jun 7, 7:15 AM
jdoerfert added a comment to D103316: Hoist llvm.assume into single predecessor if block otherwise empty.

We provide a function say bool isBlockEmptyExceptAssumes(BasicBlock *BB) and we update the decision making of all the existing CFG transformations to use that. We provide another function say void hoistAssumesFromBlockKnownToBeOtherwiseEmpty(BasicBlock *BB) that all those CFG transformations need to call during their transformation if they used that fact that any of the blocks checked out as true with the former function.

Now maybe there aren't that many CFG transformations where this is relevant and maybe it integrates easily, I don't know, but it does seem like a somewhat larger change.

Mon, Jun 7, 7:10 AM · Restricted Project

Sun, Jun 6

jdoerfert added a comment to D103770: Injection of kernel features into the LLVM IR during the OpenMP transform stage.

Some minor thing but overall this looks sensible.

Sun, Jun 6, 12:32 PM · Restricted Project

Fri, Jun 4

jdoerfert added a comment to D103316: Hoist llvm.assume into single predecessor if block otherwise empty.

This kind of transformation should probably eventually reside in lib/Transforms/Utils/SimplifyCFG.cpp but for now it seemed easier and a smaller change to just leave it in CodeGenPrepare.

I don't think this transform makes a lot of sense in CGP, I'd prefer it to go directly to SimplifyCFG (after which we can drop the CGP code).

I agree.

I think we would be better off to just drop these assumes. The framing I'm thinking of here is that SimplifyCFG should generally be ignoring ephemeral values in transforms. So if normally SimplifyCFG would drop a block that contains no instructions, then it should also drop a block that only contains ephemeral values.

I disagree.

if (x)
  assume(y)

is a natural way to spell something for the user.
We should not just drop it without having a good reason.
While we might not use assume(x && y) directly, we will use it if we specialize x to true in some places.

Er, I think you misread the comment you were replying to. The comment was discussing assume(A || B), your response is discussing assume(A && B). Given the context of the discussion, that difference seems important.

My own opinion is closer to that of @nikic. I think we should not be letting assumes block transforms. We should attempt to salvage assume information where we can, but only on a best effort basis. I do think we should generate the assume(A || B) form if that's the logical salvage even if nothing currently can infer from that.

Fri, Jun 4, 3:41 PM · Restricted Project
jdoerfert accepted D103646: [OPENMP]Fix PR50129: omp cancel parallel not working as expected..

LG, one nit below.

Fri, Jun 4, 7:42 AM · Restricted Project, Restricted Project
jdoerfert accepted D103574: [Attributor] Check HeapToStack's state for isKnownHeapToStack.

LG, one nit

Fri, Jun 4, 7:14 AM · Restricted Project
jdoerfert accepted D103556: [Attributor] Allow lookupAAFor to return null on invalid state.

LG, one nit

Fri, Jun 4, 7:12 AM · Restricted Project

Thu, Jun 3

jdoerfert added a comment to D103646: [OPENMP]Fix PR50129: omp cancel parallel not working as expected..

Do we have to update OpenMPIRBuilder::createCancel too?

Thu, Jun 3, 2:18 PM · Restricted Project, Restricted Project
jdoerfert accepted D103642: [OPENMP]Fix PR49790: Constexpr values not handled in `omp declare mapper` clause..

LG

Thu, Jun 3, 12:55 PM · Restricted Project

Wed, Jun 2

jdoerfert added a comment to D103556: [Attributor] Allow lookupAAFor to return null on invalid state.

I'd change the default and pass a non-default value in getAAFor

Wed, Jun 2, 2:51 PM · Restricted Project

Tue, Jun 1

jdoerfert updated subscribers of D102883: [OpenMP] Define named constants for interop's foreign runtime ID.

Does anyone have a reference for what we're supposed to do with one of these things?

Amdgpu openmp isn't implemented in terms of any of those (it is a layer on HSA), but it's possible we can cobble together enough of a HIP or opencl 'instance' on the fly to satisfy the interface. I can't find any information on what that interface is meant to be though.

Tue, Jun 1, 8:52 AM · Restricted Project

Fri, May 28

jdoerfert added a comment to D99202: [OpenMP] Add OpenMPOpt as a Module pass.

The following two tests are causing assertion failures when run with the legacy pass manager (force using -enable-new-pm=0).

  • Transforms/OpenMP/hide_mem_transfer_latency.ll
  • Transforms/OpenMP/values_in_offload_arrays.ll

Waiting on the bugzilla account request to make a ticket but here is the trace.

opt: llvm/lib/Analysis/CallGraphSCCPass.cpp:281: bool (anonymous namespace)::CGPassManager::RefreshCallGraph(const llvm::CallGraphSCC &, llvm::CallGraph &, bool): Assertion `!CheckingMode && "CallGraphSCCPass did not update the CallGraph correctly!"' failed.
PLEASE submit a bug report to https://bugs.llvm.org/ and include the crash backtrace.
Stack dump:
0.      Program arguments: opt -S -openmp-opt-cgscc -aa-pipeline=basic-aa -openmp-hide-memory-transfer-latency -enable-new-pm=0
1.      Running pass 'CallGraph Pass Manager' on module '<stdin>'.
 #0 0x00000000020bdf43 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (opt+0x20bdf43)
 #1 0x00000000020bbc00 llvm::sys::RunSignalHandlers() (opt+0x20bbc00)
 #2 0x00000000020be3f6 SignalHandler(int) llvm/lib/Support/Signals.cpp:0:0
 #3 0x00007f15159bf330 __restore_rt (/lib/x86_64-linux-gnu/libpthread.so.0+0x10330)
 #4 0x00007f15143a3c37 raise /build/eglibc-ripdx6/eglibc-2.19/signal/../nptl/sysdeps/unix/sysv/linux/raise.c:56:0
 #5 0x00007f15143a7028 abort /build/eglibc-ripdx6/eglibc-2.19/stdlib/abort.c:91:0
 #6 0x00007f151439cbf6 __assert_fail_base /build/eglibc-ripdx6/eglibc-2.19/assert/assert.c:92:0
 #7 0x00007f151439cca2 (/lib/x86_64-linux-gnu/libc.so.6+0x2fca2)
 #8 0x000000000100ab4f (anonymous namespace)::CGPassManager::RefreshCallGraph(llvm::CallGraphSCC const&, llvm::CallGraph&, bool) llvm/lib/Analysis/CallGraphSCCPass.cpp:0:0
 #9 0x00000000010093ac (anonymous namespace)::CGPassManager::runOnModule(llvm::Module&) llvm/lib/Analysis/CallGraphSCCPass.cpp:0:0
#10 0x00000000018c6788 llvm::legacy::PassManagerImpl::run(llvm::Module&) (opt+0x18c6788)
#11 0x00000000007d06e5 main (opt+0x7d06e5)
#12 0x00007f151438ef45 __libc_start_main /build/eglibc-ripdx6/eglibc-2.19/csu/libc-start.c:321:0
#13 0x00000000007ba679 _start (opt+0x7ba679)
[1]    27229 abort      opt -S -openmp-opt-cgscc -aa-pipeline=basic-aa   -enable-new-pm=0
Fri, May 28, 4:33 PM · Restricted Project
jdoerfert added a comment to D103316: Hoist llvm.assume into single predecessor if block otherwise empty.

This kind of transformation should probably eventually reside in lib/Transforms/Utils/SimplifyCFG.cpp but for now it seemed easier and a smaller change to just leave it in CodeGenPrepare.

I don't think this transform makes a lot of sense in CGP, I'd prefer it to go directly to SimplifyCFG (after which we can drop the CGP code).

Fri, May 28, 7:20 AM · Restricted Project

Wed, May 26

jdoerfert added a comment to D96418: [clang] Refactor mustprogress handling, add it to all loops in c++11+..

Well, no, I'm afraid it is actually clear that that code does have UB according to the C++ standard. Perhaps you mean that it *shouldn't* have UB, or that Clang should define its behavior despite the standard.

I might agree with you that I don't see the value in using this stronger rule in C++, but I think it would help to understand the problem a little better. I assume this is causing problems for a less trivial test case? Or do you really have code that's relying on that loop not terminating?

I see. I guess it's good (and bad) that this discovered this UB in our code base. The example I posted is almost exactly what's in our test case. For this particular one, we need a non-terminating thread, so a thread_create function is passed do_nothing. Locally, we could get around this by using something like inline assembly to avoid UB.

Wed, May 26, 6:17 PM · Restricted Project
jdoerfert added a comment to D103186: [Attributor] Fix AAExecutionDomain returning true on invalid states.

We need a test. A callback call should do it.

Wed, May 26, 10:27 AM · Restricted Project

Sun, May 23

jdoerfert committed rG6caea8a7fa62: [Attributor] Introduce a helper do deal with constant type mismatches (authored by jdoerfert).
[Attributor] Introduce a helper do deal with constant type mismatches
Sun, May 23, 9:01 PM
jdoerfert committed rG55e9c282129e: [Attributor] Teach AAIsDead about undef values (authored by jdoerfert).
[Attributor] Teach AAIsDead about undef values
Sun, May 23, 9:01 PM
jdoerfert committed rG4878d7341969: [Attributor] Deal with address spaces gracefully (authored by jdoerfert).
[Attributor] Deal with address spaces gracefully
Sun, May 23, 9:01 PM
jdoerfert committed rG1ba2929bb82b: [Attributor] Be more careful to not disturb the CG outside the SCC (authored by jdoerfert).
[Attributor] Be more careful to not disturb the CG outside the SCC
Sun, May 23, 9:01 PM
jdoerfert committed rGe93ac1e2de66: [Attributor][FIX] Account for undef in the constant value lattice (authored by jdoerfert).
[Attributor][FIX] Account for undef in the constant value lattice
Sun, May 23, 8:09 PM
jdoerfert committed rG5cdc29f79582: [Attributor][FIX] Ensure we replace undef if we see the first "real" value (authored by jdoerfert).
[Attributor][FIX] Ensure we replace undef if we see the first "real" value
Sun, May 23, 8:09 PM
jdoerfert committed rG9098fc9f427f: [Attributor][NFC] Precommit test case with branch on undef (authored by jdoerfert).
[Attributor][NFC] Precommit test case with branch on undef
Sun, May 23, 8:09 PM
jdoerfert committed rG2bc51d39db7a: [Attributor][NFC] Add helpful debug outputs (authored by jdoerfert).
[Attributor][NFC] Add helpful debug outputs
Sun, May 23, 8:09 PM
jdoerfert committed rGcb511531b924: [Attributor][NFC] Clang format the Attributor source files (authored by jdoerfert).
[Attributor][NFC] Clang format the Attributor source files
Sun, May 23, 8:08 PM
jdoerfert committed rG8387d74c2077: [Attributor][NFC] Rerun update_test_checks script on Attributor tests (authored by jdoerfert).
[Attributor][NFC] Rerun update_test_checks script on Attributor tests
Sun, May 23, 8:08 PM
jdoerfert added a comment to D102107: [OpenMP] Codegen aggregate for outlined function captures.

This allows us to remove the switch in the device runtime, right?

Sun, May 23, 6:17 PM · Restricted Project, Restricted Project
jdoerfert added a comment to D102726: [IR][AutoUpgrade] Drop alignment from non-pointer parameters and returns.

Yep, thanks to both of you to solving the problem with general solutions, will help in the long run for sure :)

Sun, May 23, 9:09 AM · Restricted Project

Fri, May 21

jdoerfert added a comment to D102726: [IR][AutoUpgrade] Drop alignment from non-pointer parameters and returns.

FYI, this change causes a non-trivial compile-time regression in LTO builds: https://llvm-compile-time-tracker.com/compare.php?from=136ced498ba84f6b6126051626e319f18ba740f5&to=5b6cae5524905bc43cfc21a515f828528d1f2e68&stat=instructions (Worst regression seems to be the ThinLTO kc.link step, which is up 4%.)

LLVM attributes are optimized for immutable usage, and it's hard to overstate just how slow the mutable APIs on them are...

Fri, May 21, 2:04 PM · Restricted Project

Thu, May 20

jdoerfert added a comment to D102861: Suppress FP_CONTRACT due to planned command line changes.

I think this is generally reasonable, haven't looked at all benchmarks and I would prefer some other opinions.

Thu, May 20, 12:53 PM

Wed, May 19

jdoerfert added a comment to D97818: [OpenMP] Replace GPU globalization calls with shared memory in the middle-end.

I looked over this again because I think we will later move the logic into an AbstractAttribute. The reason is that we want to reuse some of the analysis in AAKernelInfo to determine if we can use SPMD mode. Basically, if the shared memory is only used in a nice way and fees into an actual parallel51, it is compatible with SPMD mode. If we go to SPMD mode we have (or better should) eliminate the shared memory indirection. Maybe we move all of this into AAHeapToStack and make a more general AAAllocationInfo out of it. Let's see.

Wed, May 19, 10:33 PM · Restricted Project, Restricted Project
jdoerfert added a comment to D101977: [OpenMP] Create custom state machines for generic target regions.

[Wrong review -.- ]

Wed, May 19, 10:32 PM · Restricted Project
jdoerfert added a comment to D101973: [OpenMP][NFC] Remove SIMD check lines for non-simd tests.

I can't see a change to a script in this diff. Should there be one? Looks like the test change was done programmatically

Wed, May 19, 10:23 PM · Restricted Project
jdoerfert updated the diff for D101977: [OpenMP] Create custom state machines for generic target regions.

Addressed comments
Also moved logic from the AAKernelInfoFunction::updateImpl to
AAKernelInfoCallSite::initialize as it looks cleaner to fix the
state of runtime calls right away.

Wed, May 19, 10:08 PM · Restricted Project
jdoerfert accepted D102824: [OpenMP] Internalize functions in OpenMPOpt to improve IPO passes.

LGTM, two minor nits.

Wed, May 19, 8:10 PM · Restricted Project
jdoerfert updated the diff for D101976: [OpenMP] Unified entry point for SPMD & generic kernels in the device RTL.

Drop the weak attribute, will solve the problem differently

Wed, May 19, 7:59 PM · Restricted Project, Restricted Project, Restricted Project
jdoerfert committed rG6ff380f43987: [OpenMP][NFC] Remove SIMD check lines for non-simd tests (authored by jdoerfert).
[OpenMP][NFC] Remove SIMD check lines for non-simd tests
Wed, May 19, 7:36 PM
jdoerfert closed D101973: [OpenMP][NFC] Remove SIMD check lines for non-simd tests.
Wed, May 19, 7:36 PM · Restricted Project
jdoerfert planned changes to D102558: [Utils] Check for generated functions inline if possible.

This doesn't work properly yet :(
When I run this on the OpenMP tests I get sometimes a total order where there should be none.

Wed, May 19, 7:31 PM · Restricted Project, Restricted Project
jdoerfert updated the diff for D101973: [OpenMP][NFC] Remove SIMD check lines for non-simd tests.

Accidentally deleted too many check lines this time ...

Wed, May 19, 6:04 PM · Restricted Project
jdoerfert added a comment to D102726: [IR][AutoUpgrade] Drop alignment from non-pointer parameters and returns.

Nit: Commit subject (not message) is old, maybe change prior to push locally

Wed, May 19, 4:32 PM · Restricted Project
jdoerfert updated the diff for D101973: [OpenMP][NFC] Remove SIMD check lines for non-simd tests.

Make the script remove leftover CHECK: lines that would now trigger given
the absence of a specific check prefix for the -fopenmp-simd invocations.

Wed, May 19, 3:00 PM · Restricted Project
jdoerfert accepted D102726: [IR][AutoUpgrade] Drop alignment from non-pointer parameters and returns.

LGTM, thanks for fixing this now and for the future!

Wed, May 19, 2:56 PM · Restricted Project
jdoerfert accepted D102784: [Diagnostics] Allow emitting analysis and missed remarks on functions.

Diagnostic Info parts seems very mechanical and ok to me.
OpenMPOpt parts make sense.
Test seem to be always tied to an analysis (e.g., D29023) so LGTM

Wed, May 19, 9:41 AM · Restricted Project, Restricted Project