[PATCH] D93659: [AIX][XCOFF] emit vector info of traceback table.

Digger Lin via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Thu Jun 10 08:38:41 PDT 2021


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


================
Comment at: llvm/include/llvm/CodeGen/MachineRegisterInfo.h:860
   /// function. This checks that no machine operands exist for the register or
-  /// any of its aliases. The register is also considered used when it is set
-  /// in the UsedPhysRegMask.
-  bool isPhysRegUsed(MCRegister PhysReg) const;
+  /// any of its aliases. If SkipTestUsedPhysRegMask is false, the register is
+  /// considered used when it is set in the UsedPhysRegMask.
----------------
jasonliu wrote:
> 
thanks


================
Comment at: llvm/lib/Target/PowerPC/PPCMachineFunctionInfo.h:135
+  /// ParamTypes - Store all the paramters type.
+  SmallVector<ParamType, 32> ParamtersType;
 
----------------
jasonliu wrote:
> DiggerLin wrote:
> > DiggerLin wrote:
> > > jasonliu wrote:
> > > > Does this store the parameter types when the parameter is on stack? Right now, it doesn't look like so. And this sounds like we are trying to store all paramters including the one on stack.
> > > > Could we add a test case for testing parameters on stack?
> > > we do not store the  parameter types when the parameter is on stack.
> > in the llvm/test/CodeGen/PowerPC/aix-emit-tracebacktable.ll , there are some parameter are stored on stack.
> Consider this test case: 
> ```
> int foo(int a, int b, int c, float d, int e, int f, int g, int h, int i,  float j, int k) {
>   return k;
> }
> ```
> The print out I get is: 
> ```
> .vbyte  4, 0x10400000                   # Parameter type = i, i, i, f, i, i, i, i, f
> ```
> However, I'm expecting this if it supports parameter saved on stack correctly:
>  # Parameter type = i, i, i, f, i, i, i, i, **i, ** f, **i**
> 
> Notice the two `i` are missing around the last `f`.
we only care about the parameter which are passed in register for Parameter type.
there are only 8 GPR for parameter saved.  i, i, i, f(occupied on a FPR and burned a GPR), i, i, i, i, already 8 GPR. 


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D93659



More information about the llvm-commits mailing list