[flang-commits] [PATCH] D136254: [flang] add fir.declare codegen support

Peixin Qiao via Phabricator via flang-commits flang-commits at lists.llvm.org
Fri Oct 21 18:29:55 PDT 2022


peixin added a comment.

In D136254#3874589 <https://reviews.llvm.org/D136254#3874589>, @jeanPerier wrote:

> In D136254#3873494 <https://reviews.llvm.org/D136254#3873494>, @peixin wrote:
>
>> Will `fir.declare` be used for procedure pointer, too? I am looking at the procedure pointer. It seems the codegen has been supported (check the following example). Should the lowering support be delayed until HLFIR is ready? It seems that `fir.declare` only targets on Fortran variables as `HighLevelFIR.md` mentioned.
>>
>>   func.func private @foo(!fir.ref<(!fir.ref<i32>) -> f32>)
>>   
>>   func.func @func() -> ((!fir.ref<i32>) -> f32) {
>>     %0 = fir.alloca (!fir.ref<i32>) -> f32
>>     %1 = fir.load %0 : !fir.ref<(!fir.ref<i32>) -> f32>
>>     fir.call @foo(%0) : (!fir.ref<(!fir.ref<i32>) -> f32>) -> ()
>>     return %1 : (!fir.ref<i32>) -> f32
>>   }
>
> Yes, fir.declare will support them. I do not see huge reason to wait though. I think however that the FIR design intention was rather to use fir.ref<fir.boxproc<FunctType>> to abstract the detail of what procedure are in lowering.
> Also, I think procedure pointers will deserve a small doc to summarize in what kind of context they should appear, what are the constraints and what will be done in lowering.

Got it. Thanks a lot.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D136254/new/

https://reviews.llvm.org/D136254



More information about the flang-commits mailing list