<feed xmlns='http://www.w3.org/2005/Atom'>
<title>llvm-project.git/clang/test/OpenMP/taskgroup_codegen.cpp, branch main</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>[mlir][OpenMP] fix crash outlining infinite loop (#129872)</title>
<updated>2025-03-07T11:02:52+00:00</updated>
<author>
<name>Tom Eccles</name>
<email>tom.eccles@arm.com</email>
</author>
<published>2025-03-07T11:02:52+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=f7daa9d302a82f35c3b9ed4cede23ab808462b4f'/>
<id>f7daa9d302a82f35c3b9ed4cede23ab808462b4f</id>
<content type='text'>
Previously an extra block was created by splitting the previous exit
block. This produced incorrect results when the outlined region
statically never terminated because then there wouldn't be a valid exit
block for the outlined region, this caused this newly added block to
have an incoming edge from outside of the outlining region, which caused
outlining to fail.

So far as I can tell this extra block no longer serves any purpose. The
comment says it is supposed to collate multiple control flow edges into
one place, but the code as it is now does not achieve this. In fact, as
can be seen from the changes to lit tests, this block was not actually
outlined in the end. This is because there are actually two code
extractors: one in the callback for creating a parallel op which is used
to find what the input/output variables are (which does have this block
added to it), and another one which actually does the outlining (which
this block was not added to).

Tested with the gfortran and fujitsu test suites.

Fixes #112884</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Previously an extra block was created by splitting the previous exit
block. This produced incorrect results when the outlined region
statically never terminated because then there wouldn't be a valid exit
block for the outlined region, this caused this newly added block to
have an incoming edge from outside of the outlining region, which caused
outlining to fail.

So far as I can tell this extra block no longer serves any purpose. The
comment says it is supposed to collate multiple control flow edges into
one place, but the code as it is now does not achieve this. In fact, as
can be seen from the changes to lit tests, this block was not actually
outlined in the end. This is because there are actually two code
extractors: one in the callback for creating a parallel op which is used
to find what the input/output variables are (which does have this block
added to it), and another one which actually does the outlining (which
this block was not added to).

Tested with the gfortran and fujitsu test suites.

Fixes #112884</pre>
</div>
</content>
</entry>
<entry>
<title>[OpenMP] Prefix outlined and reduction func names with original func's name</title>
<updated>2023-04-19T20:00:26+00:00</updated>
<author>
<name>Itay Bookstein</name>
<email>itay.bookstein@nextsilicon.com</email>
</author>
<published>2022-12-23T09:35:47+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=782c59a4eef0bca8546b0cfbb1e48a9fcd044c93'/>
<id>782c59a4eef0bca8546b0cfbb1e48a9fcd044c93</id>
<content type='text'>
This patch prefixes omp outlined helpers and reduction funcs
with the original function's name.

Reviewed By: jdoerfert

Differential Revision: https://reviews.llvm.org/D140722
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This patch prefixes omp outlined helpers and reduction funcs
with the original function's name.

Reviewed By: jdoerfert

Differential Revision: https://reviews.llvm.org/D140722
</pre>
</div>
</content>
</entry>
<entry>
<title>Revert "[OpenMP] Prefix outlined and reduction func names with original func's name"</title>
<updated>2023-04-19T16:08:49+00:00</updated>
<author>
<name>Itay Bookstein</name>
<email>itay.bookstein@nextsilicon.com</email>
</author>
<published>2023-04-19T16:08:11+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=6fdd13e0ec61dfa5bd631ec44d2752d965c26436'/>
<id>6fdd13e0ec61dfa5bd631ec44d2752d965c26436</id>
<content type='text'>
This reverts commit 029bfc311d4d7d3cd90be81bb08c046848796d02.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This reverts commit 029bfc311d4d7d3cd90be81bb08c046848796d02.
</pre>
</div>
</content>
</entry>
<entry>
<title>[OpenMP] Prefix outlined and reduction func names with original func's name</title>
<updated>2023-04-19T16:05:21+00:00</updated>
<author>
<name>Itay Bookstein</name>
<email>itay.bookstein@nextsilicon.com</email>
</author>
<published>2022-12-23T09:35:47+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=029bfc311d4d7d3cd90be81bb08c046848796d02'/>
<id>029bfc311d4d7d3cd90be81bb08c046848796d02</id>
<content type='text'>
This patch attempts to prefix omp outlined helpers and reduction funcs
with the original function's name.

Reviewed By: jdoerfert

Differential Revision: https://reviews.llvm.org/D140722
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This patch attempts to prefix omp outlined helpers and reduction funcs
with the original function's name.

Reviewed By: jdoerfert

Differential Revision: https://reviews.llvm.org/D140722
</pre>
</div>
</content>
</entry>
<entry>
<title>[OpenMP][NFC] Rerun the update_cc_test_checks on most OpenMP tests</title>
<updated>2023-01-10T00:40:20+00:00</updated>
<author>
<name>Johannes Doerfert</name>
<email>johannes@jdoerfert.de</email>
</author>
<published>2023-01-08T21:08:49+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=afeeab1ff3527045fc3bed6035007c02f4c3b41e'/>
<id>afeeab1ff3527045fc3bed6035007c02f4c3b41e</id>
<content type='text'>
The script changes over time and unrelated changes to the test check
lines should not pollute future revisions.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The script changes over time and unrelated changes to the test check
lines should not pollute future revisions.
</pre>
</div>
</content>
</entry>
<entry>
<title>[clang][CodeGen] Add default attributes to __clang_call_terminate</title>
<updated>2022-11-29T13:09:52+00:00</updated>
<author>
<name>John Brawn</name>
<email>john.brawn@arm.com</email>
</author>
<published>2022-11-22T17:52:15+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=6b8900f7f91de489302886c7e48033407d13f8c1'/>
<id>6b8900f7f91de489302886c7e48033407d13f8c1</id>
<content type='text'>
When generating __clang_call_terminate use SetLLVMFunctionAttributes
to set the default function attributes, like we do for all the other
functions generated by clang. This fixes a problem where target
features from the command line weren't being applied to this function.

Differential Revision: https://reviews.llvm.org/D138679
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
When generating __clang_call_terminate use SetLLVMFunctionAttributes
to set the default function attributes, like we do for all the other
functions generated by clang. This fixes a problem where target
features from the command line weren't being applied to this function.

Differential Revision: https://reviews.llvm.org/D138679
</pre>
</div>
</content>
</entry>
<entry>
<title>[OpenMP] Convert tests to opaque pointers (NFC)</title>
<updated>2022-10-07T12:58:27+00:00</updated>
<author>
<name>Nikita Popov</name>
<email>npopov@redhat.com</email>
</author>
<published>2022-10-07T12:56:02+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=a290f3c8fcad7a706c824e13a0983efd629ee542'/>
<id>a290f3c8fcad7a706c824e13a0983efd629ee542</id>
<content type='text'>
Conversion performed using the script at:
https://gist.github.com/nikic/98357b71fd67756b0f064c9517b62a34

These are only tests where no manual fixup was required.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Conversion performed using the script at:
https://gist.github.com/nikic/98357b71fd67756b0f064c9517b62a34

These are only tests where no manual fixup was required.
</pre>
</div>
</content>
</entry>
<entry>
<title>Revert "[OpenMP] Codegen aggregate for outlined function captures"</title>
<updated>2022-09-15T03:08:46+00:00</updated>
<author>
<name>Dhruva Chakrabarti</name>
<email>Dhruva.Chakrabarti@amd.com</email>
</author>
<published>2022-09-15T03:08:46+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=839ac62c5085d895d3165bc5024db623a7a78813'/>
<id>839ac62c5085d895d3165bc5024db623a7a78813</id>
<content type='text'>
This reverts commit 7539e9cf811e590d9f12ae39673ca789e26386b4.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This reverts commit 7539e9cf811e590d9f12ae39673ca789e26386b4.
</pre>
</div>
</content>
</entry>
<entry>
<title>[OpenMP] Codegen aggregate for outlined function captures</title>
<updated>2022-09-15T00:54:05+00:00</updated>
<author>
<name>Giorgis Georgakoudis</name>
<email>georgakoudis1@llnl.gov</email>
</author>
<published>2022-09-15T00:09:54+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=7539e9cf811e590d9f12ae39673ca789e26386b4'/>
<id>7539e9cf811e590d9f12ae39673ca789e26386b4</id>
<content type='text'>
Parallel regions are outlined as functions with capture variables explicitly generated as distinct parameters in the function's argument list. That complicates the fork_call interface in the OpenMP runtime: (1) the fork_call is variadic since there is a variable number of arguments to forward to the outlined function, (2) wrapping/unwrapping arguments happens in the OpenMP runtime, which is sub-optimal, has been a source of ABI bugs, and has a hardcoded limit (16) in the number of arguments, (3)  forwarded arguments must cast to pointer types, which complicates debugging. This patch avoids those issues by aggregating captured arguments in a struct to pass to the fork_call.

Reviewed By: jdoerfert, jhuber6, ABataev

Differential Revision: https://reviews.llvm.org/D102107
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Parallel regions are outlined as functions with capture variables explicitly generated as distinct parameters in the function's argument list. That complicates the fork_call interface in the OpenMP runtime: (1) the fork_call is variadic since there is a variable number of arguments to forward to the outlined function, (2) wrapping/unwrapping arguments happens in the OpenMP runtime, which is sub-optimal, has been a source of ABI bugs, and has a hardcoded limit (16) in the number of arguments, (3)  forwarded arguments must cast to pointer types, which complicates debugging. This patch avoids those issues by aggregating captured arguments in a struct to pass to the fork_call.

Reviewed By: jdoerfert, jhuber6, ABataev

Differential Revision: https://reviews.llvm.org/D102107
</pre>
</div>
</content>
</entry>
<entry>
<title>[clang][OpenMP] Add IRBuilder support for taskgroup</title>
<updated>2022-07-21T05:43:57+00:00</updated>
<author>
<name>Shraiysh Vaishay</name>
<email>Shraiysh.Vaishay@amd.com</email>
</author>
<published>2022-07-21T04:58:12+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=61fa7a88c7b6360222d4107e938529f2dccc1176'/>
<id>61fa7a88c7b6360222d4107e938529f2dccc1176</id>
<content type='text'>
This patch makes use of OMPIRBuilder support for codegen of taskgroup
construct in clang.

Depends on D128203

Reviewed By: Meinersbur

Differential Revision: https://reviews.llvm.org/D129992
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This patch makes use of OMPIRBuilder support for codegen of taskgroup
construct in clang.

Depends on D128203

Reviewed By: Meinersbur

Differential Revision: https://reviews.llvm.org/D129992
</pre>
</div>
</content>
</entry>
</feed>
