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

================
Comment at: clang/lib/CodeGen/TargetInfo.cpp:4205
 
-CharUnits PPC32_SVR4_ABIInfo::getParamTypeAlignment(QualType Ty) const {
+CharUnits PowerPC32ABIInfo::getParamTypeAlignment(QualType Ty) const {
   // Complex types are passed just like their elements
----------------
jasonliu wrote:
> sfertile wrote:
> > jasonliu wrote:
> > > So for AIX we are taking PowerPC32ABIInfo right now. And we know 
> > > EmitVAArg of this target does the right thing on AIX after the change. 
> > > But for other functions, for example, getParamTypeAlignment, 
> > > initDwarfEHRegSizeTable... Are we sure it's doing the right thing on AIX?
> > > If we are not sure, is there anything we want to do (etc, put a comment 
> > > on where it gets used or at the function definition)? Or are we fine to 
> > > just leave it as it is and have a TODO in our head?
> > Looking at the values in `initDwarfEHRegSizeTable` it has the right sizes 
> > for all the registers. Even though the OS is different the underlying 
> > hardware is the same. I'm not sure it's something that makes sense to 
> > support for AIX though, in which case I think its valid to return `true` to 
> > indicate its not supported. 
> > 
> > `getParamTypeAlignment` is used only in the context of the alignment for 
> > vaarg, we should make sure its correct for AIX since supporting vaarg is 
> > the scope of this patch.
> In that case, is it better if we have lit test to actually exercise the path 
> in getParamTypeAlignment to show that we actually confirmed the behavior is 
> correct for AIX? And if it is some path we do not care for now(ComplexType? 
> VectorType?), then we would want TODOs on them to show we need further 
> investigation later. 
>But for other functions, for example, getParamTypeAlignment, 
>initDwarfEHRegSizeTable... Are we sure it's doing the right thing on AIX?

The AIX stdarg headers show that alignment for the va_list is dependent on 
mode, so 4 on 32 and 8 on 64-bit. getParamAlignment looks like it aligns 4 for 
non-complex non-struct args. 



>If we are not sure, is there anything we want to do (etc, put a comment on 
>where it gets used or at the function definition)? Or are we fine to just 
>leave it as it is and have a TODO in our head?

We already took this path before this patch and I'm correcting some of the 
behaviour so it's correct for varargs on AIX. I think that we will need to 
address this depending on when/if we add an AIXABIInfo class.  I added a TODO 
on line 4247 for just that so I think that implies we will investigate 
everything required for the correct implementation of the whatever remains 
after the vaarg handling.  


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D76360



_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to