[PATCH] D105067: [SystemZ] Emit .gnu_attribute for an externally visible vector abi.
    Ulrich Weigand via Phabricator via llvm-commits 
    llvm-commits at lists.llvm.org
       
    Mon Dec  5 06:37:15 PST 2022
    
    
  
uweigand added inline comments.
================
Comment at: clang/lib/CodeGen/TargetInfo.cpp:7393
+  mutable bool HasVisibleVecABIFlag = false;
+  mutable std::set<const Type *> SeenTypes;
+
----------------
I'm wondering if it wouldn't be preferable to move those (and the functions operating on them) to `SystemZTargetCodeGenInfo` instead?  There is precedent for `mutable` members in `XCodeTargetCodeGenInfo`.
================
Comment at: clang/lib/CodeGen/TargetInfo.cpp:7529
+    }
+  }
+  if (const auto *FT = Ty->getAs<FunctionType>())
----------------
I think this will also have to look into C++ base classes, similar to what is done in `isSingleElementStruct`, doesn't it?
================
Comment at: clang/lib/CodeGen/TargetInfo.cpp:7663
   CharUnits DirectAlign;
+  if (!CGF.CurFn->hasLocalLinkage())
+    handleExternallyVisibleObjABI(Ty.getTypePtr());
----------------
Not sure about this.   I think we need to do this unconditionally.  Think e.g. of a global function that gets called with a `va_list` argument, passes that `va_list` to another *local* function, which invokes the `va_arg` on it.  This would not be caught by your current code.
CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D105067/new/
https://reviews.llvm.org/D105067
    
    
More information about the llvm-commits
mailing list