Page MenuHomePhabricator

ABataev (Alexey Bataev)
User

Projects

User does not belong to any projects.

User Details

User Since
Jan 31 2013, 4:40 AM (392 w, 6 d)

Recent Activity

Today

ABataev committed rGddbd21d288f6: [OPENMP]Do not add TGT_OMP_TARGET_PARAM flag to non-captured mapped arguments. (authored by ABataev).
[OPENMP]Do not add TGT_OMP_TARGET_PARAM flag to non-captured mapped arguments.
Wed, Aug 12, 7:15 AM
ABataev closed D85755: [OPENMP]Do not add TGT_OMP_TARGET_PARAM flag to non-captured mapped arguments..
Wed, Aug 12, 7:15 AM · Restricted Project
ABataev added a reverting change for rGec9563c54ed2: [OPENMP]Fix PR37671: Privatize local(private) variables in untied tasks.: rG3651658bdd11: Revert "[OPENMP]Fix PR37671: Privatize local(private) variables in untied tasks..
Wed, Aug 12, 6:51 AM
ABataev committed rG3651658bdd11: Revert "[OPENMP]Fix PR37671: Privatize local(private) variables in untied tasks. (authored by ABataev).
Revert "[OPENMP]Fix PR37671: Privatize local(private) variables in untied tasks.
Wed, Aug 12, 6:51 AM
ABataev added a reverting change for D84457: [OPENMP]Fix PR37671: Privatize local(private) variables in untied tasks.: rG3651658bdd11: Revert "[OPENMP]Fix PR37671: Privatize local(private) variables in untied tasks..
Wed, Aug 12, 6:51 AM · Restricted Project
ABataev committed rGec9563c54ed2: [OPENMP]Fix PR37671: Privatize local(private) variables in untied tasks. (authored by ABataev).
[OPENMP]Fix PR37671: Privatize local(private) variables in untied tasks.
Wed, Aug 12, 6:39 AM
ABataev closed D84457: [OPENMP]Fix PR37671: Privatize local(private) variables in untied tasks..
Wed, Aug 12, 6:39 AM · Restricted Project

Yesterday

ABataev updated the diff for D85321: [OPENMP]Do not capture base pointer by reference if it is used as a base for array-like reduction..

Rebase

Tue, Aug 11, 11:50 AM · Restricted Project
ABataev updated the diff for D84457: [OPENMP]Fix PR37671: Privatize local(private) variables in untied tasks..

Rebase

Tue, Aug 11, 11:30 AM · Restricted Project
ABataev requested review of D85762: [OPENMP]Do not allow threadprivates as base for array-like reduction..
Tue, Aug 11, 11:03 AM · Restricted Project
ABataev updated the diff for D84887: [OPENMP]Fix codegen for is_device_ptr component, captured by reference..

Rebase

Tue, Aug 11, 10:41 AM · Restricted Project
ABataev requested review of D85755: [OPENMP]Do not add TGT_OMP_TARGET_PARAM flag to non-captured mapped arguments..
Tue, Aug 11, 10:09 AM · Restricted Project
ABataev accepted D84844: [OpenMP] Ensure testing for versions 4.5 and default - Part 1.

LG

Tue, Aug 11, 8:04 AM · Restricted Project

Mon, Aug 10

ABataev accepted D85695: [OpenMP] split execution of a long test into smaller parts..

LG

Mon, Aug 10, 5:40 PM · Restricted Project
ABataev accepted D80735: [OpenMP][NFC] Reuse OMPIRBuilder `struct ident_t` handling in Clang.

LG

Mon, Aug 10, 2:26 PM · Restricted Project, Restricted Project
ABataev added inline comments to D80735: [OpenMP][NFC] Reuse OMPIRBuilder `struct ident_t` handling in Clang.
Mon, Aug 10, 2:01 PM · Restricted Project, Restricted Project
ABataev added inline comments to D80735: [OpenMP][NFC] Reuse OMPIRBuilder `struct ident_t` handling in Clang.
Mon, Aug 10, 1:49 PM · Restricted Project, Restricted Project

Fri, Aug 7

ABataev accepted D85551: [OpenMP] Split OpenMP/target_map_codegen test [NFC].

LG

Fri, Aug 7, 1:36 PM · Restricted Project
ABataev committed rG4a7aedb843a5: [OPENMP]Simplify representation for atomic, critical, master and section (authored by ABataev).
[OPENMP]Simplify representation for atomic, critical, master and section
Fri, Aug 7, 7:26 AM

Thu, Aug 6

ABataev accepted D83779: [SLP] Fix order of `insertelement`/`insertvalue` seed operands.

LG

Thu, Aug 6, 10:35 AM · Restricted Project
ABataev committed rG8d072a440521: [OPENMP]Fix for Windows buildbots, NFC. (authored by ABataev).
[OPENMP]Fix for Windows buildbots, NFC.
Thu, Aug 6, 9:39 AM
ABataev committed rG0af7835eae69: [OPENMP]Redesign of OMPExecutableDirective/OMPDeclarativeDirective… (authored by ABataev).
[OPENMP]Redesign of OMPExecutableDirective/OMPDeclarativeDirective…
Thu, Aug 6, 9:26 AM
ABataev closed D83261: [OPENMP]Redesign of OMPExecutableDirective representation..
Thu, Aug 6, 9:26 AM · Restricted Project
ABataev added inline comments to D83779: [SLP] Fix order of `insertelement`/`insertvalue` seed operands.
Thu, Aug 6, 9:24 AM · Restricted Project

Wed, Aug 5

ABataev added inline comments to D83261: [OPENMP]Redesign of OMPExecutableDirective representation..
Wed, Aug 5, 12:46 PM · Restricted Project
ABataev committed rG6780d5675b7c: [LIBOMPTARGET]Fix order of mapper data for targetDataEnd function. (authored by ABataev).
[LIBOMPTARGET]Fix order of mapper data for targetDataEnd function.
Wed, Aug 5, 10:49 AM
ABataev closed D85216: [LIBOMPTARGET]Fix order of mapper data for targetDataEnd function..
Wed, Aug 5, 10:49 AM · Restricted Project
ABataev requested review of D85321: [OPENMP]Do not capture base pointer by reference if it is used as a base for array-like reduction..
Wed, Aug 5, 8:51 AM · Restricted Project
ABataev added inline comments to D83779: [SLP] Fix order of `insertelement`/`insertvalue` seed operands.
Wed, Aug 5, 5:11 AM · Restricted Project

Tue, Aug 4

ABataev added a comment to D85216: [LIBOMPTARGET]Fix order of mapper data for targetDataEnd function..

So does the mapper function emit entries in reverse order upon exiting a target/target data region?

Tue, Aug 4, 10:43 AM · Restricted Project
ABataev updated the diff for D84457: [OPENMP]Fix PR37671: Privatize local(private) variables in untied tasks..

Rebase

Tue, Aug 4, 10:12 AM · Restricted Project
ABataev updated the diff for D84887: [OPENMP]Fix codegen for is_device_ptr component, captured by reference..

Rebase

Tue, Aug 4, 9:21 AM · Restricted Project
ABataev requested review of D85216: [LIBOMPTARGET]Fix order of mapper data for targetDataEnd function..
Tue, Aug 4, 9:06 AM · Restricted Project

Mon, Aug 3

ABataev added a comment to D84470: [OpenMP 5.0] Fix user-defined mapper privatization in tasks.

Add a test

Mon, Aug 3, 2:18 PM
ABataev updated the diff for D83261: [OPENMP]Redesign of OMPExecutableDirective representation..

Fixed diagnostic emission for declare mapper

Mon, Aug 3, 10:33 AM · Restricted Project
ABataev updated the diff for D83261: [OPENMP]Redesign of OMPExecutableDirective representation..
  1. Added OMPChildren to the declartive directive to simplify their representation.
  2. Reduce memory fragmentation for declare mapper.
  3. Removed previously introduced memory fragmentation.
Mon, Aug 3, 9:27 AM · Restricted Project

Fri, Jul 31

ABataev added a reviewer for D82245: [libomptarget] Add support for target update non-contiguous: grokos.
Fri, Jul 31, 12:46 PM · Restricted Project, Restricted Project
ABataev added inline comments to D57779: [SLP] Add support for throttling..
Fri, Jul 31, 11:45 AM · Restricted Project
ABataev added inline comments to D57779: [SLP] Add support for throttling..
Fri, Jul 31, 11:35 AM · Restricted Project

Thu, Jul 30

ABataev accepted D84260: [OpenMP][AMDGCN] Support OpenMP offloading for AMDGCN architecture - Part 3.

LG

Thu, Jul 30, 11:53 AM · Restricted Project
ABataev added inline comments to D84260: [OpenMP][AMDGCN] Support OpenMP offloading for AMDGCN architecture - Part 3.
Thu, Jul 30, 11:34 AM · Restricted Project
ABataev accepted D84422: [OpenMP] Fix `present` for exit from `omp target data`.

LG

Thu, Jul 30, 8:34 AM · Restricted Project, Restricted Project, Restricted Project
ABataev added inline comments to D84260: [OpenMP][AMDGCN] Support OpenMP offloading for AMDGCN architecture - Part 3.
Thu, Jul 30, 8:27 AM · Restricted Project
ABataev committed rG622e46156d9a: [OPENMP]Fix PR46824: Global declare target pointer cannot be accessed in target… (authored by ABataev).
[OPENMP]Fix PR46824: Global declare target pointer cannot be accessed in target…
Thu, Jul 30, 8:19 AM
ABataev added a reverting change for rG142d0d3ed8e0: [OPENMP]Fix PR46824: Global declare target pointer cannot be accessed in target…: rGb69357c2f4f2: Revert "[OPENMP]Fix PR46824: Global declare target pointer cannot be accessed….
Thu, Jul 30, 7:59 AM
ABataev committed rGb69357c2f4f2: Revert "[OPENMP]Fix PR46824: Global declare target pointer cannot be accessed… (authored by ABataev).
Revert "[OPENMP]Fix PR46824: Global declare target pointer cannot be accessed…
Thu, Jul 30, 7:59 AM
ABataev added a reverting change for D84767: [OPENMP]Fix PR46824: Global declare target pointer cannot be accessed in target region.: rGb69357c2f4f2: Revert "[OPENMP]Fix PR46824: Global declare target pointer cannot be accessed….
Thu, Jul 30, 7:59 AM · Restricted Project, Restricted Project
ABataev committed rG142d0d3ed8e0: [OPENMP]Fix PR46824: Global declare target pointer cannot be accessed in target… (authored by ABataev).
[OPENMP]Fix PR46824: Global declare target pointer cannot be accessed in target…
Thu, Jul 30, 6:41 AM
ABataev closed D84767: [OPENMP]Fix PR46824: Global declare target pointer cannot be accessed in target region..
Thu, Jul 30, 6:41 AM · Restricted Project, Restricted Project

Wed, Jul 29

ABataev requested review of D84887: [OPENMP]Fix codegen for is_device_ptr component, captured by reference..
Wed, Jul 29, 2:06 PM · Restricted Project
ABataev updated the diff for D84767: [OPENMP]Fix PR46824: Global declare target pointer cannot be accessed in target region..

Fixed comment in test

Wed, Jul 29, 11:36 AM · Restricted Project, Restricted Project
ABataev updated the diff for D84457: [OPENMP]Fix PR37671: Privatize local(private) variables in untied tasks..

Rebase

Wed, Jul 29, 11:23 AM · Restricted Project
ABataev updated the diff for D84767: [OPENMP]Fix PR46824: Global declare target pointer cannot be accessed in target region..

Rebase + apply to global pointers only.

Wed, Jul 29, 10:41 AM · Restricted Project, Restricted Project
ABataev added inline comments to D84260: [OpenMP][AMDGCN] Support OpenMP offloading for AMDGCN architecture - Part 3.
Wed, Jul 29, 8:16 AM · Restricted Project
ABataev added inline comments to D57779: [SLP] Add support for throttling..
Wed, Jul 29, 7:31 AM · Restricted Project
ABataev added a comment to D84844: [OpenMP] Ensure testing for versions 4.5 and default - Part 1.

I'm not sure if this is profitable. All these changes increase the time of the test execution significantly in many cases while execution goes the same control paths. Some smart changes are required, only for things changed from version to version.

Wed, Jul 29, 7:04 AM · Restricted Project
ABataev accepted D83281: [OpenMP] Allow traits for the OpenMP context selector `isa`.

LG with a nit.

Wed, Jul 29, 6:18 AM · Restricted Project, Restricted Project
ABataev added a comment to D84767: [OPENMP]Fix PR46824: Global declare target pointer cannot be accessed in target region..

This patch
GPU activities: 96.99% 350.05ms 10 35.005ms 1.5680us 350.00ms [CUDA memcpy HtoD]
before the July21 change
GPU activities: 95.33% 20.317ms 4 5.0793ms 1.6000us 20.305ms [CUDA memcpy HtoD]
Still more transfer than it should.

@ABataev could you have a look? My July 21 compiler was built before "[OPENMP]Fix PR46012: declare target pointer cannot be accessed in target region." gets in.

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

Tue, Jul 28

ABataev updated the diff for D84767: [OPENMP]Fix PR46824: Global declare target pointer cannot be accessed in target region..

Fixed ref count for base pointer + extra test.

Tue, Jul 28, 2:42 PM · Restricted Project, Restricted Project
ABataev added inline comments to D84422: [OpenMP] Fix `present` for exit from `omp target data`.
Tue, Jul 28, 1:43 PM · Restricted Project, Restricted Project, Restricted Project
ABataev accepted D84711: [OpenMP] Implement TR8 `present` motion modifier in Clang (1/2).

LG

Tue, Jul 28, 1:41 PM · Restricted Project
ABataev added inline comments to D84711: [OpenMP] Implement TR8 `present` motion modifier in Clang (1/2).
Tue, Jul 28, 12:51 PM · Restricted Project
ABataev added inline comments to D83779: [SLP] Fix order of `insertelement`/`insertvalue` seed operands.
Tue, Jul 28, 12:15 PM · Restricted Project
ABataev added inline comments to D84711: [OpenMP] Implement TR8 `present` motion modifier in Clang (1/2).
Tue, Jul 28, 11:31 AM · Restricted Project
ABataev accepted D84710: [OpenMP][NFC] Consolidate `to` and `from` clause modifiers.

LG

Tue, Jul 28, 11:22 AM · Restricted Project
ABataev added inline comments to D84422: [OpenMP] Fix `present` for exit from `omp target data`.
Tue, Jul 28, 11:20 AM · Restricted Project, Restricted Project, Restricted Project
ABataev updated the diff for D84457: [OPENMP]Fix PR37671: Privatize local(private) variables in untied tasks..

Rebase

Tue, Jul 28, 10:38 AM · Restricted Project
ABataev requested review of D84767: [OPENMP]Fix PR46824: Global declare target pointer cannot be accessed in target region..
Tue, Jul 28, 10:11 AM · Restricted Project, Restricted Project
ABataev added a comment to D84182: [OPENMP]Fix PR46012: declare target pointer cannot be accessed in target region..

@ABataev:

After this patch was committed, I tried to run the following example:

#include <stdio.h>

int *yptr;

int main() {
  int y[10];
  y[1] = 1;
  yptr = &y[0];

  printf("&yptr = %p\n", &yptr);
  printf("&y[0] = %p\n", &y[0]);

  #pragma omp target data map(to: yptr[0:5])
  #pragma omp target
  {
    printf("y = %d\n", yptr[1]);
    yptr[1] = 10;
    printf("y = %d\n", yptr[1]);
  }

  printf("y = %d\n", yptr[1]);
  return 0;
}

The arguments clang generates are:

1) base = &y[0], begin = &yptr, size = 8, type = TARGET_PARAM | TO
2) base = &yptr, begin = &y[0], size = 8, type = PTR_AND_OBJ | TO

The second argument is correct, the first argument doesn't make much sense. I believe it should have its base set to &yptr, not &y[0].
y[0] is not the base for anything, it's only the pointee object.

I hit the same issue and it results incorrect mapping.
https://bugs.llvm.org/show_bug.cgi?id=46868
In addition, only yptr is touched inside the target region. After this patch, two mappings instead of one occurs.

Tue, Jul 28, 6:40 AM · Restricted Project

Mon, Jul 27

ABataev added inline comments to D84470: [OpenMP 5.0] Fix user-defined mapper privatization in tasks.
Mon, Jul 27, 8:47 AM

Fri, Jul 24

ABataev added a comment to D84182: [OPENMP]Fix PR46012: declare target pointer cannot be accessed in target region..

@ABataev:

After this patch was committed, I tried to run the following example:

#include <stdio.h>

int *yptr;

int main() {
  int y[10];
  y[1] = 1;
  yptr = &y[0];

  printf("&yptr = %p\n", &yptr);
  printf("&y[0] = %p\n", &y[0]);

  #pragma omp target data map(to: yptr[0:5])
  #pragma omp target
  {
    printf("y = %d\n", yptr[1]);
    yptr[1] = 10;
    printf("y = %d\n", yptr[1]);
  }

  printf("y = %d\n", yptr[1]);
  return 0;
}

The arguments clang generates are:

1) base = &y[0], begin = &yptr, size = 8, type = TARGET_PARAM | TO
2) base = &yptr, begin = &y[0], size = 8, type = PTR_AND_OBJ | TO

The second argument is correct, the first argument doesn't make much sense. I believe it should have its base set to &yptr, not &y[0].
y[0] is not the base for anything, it's only the pointee object.

Fri, Jul 24, 4:35 PM · Restricted Project
ABataev added a comment to D68100: [OpenMP 5.0] declare mapper runtime implementation.

Can you revert the patches for declare mapper until it is fixed?

Fri, Jul 24, 2:57 PM · Restricted Project
ABataev added a comment to D84192: [OpenMP5.0] map item can be non-contiguous for target update.

@ABataev, do I need to wait for the runtime patch to commit this one? If so, do you have some recommend reviewers for me to add to that patch? I have pinged several times for that patch but haven't got many reviews for it. Thanks!

Fri, Jul 24, 9:08 AM · Restricted Project
ABataev accepted D84192: [OpenMP5.0] map item can be non-contiguous for target update.

LG

Fri, Jul 24, 9:02 AM · Restricted Project
ABataev added inline comments to D84192: [OpenMP5.0] map item can be non-contiguous for target update.
Fri, Jul 24, 8:43 AM · Restricted Project
ABataev committed rG9840208db698: [OPENMP] Fix PR46730: Fix compiler crash on taskloop over constructible loop… (authored by ABataev).
[OPENMP] Fix PR46730: Fix compiler crash on taskloop over constructible loop…
Fri, Jul 24, 7:50 AM
ABataev closed D83909: [OPENMP] Fix PR46730: Fix compiler crash on taskloop over constructible loop counters..
Fri, Jul 24, 7:49 AM · Restricted Project

Thu, Jul 23

ABataev updated the diff for D83909: [OPENMP] Fix PR46730: Fix compiler crash on taskloop over constructible loop counters..

Rebase

Thu, Jul 23, 12:53 PM · Restricted Project
Herald added a project to D84457: [OPENMP]Fix PR37671: Privatize local(private) variables in untied tasks.: Restricted Project.
Thu, Jul 23, 12:43 PM · Restricted Project
ABataev added inline comments to D83281: [OpenMP] Allow traits for the OpenMP context selector `isa`.
Thu, Jul 23, 8:51 AM · Restricted Project, Restricted Project
ABataev added inline comments to D83281: [OpenMP] Allow traits for the OpenMP context selector `isa`.
Thu, Jul 23, 8:37 AM · Restricted Project, Restricted Project

Wed, Jul 22

ABataev added a comment to D84192: [OpenMP5.0] map item can be non-contiguous for target update.

Also, what about compatibility with declare mapper? Can you add tests for it?

There's a restriction for map clause that non-contiguous is not allowed and I guess it also applies to declare mapper.

I see that to/from clauses allow to use mappers too:

to([mapper(mapper-identifier):]locator-list) from([mapper(mapper-identifier):]locator-list

I'm confused of how to use to([mapper(mapper-identifier):]locator-list) with array section.
For this case:

class C {
public:
  int a;
  double b[3][4][5];
};

#pragma omp declare mapper(id: C s) map(s.a, s.b[0:3][0:4][0:5])

#pragma omp target update from(mapper(id): c)

Clang already has a semantic check in from clause when mapper is used: "mapper type must be of struct, union or class type".
So the only item I can put in from clause in the above example is c and I cannot put c.b[0:2][1:2][0:2] or any even c.b[0:2].

Does clang compile your example? If not, shall it be allowed for to/from clauses or not?

Clang can compile my example but the problem is that Clang do not accept something like #pragma omp target update from(mapper(id): c.b[0:2][1:2][2:2]) (non-contiguous) or even #pragma omp target update from(mapper(id): c.b[2][1][0:2]) (contiguous).
Actually, Clang now only accepts c as struct/union/class type in from(mapper(id): c). And the reason for the restriction is from declare mapper directive - "The type must be of struct, union or class type in C and C++".

And it is fine. How does it work in declare mapper, the main question? Does it support extended array sections format mapoers with maps, to and from? Shall it be supported in declare mapper at all?

After discussing with @dreachem, my understanding is that it is not incorrect to not allowing extended/non-contiguous array section to appear in declare mapper.
For the declare mapper directive, since spec only allows map clause, extended array section (with stride) or non-contiguous array section are both not allowed.
For using the mapper in map/to/from clause, if mapping or updating an array section of type T, where there is a mapper declared for T, then the mapper needs to apply as if to each element of the array or array section. Spec is intentionally not sufficiently clear on this for target update so the semantic check in Clang is not incorrect. Which lead to the fact that I might not need to support extended/non-contiguous array section for declare mapper.

Wed, Jul 22, 12:17 PM · Restricted Project
ABataev added a comment to D83261: [OPENMP]Redesign of OMPExecutableDirective representation..
  1. OMPChildren class uses standard TrailingObjects harness instead of manual calculation.

Note that that having a separate object defeats the purpose of TrailingObjects of having just a single allocation per AST node. If we do separate objects, we could also have member pointers to arrays.

Wed, Jul 22, 6:34 AM · Restricted Project
ABataev updated the diff for D57059: [SLP] Initial support for the vectorization of the non-power-of-2 vectors..

Rebase + fix

Wed, Jul 22, 6:16 AM · Restricted Project
ABataev committed rGbe37f13e2dde: [SLP]Add an extra test for vectorization of non-pow-2 trees, NFC. (authored by ABataev).
[SLP]Add an extra test for vectorization of non-pow-2 trees, NFC.
Wed, Jul 22, 6:14 AM
ABataev added inline comments to D57059: [SLP] Initial support for the vectorization of the non-power-of-2 vectors..
Wed, Jul 22, 5:43 AM · Restricted Project

Tue, Jul 21

ABataev added a comment to D84192: [OpenMP5.0] map item can be non-contiguous for target update.

Also, what about compatibility with declare mapper? Can you add tests for it?

There's a restriction for map clause that non-contiguous is not allowed and I guess it also applies to declare mapper.

I see that to/from clauses allow to use mappers too:

to([mapper(mapper-identifier):]locator-list) from([mapper(mapper-identifier):]locator-list

I'm confused of how to use to([mapper(mapper-identifier):]locator-list) with array section.
For this case:

class C {
public:
  int a;
  double b[3][4][5];
};

#pragma omp declare mapper(id: C s) map(s.a, s.b[0:3][0:4][0:5])

#pragma omp target update from(mapper(id): c)

Clang already has a semantic check in from clause when mapper is used: "mapper type must be of struct, union or class type".
So the only item I can put in from clause in the above example is c and I cannot put c.b[0:2][1:2][0:2] or any even c.b[0:2].

Does clang compile your example? If not, shall it be allowed for to/from clauses or not?

Clang can compile my example but the problem is that Clang do not accept something like #pragma omp target update from(mapper(id): c.b[0:2][1:2][2:2]) (non-contiguous) or even #pragma omp target update from(mapper(id): c.b[2][1][0:2]) (contiguous).
Actually, Clang now only accepts c as struct/union/class type in from(mapper(id): c). And the reason for the restriction is from declare mapper directive - "The type must be of struct, union or class type in C and C++".

Tue, Jul 21, 3:55 PM · Restricted Project
ABataev added a comment to D84192: [OpenMP5.0] map item can be non-contiguous for target update.

Also, what about compatibility with declare mapper? Can you add tests for it?

There's a restriction for map clause that non-contiguous is not allowed and I guess it also applies to declare mapper.

I see that to/from clauses allow to use mappers too:

to([mapper(mapper-identifier):]locator-list) from([mapper(mapper-identifier):]locator-list

I'm confused of how to use to([mapper(mapper-identifier):]locator-list) with array section.
For this case:

class C {
public:
  int a;
  double b[3][4][5];
};

#pragma omp declare mapper(id: C s) map(s.a, s.b[0:3][0:4][0:5])

#pragma omp target update from(mapper(id): c)

Clang already has a semantic check in from clause when mapper is used: "mapper type must be of struct, union or class type".
So the only item I can put in from clause in the above example is c and I cannot put c.b[0:2][1:2][0:2] or any even c.b[0:2].

Tue, Jul 21, 3:09 PM · Restricted Project
ABataev added a comment to D84192: [OpenMP5.0] map item can be non-contiguous for target update.

Also, what about compatibility with declare mapper? Can you add tests for it?

There's a restriction for map clause that non-contiguous is not allowed and I guess it also applies to declare mapper.

Tue, Jul 21, 2:08 PM · Restricted Project
ABataev added a comment to D83061: [OpenMP] Implement TR8 `present` map type modifier in Clang (1/2).

LG.

Thanks for the review.

As discussed in the review summary, please consider the following. A present map type modifier behavior that this patch does not attempt to implement is TR8 sec. 2.22.7.1 "map Clause", p. 319, L14-16:

If a map clause with a present map-type-modifier is present in a map
clause, then the effect of the clause is ordered before all other
map clauses that do not have the present modifier.

Compare to L10-11:

For a given construct, the effect of a map clause with the to, from,
or tofrom map-type is ordered before the effect of a map clause with
the alloc, release, or delete map-type.

As far as I can tell, Clang does not implement L10-11. Is that correct? If not, then I think both passages should be implemented together later. Any objections?

Looks like you're right. Yes, go ahead and implement it.

Are you ok for it to be a later patch after pushing these?

Tue, Jul 21, 1:07 PM · Restricted Project
ABataev committed rG13bfe4b226d2: [OPENMP]Fix PR46012: declare target pointer cannot be accessed in target region. (authored by ABataev).
[OPENMP]Fix PR46012: declare target pointer cannot be accessed in target region.
Tue, Jul 21, 12:49 PM
ABataev closed D84182: [OPENMP]Fix PR46012: declare target pointer cannot be accessed in target region..
Tue, Jul 21, 12:49 PM · Restricted Project
ABataev added a comment to D83061: [OpenMP] Implement TR8 `present` map type modifier in Clang (1/2).

LG.

Thanks for the review.

As discussed in the review summary, please consider the following. A present map type modifier behavior that this patch does not attempt to implement is TR8 sec. 2.22.7.1 "map Clause", p. 319, L14-16:

If a map clause with a present map-type-modifier is present in a map
clause, then the effect of the clause is ordered before all other
map clauses that do not have the present modifier.

Compare to L10-11:

For a given construct, the effect of a map clause with the to, from,
or tofrom map-type is ordered before the effect of a map clause with
the alloc, release, or delete map-type.

As far as I can tell, Clang does not implement L10-11. Is that correct? If not, then I think both passages should be implemented together later. Any objections?

Tue, Jul 21, 12:45 PM · Restricted Project
ABataev accepted D83061: [OpenMP] Implement TR8 `present` map type modifier in Clang (1/2).

LG. Please, land it after the runtime part

Tue, Jul 21, 12:31 PM · Restricted Project
ABataev added inline comments to D84260: [OpenMP][AMDGCN] Support OpenMP offloading for AMDGCN architecture - Part 3.
Tue, Jul 21, 12:08 PM · Restricted Project
ABataev added a comment to D83261: [OPENMP]Redesign of OMPExecutableDirective representation..
  1. OMPChildren class uses standard TrailingObjects harness instead of manual calculation.

I was going to argue that OMPExecutableDirective could derive from TrailingObjects as well, but it requires a template parameter for its final subclass. Good point!

  1. Child Stmt* based nodes are not related to the AsssociatedStmt* anymore and can exist independently.

It moved into the OMPChildren class. Not sure whether it is better.

Tue, Jul 21, 11:46 AM · Restricted Project
ABataev added a comment to D84192: [OpenMP5.0] map item can be non-contiguous for target update.

Also, what about compatibility with declare mapper? Can you add tests for it?

Tue, Jul 21, 11:36 AM · Restricted Project
ABataev added inline comments to D83061: [OpenMP] Implement TR8 `present` map type modifier in Clang (1/2).
Tue, Jul 21, 11:11 AM · Restricted Project
ABataev added inline comments to D83061: [OpenMP] Implement TR8 `present` map type modifier in Clang (1/2).
Tue, Jul 21, 8:42 AM · Restricted Project
ABataev accepted D84241: [OpenMP] Temporarily disable failing runtime tests for clang-12.

LG

Tue, Jul 21, 8:26 AM · Restricted Project