[PATCH] D39079: New clang option -fno-plt to avoid PLT for external calls

Sriraman Tallam via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Mon Oct 23 15:38:43 PDT 2017


tmsriram added inline comments.


================
Comment at: lib/CodeGen/CGCall.cpp:1859
+    if (auto *Fn = dyn_cast<FunctionDecl>(TargetDecl)) {
+      if (!Fn->isDefined() && !AttrOnCallSite) {
+        FuncAttrs.addAttribute(llvm::Attribute::NonLazyBind);
----------------
rnk wrote:
> Remind me what happens when the definition is within the current DSO after linking. I seem to recall that the call through memory is 6 bytes and the direct pcrel call is 5 bytes, and the linker is required to know to rewrite the indirect call to a nop. Is that accurate?
That's accurate, the linker rewrites it with a nop equivalent.


https://reviews.llvm.org/D39079





More information about the cfe-commits mailing list