[PATCH] D152669: [AIX][TLS] Generate 32-bit local-exec access code sequence

Amy Kwan via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Mon Jun 19 14:05:08 PDT 2023

amyk marked 5 inline comments as done.
amyk added inline comments.

Comment at: llvm/lib/Target/PowerPC/PPCAsmPrinter.cpp:616-626
+  if (MIOpc == PPC::GETtlsTpointer32AIX)
+    return Ctx
+        .getXCOFFSection(".__get_tpointer", SectionKind::getText(),
+                         XCOFF::CsectProperties(XCOFF::XMC_PR, XCOFF::XTY_ER))
+        ->getQualNameSymbol();
+  else
+    return Ctx
nemanjai wrote:
> Can this not be something like:
> ```
> StringRef SymName = MIOpc == PPC::GETtlsTpointer32AIX ?
>   ".__get_tpointer" : ".__tls_get_addr";
> return Ctx.getXCOFFSection(SymName, SectionKind::getText(),
>           XCOFF::CsectProperties(XCOFF::XMC_PR, XCOFF::XTY_ER))
>   ->getQualNameSymbol();
> ```
Thanks for the suggestion.

Comment at: llvm/lib/Target/PowerPC/PPCAsmPrinter.cpp:628
+void PPCAsmPrinter::EmitAIXTlsCallHelper(const MachineInstr *MI) {
+  assert(Subtarget->isAIXABI() &&
nemanjai wrote:
> Can this not be a `static` file-scope function?
I like this suggestion and I looked into this. I believe it cannot as I need to use `EmitToStreamer()`, however I could be wrong/missing something.

Comment at: llvm/lib/Target/PowerPC/PPCISelLowering.cpp:1742
+                                return "PPCISD::GET_TPOINTER";
nemanjai wrote:
> Not sure if it was `clang-format` that suggested this, but please put these on the same line so that it matches the surrounding formatting.
Yeah, this was the result of `clang-format`. I'll move this line back.

Comment at: llvm/lib/Target/PowerPC/PPCTLSDynamicCall.cpp:59
         IsPCREL = isPCREL(MI);
+        bool IsTLSTPRelMI = MI.getOpcode() == PPC::GETtlsTpointer32AIX;
nemanjai wrote:
> Please add a comment since I don't think the name of the variable can adequately represent what it is for. Something like:
> ```
> // There are a number of slight differences in code generation
> // when we call .__get_tpointer (32-bit AIX TLS).
> ```
Comment added.

Comment at: llvm/lib/Target/PowerPC/PPCTLSDynamicCall.cpp:158
+            // which will return the thread pointer into r3.
+            BuildMI(MBB, I, DL, TII->get(Opc2), GPR3);
+          }
nemanjai wrote:
> Nit: please refrain from putting single statements in braces.
Good catch. I did this also in PPCISelLowering.cpp, so I'll remove those accordingly.

  rG LLVM Github Monorepo



More information about the llvm-commits mailing list