[PATCH] D109948: [Clang] Enable _Complex __ibm128 type

John McCall via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Mon Sep 27 21:03:52 PDT 2021


rjmccall added inline comments.


================
Comment at: clang/include/clang/AST/ASTContext.h:1095
   CanQualType FloatComplexTy, DoubleComplexTy, LongDoubleComplexTy;
-  CanQualType Float128ComplexTy;
+  CanQualType Float128ComplexTy, Ibm128ComplexTy;
   CanQualType VoidPtrTy, NullPtrTy;
----------------
Huh.  I don't know why we precompute these.  I mean, it's not a huge start-up overhead for the compiler, but it's not nothing, and the use in `getFloatingTypeOfSizeWithinDomain` is not at all worth optimizing.

Would you mind writing up a patch that rips all of these out and makes the use-sites just build the appropriate complex type as needed?  And then we can land a patch for this that just does the one-liner to allow `_Complex __ibm128`.


================
Comment at: clang/lib/Sema/Sema.cpp:1898
+          (&Sem == &llvm::APFloat::PPCDoubleDouble() &&
+           !Context.getTargetInfo().hasIbm128Type()))
         LongDoubleMismatched = true;
----------------
Why is this change in this patch?


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D109948



More information about the cfe-commits mailing list