[PATCH] D81242: [StackSafety] Run ThinLTO

Evgenii Stepanov via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Thu Jun 11 18:11:17 PDT 2020


eugenis added inline comments.


================
Comment at: llvm/lib/Analysis/StackSafetyAnalysis.cpp:618
+    ConstantRange Access = Found->sextOrTrunc(Use.Range.getBitWidth());
+    if (Access.signedAddMayOverflow(C.Offset) !=
+        ConstantRange::OverflowResult::NeverOverflows)
----------------
Do we have a test for this overflow check?


================
Comment at: llvm/lib/Analysis/StackSafetyAnalysis.cpp:924
+      if (FS)
+        FS->setParamAccesses({});
+    }
----------------
Why is this necessary? This affects only !live || !dso_local functions, right? The rest is overwritten in the loop below. As I understand, the post-lto function analysis ignores such functions, so that's strictly a space saving thing. Explain what's going on in a comment, and why removing this access data won't cause false positive results.


================
Comment at: llvm/lib/LTO/LTO.cpp:1396
 
+  processParamAccessSummary(ThinLTO.CombinedIndex);
+
----------------
Bad name - "process" is meaningless here. Consider "generateParamAccessSummary" ?


================
Comment at: llvm/test/Analysis/StackSafetyAnalysis/ipa-alias.ll:55
+; RUN:  -r %t.summ1.bc,Write1,px 2>&1 | FileCheck %s --check-prefixes=CHECK,GLOBAL,LTO
+
 target datalayout = "e-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128"
----------------
For my education - how do you come up with these symbol lists?


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D81242





More information about the cfe-commits mailing list