<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css" style="display:none;"> P {margin-top:0;margin-bottom:0;} </style>
</head>
<body dir="ltr">
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
<span style="margin:0px;font-size:11pt;text-align:left;background-color:rgb(255, 255, 255)">Hello,</span></div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
<span style="margin:0px;font-size:11pt;text-align:left;background-color:rgb(255, 255, 255)"><br>
</span></div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
<span style="margin:0px;font-size:11pt;text-align:left;background-color:rgb(255, 255, 255)">I noticed that Giorgis Georgakoudis had done some work to simplify the code gen for #pragma omp parallel and #pragma omp parallel if() with <a href="https://reviews.llvm.org/D95976" target="_blank" rel="noopener noreferrer" data-auth="NotApplicable" data-linkindex="0" style="margin:0px">https://reviews.llvm.org/D95976</a> so
 that both cases generate a call to __kmpc_parallel_51 and the if condition is handled in the runtime.</span>
<div class="x__Entity x__EType_OWALinkPreview x__EId_OWALinkPreview x__EReadonly_1" style="margin:0px;font-size:15px;font-family:"Segoe UI", "Segoe UI Web (West European)", "Segoe UI", -apple-system, BlinkMacSystemFont, Roboto, "Helvetica Neue", sans-serif;color:rgb(32, 31, 30);text-align:left;background-color:rgb(255, 255, 255)">
</div>
<div style="margin:0px;font-size:11pt;text-align:left;background-color:rgb(255, 255, 255)">
<br>
</div>
<div style="margin:0px;font-size:11pt;text-align:left;background-color:rgb(255, 255, 255)">
Like #pragma omp parallel, #pragma omp task supports an if clause and the runtime calls generated for #pragma omp task if(false) are very different than the runtime calls generated for a task without an if condition or in the case where the condition evaluates
 to true.</div>
<div style="margin:0px;font-size:11pt;text-align:left;background-color:rgb(255, 255, 255)">
<br>
</div>
<div style="margin:0px;font-size:11pt;text-align:left;background-color:rgb(255, 255, 255)">
Are there any plans or interest in simplifying the code generation for #pragma omp task as well?</div>
<div style="margin:0px;font-size:11pt;text-align:left;background-color:rgb(255, 255, 255)">
<br>
</div>
<div style="margin:0px;font-size:11pt;text-align:left;background-color:rgb(255, 255, 255)">
There are definitely reasons why keeping the code generation as it is right now might be preferable. There is certain optimization information (such as interference, for example) which can be applied only when the task is not deferred - that is, in the #pragma
 omp task if(false) case - but the same is true for the #pragma omp parallel if(false) case.</div>
<div style="margin:0px;font-size:11pt;text-align:left;background-color:rgb(255, 255, 255)">
<br>
</div>
<div style="margin:0px;font-size:11pt;text-align:left;background-color:rgb(255, 255, 255)">
Best,</div>
<span style="margin:0px;font-size:11pt;text-align:left;background-color:rgb(255, 255, 255)">Bran Hagger (he/him)</span><br>
</div>
</body>
</html>