[PATCH] D73426: [Attributor] Derive memory location attributes (argmemonly, ...)

Hideto Ueno via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Thu Feb 13 22:34:37 PST 2020


uenoku added a comment.

Sorry for the delay. I have just completed my bachelor's course so I can take enough time for development.

I think a state without `NO_UNKOWN_MEM` is semantically identical to a pessimistic fixpoint, right?



================
Comment at: llvm/include/llvm/Transforms/IPO/Attributor.h:2578
+
+  /// Return true if we assume that the associated functions has no observable
+  /// accesses.
----------------
nit: functions → function


================
Comment at: llvm/lib/Transforms/IPO/Attributor.cpp:6120-6121
+    if (auto *Arg = dyn_cast<Argument>(&V)) {
+      if (Arg->hasByValAttr())
+        updateState(T, NO_LOCAL_MEM, I, &V, Changed);
+      else
----------------
Why is byval argument regarded as local memory?


================
Comment at: llvm/test/Transforms/Attributor/ArgumentPromotion/fp80.ll:17
 ; CHECK-LABEL: define {{[^@]+}}@run()
 ; CHECK-NEXT:  entry:
 ; CHECK-NEXT:    unreachable
----------------
Is this change caused by this patch? 


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D73426





More information about the llvm-commits mailing list