inlining and directives

I am trying to use accelerator directives (!$acc region) around a do loop with function calls in it. Since these are not supported, I need to inline them. The inline is successful (according in the -Minfo compiler report) but I still get an “accelerator region ignored” message but for only one of the five subroutines inlined I get the following explanation:

Accelerator restriction: unsupported operation: ACON

My question is what is the operation ACON? This seems to be some internal compiler operation. The subroutine does reshape the arrays passed to it but other than that appears to do nothing unusual and is similar to the other four that appear to be okay (or at least produced no warnings)

I am using
%pgf90 -V

pgf90 11.7-0 64-bit target on x86-64 Linux -tp istanbul


and I compile with the flags:

-Minline=reshape,binvcrhsk… list of subroutines to inline
-ta=nvidia,time
-Minfo=all,ccff

Any comments would be appreciated.

Hi Mark,

Sorry to see you are having trouble. This appears to be a known issue that is under investigation by our developers.

Best regards,

+chris

Chris,

Thanks for the update.

-Mark

Hi Mark,

Are you trying to pass pointers? When passing pointers, the actual argument is being assigned to the dummy argument. However since pointer manipulation, including assignment is not supported yet in the accelerator model, this operation (ACON) fails.

Note that this issue is being tracked as TPR#18368. I have added a note the TPR requesting this post be updated once a solution is available. However, given the complexity of the issue, I doubt it will be any time soon.

Best Regards,
Mat