Page MenuHomePhabricator
Feed Advanced Search

Today

jdoerfert added a comment to D69785: [OpenMP] Introduce the OpenMP-IR-Builder.

Anything else?

Thu, Nov 21, 9:45 AM · Restricted Project, Restricted Project
jdoerfert added a comment to D70049: [CodeMoverUtils] Added an API to check if an instruction can be safely moved before another instruction..

I'm fine with this @bmahjour @Meinersbur please accept if you are satisfied.

Thu, Nov 21, 9:44 AM · Restricted Project
jdoerfert added a comment to D70414: [libomptarget] Build a minimal deviceRTL for amdgcn.

Thanks for pushing this. Two comments below, nothing major.

Thu, Nov 21, 9:44 AM · Restricted Project
jdoerfert added a comment to D70233: [WIP][Attributor] AAReachability Attribute.

We can merge this and then add a user as we talked about.

Thu, Nov 21, 9:35 AM · Restricted Project
jdoerfert accepted D70233: [WIP][Attributor] AAReachability Attribute.

LGTM.

Thu, Nov 21, 9:35 AM · Restricted Project
jdoerfert added a comment to D70392: [Attributor] Track a GEP Instruction in align deduction.

Looks fine from my side. @lebedev.ri please feel free to comment and please accept once satisfied.

Thu, Nov 21, 9:25 AM · Restricted Project
jdoerfert accepted D70245: [OPENMP50]Add device/kind context selector support..

LGTM.

Thu, Nov 21, 9:16 AM · Restricted Project
jdoerfert added a comment to D69930: [OpenMP] Introduce the OpenMPOpt transformation pass.

ping

Thu, Nov 21, 9:10 AM · Restricted Project
jdoerfert added a comment to D70258: [OpenMP][IR-Builder] Introduce the finalization stack.

ping

Thu, Nov 21, 9:06 AM · Restricted Project, Restricted Project
jdoerfert added inline comments to D61652: [Attr] Introduce dereferenceable_globally.
Thu, Nov 21, 9:06 AM · Restricted Project
jdoerfert added a comment to D69785: [OpenMP] Introduce the OpenMP-IR-Builder.

ping

Thu, Nov 21, 9:06 AM · Restricted Project, Restricted Project

Yesterday

jdoerfert added a comment to D69674: [FIX] Make LSan happy by *not* leaking memory.

Looks like this was sent for review but no one reviewed/approved it? Generally, if something is sent for review, it's not great to submit it without review. (if you felt it needed review to begin with, time shouldn't change that)

The review was intended to share the patch and validate the fix, that is why I didn't add reviewers. I will not open a review next time.

Validate in what sense? There didn't appear to be any discussion/validation from other developers here.

Wed, Nov 20, 11:34 AM · Restricted Project
jdoerfert added a comment to D70109: [OpenMP][IR-Builder] Introduce "pragma omp parallel" code generation.

Generally acceptable, However wondering about future plans regarding:

  1. There are many aspects of the OMP parallel implementation that can be reused with other directives (i.e. 'If' clause, privatization clauses), any plans to outline?
  2. plans for implementing reduction clause?
Wed, Nov 20, 11:28 AM · Restricted Project
jdoerfert added a comment to D69674: [FIX] Make LSan happy by *not* leaking memory.

Looks like this was sent for review but no one reviewed/approved it? Generally, if something is sent for review, it's not great to submit it without review. (if you felt it needed review to begin with, time shouldn't change that)

Wed, Nov 20, 11:10 AM · Restricted Project

Fri, Nov 15

jdoerfert added inline comments to D70245: [OPENMP50]Add device/kind context selector support..
Fri, Nov 15, 6:19 PM · Restricted Project
jdoerfert added a comment to D70328: [libomptarget][nfc] Move some source into common from nvptx.

One request but I'm fine with the workaround (includes) if they solve the problem

Fri, Nov 15, 2:06 PM · Restricted Project
jdoerfert added a comment to D70233: [WIP][Attributor] AAReachability Attribute.

@jdoerfert Thank you suggesting the corrections.
Updating the corrected patch.

Fri, Nov 15, 1:04 PM · Restricted Project
jdoerfert added a comment to D69930: [OpenMP] Introduce the OpenMPOpt transformation pass.

Anything else?

Fri, Nov 15, 10:06 AM · Restricted Project
jdoerfert added inline comments to D70258: [OpenMP][IR-Builder] Introduce the finalization stack.
Fri, Nov 15, 9:56 AM · Restricted Project, Restricted Project
jdoerfert updated the diff for D70258: [OpenMP][IR-Builder] Introduce the finalization stack.

Make it a specialized push-pop RAII object (just moved code)

Fri, Nov 15, 9:56 AM · Restricted Project, Restricted Project
jdoerfert added inline comments to D69930: [OpenMP] Introduce the OpenMPOpt transformation pass.
Fri, Nov 15, 9:47 AM · Restricted Project
jdoerfert updated the diff for D70258: [OpenMP][IR-Builder] Introduce the finalization stack.

Replace conditional by RAII object

Fri, Nov 15, 9:38 AM · Restricted Project, Restricted Project
jdoerfert added inline comments to D70258: [OpenMP][IR-Builder] Introduce the finalization stack.
Fri, Nov 15, 9:29 AM · Restricted Project, Restricted Project
jdoerfert added inline comments to D69930: [OpenMP] Introduce the OpenMPOpt transformation pass.
Fri, Nov 15, 9:29 AM · Restricted Project
jdoerfert added a comment to D70233: [WIP][Attributor] AAReachability Attribute.

Thanks for the quick update.

Fri, Nov 15, 9:21 AM · Restricted Project

Thu, Nov 14

jdoerfert added a comment to D70233: [WIP][Attributor] AAReachability Attribute.

I think reachability attribute is a good idea!

A Reachability abstract attribute answers the question "does execution at point A potentially reach point B". If this question is answered with false for all other uses of the value that might be captured, we know it is not *yet* captured and can continue with the noalias deduction. Currently, information AAReachability provides is completely pessimistic.

At the starting point, it might be a good idea to use AAIsDead to determine that "does execution at point A never reach point B" (because AAIsDead answers whether point B is dead).

Btw, I think AAIsDead is a strict subset of AAReachability. If we have AAReachability::isAssumedReachable(Instruction &From, Instruction &To), AAIsDead::isAssumedDead(Instruction &I) is equivalent to `!AAReachability::isAssumedReachable(EntryPointOfFunction, I).So you should probably extend AAIsDead.

Maybe you can refer must-be-executed-context which handles the similar property.

Thu, Nov 14, 11:06 PM · Restricted Project
jdoerfert updated the diff for D69984: [OpenMP][Opt] Annotate known runtime functions and deduplicate more.

Updated test

Thu, Nov 14, 10:56 PM · Restricted Project
jdoerfert added inline comments to D69930: [OpenMP] Introduce the OpenMPOpt transformation pass.
Thu, Nov 14, 10:46 PM · Restricted Project
jdoerfert added a parent revision for D70290: [OpenMP] Use the OpenMPIRBuilder for "omp parallel": D70109: [OpenMP][IR-Builder] Introduce "pragma omp parallel" code generation.
Thu, Nov 14, 10:45 PM · Restricted Project
jdoerfert added a child revision for D70109: [OpenMP][IR-Builder] Introduce "pragma omp parallel" code generation: D70290: [OpenMP] Use the OpenMPIRBuilder for "omp parallel".
Thu, Nov 14, 10:45 PM · Restricted Project
jdoerfert added a parent revision for D70289: [OpenMP][NFCI] Use the libFrontend ProcBindKind in Clang: D70109: [OpenMP][IR-Builder] Introduce "pragma omp parallel" code generation.
Thu, Nov 14, 10:45 PM · Restricted Project
jdoerfert added a child revision for D70109: [OpenMP][IR-Builder] Introduce "pragma omp parallel" code generation: D70289: [OpenMP][NFCI] Use the libFrontend ProcBindKind in Clang.
Thu, Nov 14, 10:45 PM · Restricted Project
jdoerfert added inline comments to D70258: [OpenMP][IR-Builder] Introduce the finalization stack.
Thu, Nov 14, 10:45 PM · Restricted Project, Restricted Project
jdoerfert updated the diff for D70258: [OpenMP][IR-Builder] Introduce the finalization stack.

Addressed comments

Thu, Nov 14, 10:45 PM · Restricted Project, Restricted Project
jdoerfert created D70289: [OpenMP][NFCI] Use the libFrontend ProcBindKind in Clang.
Thu, Nov 14, 10:35 PM · Restricted Project
jdoerfert created D70290: [OpenMP] Use the OpenMPIRBuilder for "omp parallel".
Thu, Nov 14, 10:35 PM · Restricted Project
jdoerfert updated the diff for D70109: [OpenMP][IR-Builder] Introduce "pragma omp parallel" code generation.

Add more tests and a version working with the clang integration (next patch)

Thu, Nov 14, 10:35 PM · Restricted Project
jdoerfert accepted D70107: [VFABI] TargetLibraryInfo mappings in IR..

Some minor comments below, otherwise LGTM.

Thu, Nov 14, 8:54 PM · Restricted Project
jdoerfert added a child revision for D70258: [OpenMP][IR-Builder] Introduce the finalization stack: D70109: [OpenMP][IR-Builder] Introduce "pragma omp parallel" code generation.
Thu, Nov 14, 11:11 AM · Restricted Project, Restricted Project
jdoerfert added a parent revision for D70109: [OpenMP][IR-Builder] Introduce "pragma omp parallel" code generation: D70258: [OpenMP][IR-Builder] Introduce the finalization stack.
Thu, Nov 14, 11:11 AM · Restricted Project
jdoerfert added inline comments to D69785: [OpenMP] Introduce the OpenMP-IR-Builder.
Thu, Nov 14, 11:11 AM · Restricted Project, Restricted Project
jdoerfert added a parent revision for D70258: [OpenMP][IR-Builder] Introduce the finalization stack: D69922: [OpenMP] Use the OpenMP-IR-Builder.
Thu, Nov 14, 11:11 AM · Restricted Project, Restricted Project
jdoerfert added a child revision for D69922: [OpenMP] Use the OpenMP-IR-Builder: D70258: [OpenMP][IR-Builder] Introduce the finalization stack.
Thu, Nov 14, 11:11 AM · Restricted Project, Restricted Project
jdoerfert created D70258: [OpenMP][IR-Builder] Introduce the finalization stack.
Thu, Nov 14, 11:02 AM · Restricted Project, Restricted Project
jdoerfert added inline comments to D69785: [OpenMP] Introduce the OpenMP-IR-Builder.
Thu, Nov 14, 11:01 AM · Restricted Project, Restricted Project
jdoerfert added a comment to rG3c676e3891b9: [OPENMP]Use copy constructors instead of assignment operators in declare….

What do you mean by "better" here? And, isn't the standard defining what constructor needs to be called? Do we have a test where there are multiple options so we ensure that the right one is chosen?

Gcc and icc use constructors for the intialization of the declare reduction construct, we follow the same logic.

Plus, there is very simple logic behind this. It is an initializer and from point of view of c++ it is correct to call just a specialized constructor here rather than default constructor + copy assignment operator.

Thu, Nov 14, 9:30 AM
jdoerfert added inline comments to D69891: [VP,Integer,#1] Vector-predicated integer intrinsics.
Thu, Nov 14, 8:52 AM · Restricted Project
jdoerfert added a comment to D70233: [WIP][Attributor] AAReachability Attribute.

Thanks for putting this in the open! I hope we can improve this and get it in!

Thu, Nov 14, 8:43 AM · Restricted Project
jdoerfert updated subscribers of D70233: [WIP][Attributor] AAReachability Attribute.
Thu, Nov 14, 8:34 AM · Restricted Project

Wed, Nov 13

jdoerfert updated the diff for D69922: [OpenMP] Use the OpenMP-IR-Builder.

Adjust paths and test case options

Wed, Nov 13, 10:52 PM · Restricted Project, Restricted Project
jdoerfert raised a concern with rG3c676e3891b9: [OPENMP]Use copy constructors instead of assignment operators in declare….

What do you mean by "better" here? And, isn't the standard defining what constructor needs to be called? Do we have a test where there are multiple options so we ensure that the right one is chosen?

Wed, Nov 13, 7:15 PM
jdoerfert added inline comments to D69785: [OpenMP] Introduce the OpenMP-IR-Builder.
Wed, Nov 13, 7:06 PM · Restricted Project, Restricted Project
jdoerfert added inline comments to D69785: [OpenMP] Introduce the OpenMP-IR-Builder.
Wed, Nov 13, 5:36 PM · Restricted Project, Restricted Project
jdoerfert resigned from D70211: Sink all InitializePasses.h includes.

FWIW, I'm always in favor of changes like these to cut compile time.

Wed, Nov 13, 4:13 PM · Restricted Project
jdoerfert accepted D70192: [LoopCacheAnalysis]: Fix assertion failure during cost computation.

Before I saw that the cost has to be a constant I wrote this:

Wed, Nov 13, 4:13 PM · Restricted Project
jdoerfert added a comment to D70143: Check result of emitStrLen before passing it to CreateGEP.

thx.

Wed, Nov 13, 4:04 PM · Restricted Project, Restricted Project
jdoerfert added inline comments to D70107: [VFABI] TargetLibraryInfo mappings in IR..
Wed, Nov 13, 3:08 PM · Restricted Project
jdoerfert added a comment to D69891: [VP,Integer,#1] Vector-predicated integer intrinsics.

I think I'm fine with this. Anyone else?

Wed, Nov 13, 11:55 AM · Restricted Project
jdoerfert added a comment to D70186: [libomptarget][nfc] Use cuda variable wrappers from support.h.

Thanks. In general I agree re: NFC. At present I'm being cautious after the non-reproducible build errors of last week.

The missing symbols were root caused - __forceinline__ is not equal to always_inline - but duplicate symbols have me at a loss, especially when the supporti.h => support.cu patch didn't show the issue. Hopefully Alexey will run into them again on one of the subdivided patches.

Tested, works fine.

Wed, Nov 13, 9:32 AM · Restricted Project
jdoerfert added inline comments to D69891: [VP,Integer,#1] Vector-predicated integer intrinsics.
Wed, Nov 13, 8:29 AM · Restricted Project
jdoerfert added inline comments to D70143: Check result of emitStrLen before passing it to CreateGEP.
Wed, Nov 13, 8:18 AM · Restricted Project, Restricted Project
jdoerfert accepted D70186: [libomptarget][nfc] Use cuda variable wrappers from support.h.

LGTM. (I think pure NFC cleanups like this you can commit w/o review.)

Wed, Nov 13, 8:18 AM · Restricted Project

Tue, Nov 12

jdoerfert added inline comments to D69891: [VP,Integer,#1] Vector-predicated integer intrinsics.
Tue, Nov 12, 10:52 PM · Restricted Project
jdoerfert added a comment to D70107: [VFABI] TargetLibraryInfo mappings in IR..

New pass manager command line option missing.

Tue, Nov 12, 10:00 PM · Restricted Project
jdoerfert added a comment to D70140: Use nofree argument attributr hor heap-to-stack conversion.

Typo hor in commit message

Tue, Nov 12, 9:05 PM · Restricted Project
jdoerfert added a comment to D69690: [GlobalsAA] Restrict ModRef result if any internal method has its address taken..

Do I understand correctly that this going to be conservative in the case the internal function with its address taken is readonly/none?
Either way, could we have a test for that to make sure we see the "good" behavior or a FIXME in the code and test explaining what is needed?

Tue, Nov 12, 7:53 PM · Restricted Project
jdoerfert updated subscribers of D69891: [VP,Integer,#1] Vector-predicated integer intrinsics.
Tue, Nov 12, 7:06 PM · Restricted Project
jdoerfert accepted D70089: [VFABI] Add LLVM internal mangling for vector functions..

LGTM

Tue, Nov 12, 6:36 PM · Restricted Project
jdoerfert added inline comments to D70049: [CodeMoverUtils] Added an API to check if an instruction can be safely moved before another instruction..
Tue, Nov 12, 5:59 PM · Restricted Project
jdoerfert accepted D70131: [libomptarget] Move supporti.h to support.cu.

Assuming this doesn't break the build as the old version did, it still looks good to me.

Tue, Nov 12, 5:49 PM · Restricted Project
jdoerfert accepted D70140: Use nofree argument attributr hor heap-to-stack conversion.

LGTM, one nit.

Tue, Nov 12, 5:40 PM · Restricted Project
jdoerfert added a comment to D70143: Check result of emitStrLen before passing it to CreateGEP.

One style comment, patch looks conceptually fine to me otherwise. I'll wait to accept on how we fall on the test issue: I'd opt for an opt test if possible.

Tue, Nov 12, 5:40 PM · Restricted Project, Restricted Project
jdoerfert added inline comments to D69785: [OpenMP] Introduce the OpenMP-IR-Builder.
Tue, Nov 12, 5:31 PM · Restricted Project, Restricted Project
jdoerfert added inline comments to D69785: [OpenMP] Introduce the OpenMP-IR-Builder.
Tue, Nov 12, 3:10 PM · Restricted Project, Restricted Project
jdoerfert added inline comments to D69785: [OpenMP] Introduce the OpenMP-IR-Builder.
Tue, Nov 12, 2:31 PM · Restricted Project, Restricted Project
jdoerfert added inline comments to D69785: [OpenMP] Introduce the OpenMP-IR-Builder.
Tue, Nov 12, 2:03 PM · Restricted Project, Restricted Project
jdoerfert added inline comments to D69785: [OpenMP] Introduce the OpenMP-IR-Builder.
Tue, Nov 12, 1:34 PM · Restricted Project, Restricted Project
jdoerfert added a comment to D70109: [OpenMP][IR-Builder] Introduce "pragma omp parallel" code generation.

This needs an update later today.

Tue, Nov 12, 8:27 AM · Restricted Project

Mon, Nov 11

jdoerfert added a child revision for D69922: [OpenMP] Use the OpenMP-IR-Builder: D70109: [OpenMP][IR-Builder] Introduce "pragma omp parallel" code generation.
Mon, Nov 11, 10:37 PM · Restricted Project, Restricted Project
jdoerfert added a parent revision for D70109: [OpenMP][IR-Builder] Introduce "pragma omp parallel" code generation: D69922: [OpenMP] Use the OpenMP-IR-Builder.
Mon, Nov 11, 10:37 PM · Restricted Project
jdoerfert created D70109: [OpenMP][IR-Builder] Introduce "pragma omp parallel" code generation.
Mon, Nov 11, 10:37 PM · Restricted Project
jdoerfert updated the diff for D69922: [OpenMP] Use the OpenMP-IR-Builder.

Use IRBuilder for cancel barriers

Mon, Nov 11, 7:49 PM · Restricted Project, Restricted Project
jdoerfert updated the diff for D69785: [OpenMP] Introduce the OpenMP-IR-Builder.

Add cancel_barrier functionality + test, move everything to "Frontend"

Mon, Nov 11, 6:27 PM · Restricted Project, Restricted Project
jdoerfert updated the diff for D69853: [OpenMP][NFCI] Introduce llvm/IR/OpenMPConstants.h.

Create llvm/libFrontend, move code there, make shared library builds work.

Mon, Nov 11, 5:31 PM · Restricted Project, Restricted Project
jdoerfert updated the diff for D69922: [OpenMP] Use the OpenMP-IR-Builder.

update test case

Mon, Nov 11, 2:47 PM · Restricted Project, Restricted Project
jdoerfert accepted D69976: [VFABI] Read/Write functions for the VFABI attribute..
Mon, Nov 11, 2:29 PM · Restricted Project
jdoerfert added inline comments to D69785: [OpenMP] Introduce the OpenMP-IR-Builder.
Mon, Nov 11, 1:34 PM · Restricted Project, Restricted Project
jdoerfert updated the diff for D69984: [OpenMP][Opt] Annotate known runtime functions and deduplicate more.

Remove duplication

Mon, Nov 11, 12:30 PM · Restricted Project
jdoerfert updated the diff for D69785: [OpenMP] Introduce the OpenMP-IR-Builder.

Make attributes opt-in

Mon, Nov 11, 12:21 PM · Restricted Project, Restricted Project
jdoerfert resigned from D70094: [clang-tidy] new altera ID dependent backward branch check.
Mon, Nov 11, 12:02 PM · Restricted Project, Restricted Project, Restricted Project
jdoerfert added inline comments to D70049: [CodeMoverUtils] Added an API to check if an instruction can be safely moved before another instruction..
Mon, Nov 11, 11:53 AM · Restricted Project
jdoerfert accepted D69952: [OPENMP50]Generalize handling of context matching/scoring..

LGTM.

Mon, Nov 11, 11:35 AM · Restricted Project

Fri, Nov 8

jdoerfert added a comment to D69976: [VFABI] Read/Write functions for the VFABI attribute..

I have only minor comments left (below), @sdesmalen you wanna take a look and accept?

Fri, Nov 8, 1:47 PM · Restricted Project
jdoerfert added inline comments to D69922: [OpenMP] Use the OpenMP-IR-Builder.
Fri, Nov 8, 1:38 PM · Restricted Project, Restricted Project
jdoerfert added a comment to D69952: [OPENMP50]Generalize handling of context matching/scoring..

I think we are almost there.

Fri, Nov 8, 1:29 PM · Restricted Project
jdoerfert added a comment to D69922: [OpenMP] Use the OpenMP-IR-Builder.
Fri, Nov 8, 1:11 PM · Restricted Project, Restricted Project
jdoerfert added a comment to D69748: [Attributor][IPConstantProp] Run the Attributor on IPConstantProp tests.

Also, unfortunately I did not have time to followd the attributor development closely lately, I am just curious: is there a benefit of doing some value simplifications in attributor directly?

TL;DR, I think so yes, at least in the short term. How we want to go forward once the Attributor matured fully is an open question.

There are reasons, but, as always, it is not a clear win. So perfect world, we have a single place with "IP-SCCP-like" logic that can make use of all "optimistic in-flight information" during a fixpoint iteration.
For now, we will have some IP-SCCP like logic rewritten in the Attributor framework, see for example D69605 for liveness improvements. The conditional folding logic needs cleanup before I put them here but that should happen in the coming days as well. Now we want this because we want/need liveness information during the deduction and we can use other information that is deduced to improve the value simplification part (think constant propagation) and thereby liveness. One example would be capture information and memory access information based on liveness information which feeds back into the rest.

Would it be sufficient to have IPSCCP simplify the module before running the Attributor? Ideally it should apply the simplifications based on liveness (module cases it misses) and the attributor would not have to worry about them. I think it would be good try to avoid splitting development effort and keeping Attributor focused should simplify the way towards enabling it.

Fri, Nov 8, 1:02 PM · Restricted Project
jdoerfert added reviewers for D70010: [OpenMP][Offloading] Replaced default stream with an actual per-device unblocking stream in NVPTX implementation: ABataev, grokos, JonChesterfield.

Can you please write a commit message explaining the change and the plan?

Fri, Nov 8, 12:43 PM · Restricted Project, Restricted Project
jdoerfert added inline comments to D69922: [OpenMP] Use the OpenMP-IR-Builder.
Fri, Nov 8, 12:15 PM · Restricted Project, Restricted Project
jdoerfert added a comment to D68765: [Attributor] Function signature rewrite infrastructure.

Sorry for the delay. Basically it looks good to me regarding the logic.

Fri, Nov 8, 12:15 PM · Restricted Project