<feed xmlns='http://www.w3.org/2005/Atom'>
<title>llvm-project.git/offload/test/mapping, branch users/nico/python-2</title>
<subtitle>Unnamed repository; edit this file 'description' to name the repository.
</subtitle>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/'/>
<entry>
<title>[OpenMP] Fix crash with duplicate mapping on target directive (#146136)</title>
<updated>2025-06-29T21:41:24+00:00</updated>
<author>
<name>Julian Brown</name>
<email>julian.brown@amd.com</email>
</author>
<published>2025-06-29T21:41:24+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=b62b58d1bbbff7ca200f166603c80470639a0632'/>
<id>b62b58d1bbbff7ca200f166603c80470639a0632</id>
<content type='text'>
OpenMP allows duplicate mappings, i.e. in OpenMP 6.0, 7.9.6 "map
Clause":

  Two list items of the map clauses on the same construct must not share
  original storage unless one of the following is true: they are the same
  list item [or other omitted reasons]"

Duplicate mappings can arise as a result of user-defined mapper
processing (which I think is a separate bug, and is not addressed here),
but also in straightforward cases such as:

  #pragma omp target map(tofrom: s.mem[0:10]) map(tofrom: s.mem[0:10])

Both these cases cause crashes at runtime at present, due to an
unfortunate interaction between reference counting behaviour and shadow
pointer handling for blocks. This is what happens:

  1.  The member "s.mem" is copied to the target
  2.  A shadow pointer is created, modifying the pointer on the target
  3.  The member "s.mem" is copied to the target again
  4. The previous shadow pointer metadata is still present, so the runtime doesn't modify the target pointer a second time.

The fix is to disable step 3 if we've already done step 2 for a given
block that has the "is new" flag set.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
OpenMP allows duplicate mappings, i.e. in OpenMP 6.0, 7.9.6 "map
Clause":

  Two list items of the map clauses on the same construct must not share
  original storage unless one of the following is true: they are the same
  list item [or other omitted reasons]"

Duplicate mappings can arise as a result of user-defined mapper
processing (which I think is a separate bug, and is not addressed here),
but also in straightforward cases such as:

  #pragma omp target map(tofrom: s.mem[0:10]) map(tofrom: s.mem[0:10])

Both these cases cause crashes at runtime at present, due to an
unfortunate interaction between reference counting behaviour and shadow
pointer handling for blocks. This is what happens:

  1.  The member "s.mem" is copied to the target
  2.  A shadow pointer is created, modifying the pointer on the target
  3.  The member "s.mem" is copied to the target again
  4. The previous shadow pointer metadata is still present, so the runtime doesn't modify the target pointer a second time.

The fix is to disable step 3 if we've already done step 2 for a given
block that has the "is new" flag set.</pre>
</div>
</content>
</entry>
<entry>
<title>[Clang][OpenMP] Fix mapping of arrays of structs with members with mappers (#142511)</title>
<updated>2025-06-11T19:03:55+00:00</updated>
<author>
<name>Abhinav Gaba</name>
<email>abhinav.gaba@intel.com</email>
</author>
<published>2025-06-11T19:03:55+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=02b6849cf1feb425885bf6f5ee505d5cd4a824d7'/>
<id>02b6849cf1feb425885bf6f5ee505d5cd4a824d7</id>
<content type='text'>
This builds upon #101101 from @jyu2-git, which used compiler-generated
mappers when mapping an array-section of structs with members that have
user-defined default mappers.

Now we do the same when mapping arrays of structs.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This builds upon #101101 from @jyu2-git, which used compiler-generated
mappers when mapping an array-section of structs with members that have
user-defined default mappers.

Now we do the same when mapping arrays of structs.</pre>
</div>
</content>
</entry>
<entry>
<title>[Offload][NFC] Fix typos discovered by codespell (#125119)</title>
<updated>2025-01-31T15:35:29+00:00</updated>
<author>
<name>Christian Clauss</name>
<email>cclauss@me.com</email>
</author>
<published>2025-01-31T15:35:29+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=1f56bb3137827d66093b66aa3a6447fdaba61783'/>
<id>1f56bb3137827d66093b66aa3a6447fdaba61783</id>
<content type='text'>
https://github.com/codespell-project/codespell

% `codespell
--ignore-words-list=archtype,hsa,identty,inout,iself,nd,te,ths,vertexes
--write-changes`</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
https://github.com/codespell-project/codespell

% `codespell
--ignore-words-list=archtype,hsa,identty,inout,iself,nd,te,ths,vertexes
--write-changes`</pre>
</div>
</content>
</entry>
<entry>
<title>FIX: Fix test failure in offload/test/mapping/power_of_two_alignment.c</title>
<updated>2024-12-02T02:40:46+00:00</updated>
<author>
<name>Shilei Tian</name>
<email>i@tianshilei.me</email>
</author>
<published>2024-12-02T02:40:46+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=8cb44859cc31929521c09fc6a8add66d53db44de'/>
<id>8cb44859cc31929521c09fc6a8add66d53db44de</id>
<content type='text'>
A C file with `template` in it. Awesome.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
A C file with `template` in it. Awesome.
</pre>
</div>
</content>
</entry>
<entry>
<title>[NFC][Offload] Correct the compile command of two C test files (#118243)</title>
<updated>2024-12-02T02:34:26+00:00</updated>
<author>
<name>Shilei Tian</name>
<email>i@tianshilei.me</email>
</author>
<published>2024-12-02T02:34:26+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=ed7a8f15564f11ce8ceabaa925a26842302b8450'/>
<id>ed7a8f15564f11ce8ceabaa925a26842302b8450</id>
<content type='text'>
The compile command for the two C test files are `compilexx`, which is
actually
for C++ compilation.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The compile command for the two C test files are `compilexx`, which is
actually
for C++ compilation.</pre>
</div>
</content>
</entry>
<entry>
<title>[Offload] Change x86_64-pc-linux to x86_64-unknown-linux (#107023)</title>
<updated>2024-09-03T12:25:33+00:00</updated>
<author>
<name>Jan Patrick Lehr</name>
<email>JanPatrick.Lehr@amd.com</email>
</author>
<published>2024-09-03T12:25:33+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=1a0cf245ac86c2f35c89cab47f83e9b474032e41'/>
<id>1a0cf245ac86c2f35c89cab47f83e9b474032e41</id>
<content type='text'>
It appears that the RUNTIMES build prefers the x86-64-unknown-linux-gnu
triple notation for the host. This fixes runtime / test breakages when
compiler-rt is used as the CLANG_DEFAULT_RTLIB.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
It appears that the RUNTIMES build prefers the x86-64-unknown-linux-gnu
triple notation for the host. This fixes runtime / test breakages when
compiler-rt is used as the CLANG_DEFAULT_RTLIB.</pre>
</div>
</content>
</entry>
<entry>
<title>Test faild with amd. (#101781)</title>
<updated>2024-08-03T00:53:23+00:00</updated>
<author>
<name>jyu2-git</name>
<email>jennifer.yu@intel.com</email>
</author>
<published>2024-08-03T00:53:23+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=a43677c17266308fb615cc37d03dcff87e7e9a5f'/>
<id>a43677c17266308fb615cc37d03dcff87e7e9a5f</id>
<content type='text'>
Add unspport.

This is relate #101101</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Add unspport.

This is relate #101101</pre>
</div>
</content>
</entry>
<entry>
<title>[OpenMP] Generate implicit default mapper for mapping array section. (#101101)</title>
<updated>2024-08-03T00:22:40+00:00</updated>
<author>
<name>jyu2-git</name>
<email>jennifer.yu@intel.com</email>
</author>
<published>2024-08-03T00:22:40+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=d8b61dd84b1acbc4f5a84b09bc1abd552a949189'/>
<id>d8b61dd84b1acbc4f5a84b09bc1abd552a949189</id>
<content type='text'>
This is only for struct containing nested structs with user defined
mappers.

Add four functions:
1&gt;buildImplicitMap: build map for default mapper
2&gt;buildImplicitMapper:  build default mapper.
3&gt;hasUserDefinedMapper for given mapper name and mapper type, lookup
user defined map, if found one return true.
4&gt;isImplicitMapperNeeded check if Mapper is needed

During create map, in checkMappableExpressionList, call
isImplicitMapperNeeded when it return true, call buildImplicitMapper to
generate implicit mapper and added to map clause.

https://github.com/llvm/llvm-project/pull/101101</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This is only for struct containing nested structs with user defined
mappers.

Add four functions:
1&gt;buildImplicitMap: build map for default mapper
2&gt;buildImplicitMapper:  build default mapper.
3&gt;hasUserDefinedMapper for given mapper name and mapper type, lookup
user defined map, if found one return true.
4&gt;isImplicitMapperNeeded check if Mapper is needed

During create map, in checkMappableExpressionList, call
isImplicitMapperNeeded when it return true, call buildImplicitMapper to
generate implicit mapper and added to map clause.

https://github.com/llvm/llvm-project/pull/101101</pre>
</div>
</content>
</entry>
<entry>
<title>[Offload][test]Fix typo of requires (#98327)</title>
<updated>2024-07-10T14:51:47+00:00</updated>
<author>
<name>Jinsong Ji</name>
<email>jinsong.ji@intel.com</email>
</author>
<published>2024-07-10T14:51:47+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=6556ba66b278c97b8461a24088e7924bdea52e02'/>
<id>6556ba66b278c97b8461a24088e7924bdea52e02</id>
<content type='text'>
Typos in 8823448807f3b1a1362d1417e062d763734e02f5.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Typos in 8823448807f3b1a1362d1417e062d763734e02f5.</pre>
</div>
</content>
</entry>
<entry>
<title>[Clang][OpenMP] This is addition fix for #92210. (#94802)</title>
<updated>2024-07-04T03:56:53+00:00</updated>
<author>
<name>jyu2-git</name>
<email>jennifer.yu@intel.com</email>
</author>
<published>2024-07-04T03:56:53+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=32f7672acc92d6b3d9b64cfeb9b25c31ae542337'/>
<id>32f7672acc92d6b3d9b64cfeb9b25c31ae542337</id>
<content type='text'>
Fix another runtime problem when explicit map both pointer and pointee
in target data region.

In #92210, problem is only addressed in target region, but missing for
target data region.

The change just passing AreBothBasePtrAndPteeMapped in
generateInfoForComponentList when processing target data.

---------

Co-authored-by: Alexey Bataev &lt;a.bataev@gmx.com&gt;</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Fix another runtime problem when explicit map both pointer and pointee
in target data region.

In #92210, problem is only addressed in target region, but missing for
target data region.

The change just passing AreBothBasePtrAndPteeMapped in
generateInfoForComponentList when processing target data.

---------

Co-authored-by: Alexey Bataev &lt;a.bataev@gmx.com&gt;</pre>
</div>
</content>
</entry>
</feed>
