[PATCH] D113566: [fir] Add fir.box_isarray, fir.box_isptr and fir.box_isalloc conversion.

Valentin Clement via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Thu Nov 11 01:46:15 PST 2021


clementval marked 2 inline comments as done.
clementval added inline comments.


================
Comment at: flang/lib/Optimizer/CodeGen/CodeGen.cpp:34-35
+/// `fir.box` attribute values as defined in flang/ISO_Fortran_binding.h.
+static constexpr unsigned kAttrPointer = CFI_attribute_pointer;
+static constexpr unsigned kAttrAllocatable = CFI_attribute_allocatable;
+
----------------
awarzynski wrote:
> clementval wrote:
> > clementval wrote:
> > > awarzynski wrote:
> > > > Why not use the macro directly?
> > > `fir.box` is an abstraction of a descriptor also we can get a compile time error in case the macro is not a uint. 
> > also it makes it homogenous with the `fir.box` field indexing added previously so the code is maybe easier to understand. 
> > we can get a compile time error in case the macro is not a uint
> 
> Any idea why wouldn't the original value be define as `uint`? That would make it easier for you here.
> 
> > also it makes it homogenous with the fir.box field indexing added previously so the code is maybe easier to understand.
> 
> Agreed, this does help a lot!
> 
> I think that you are doing a great job and a massive favour to all of us here. I'm just thinking that perhaps stuff  from "flang/ISO_Fortran_binding.h" should be wrapped in an enum class or something similar? Basically, sth to facilitate code re-use a bit better. WDYT? 
> > we can get a compile time error in case the macro is not a uint
> 
> Any idea why wouldn't the original value be define as `uint`? That would make it easier for you here.

Who knows what people can do. 

> 
> > also it makes it homogenous with the fir.box field indexing added previously so the code is maybe easier to understand.
> 
> Agreed, this does help a lot!
> 
> I think that you are doing a great job and a massive favour to all of us here. I'm just thinking that perhaps stuff  from "flang/ISO_Fortran_binding.h" should be wrapped in an enum class or something similar? Basically, sth to facilitate code re-use a bit better. WDYT? 

This could be an improvement but it's not something that's in the scope of this patch and will likely require some effort in fir-dev first. 



Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D113566



More information about the llvm-commits mailing list