[PATCH] D73970: [ARM] Fix non-determenistic behaviour
Diogo N. Sampaio via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Thu Feb 6 01:23:24 PST 2020
This revision was automatically updated to reflect the committed changes.
Closed by commit rG8ba2b6281075: [ARM] Fix non-determenistic behaviour (authored by dnsampaio).
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D73970/new/
https://reviews.llvm.org/D73970
Files:
llvm/lib/CodeGen/TypePromotion.cpp
Index: llvm/lib/CodeGen/TypePromotion.cpp
===================================================================
--- llvm/lib/CodeGen/TypePromotion.cpp
+++ llvm/lib/CodeGen/TypePromotion.cpp
@@ -847,8 +847,7 @@
// Iterate through, and add to, a tree of operands and users in the use-def.
while (!WorkList.empty()) {
- Value *V = WorkList.back();
- WorkList.pop_back();
+ Value *V = WorkList.pop_back_val();
if (CurrentVisited.count(V))
continue;
@@ -917,7 +916,7 @@
++ToPromote;
}
- // DAG optimisations should be able to handle these cases better, especially
+ // DAG optimizations should be able to handle these cases better, especially
// for function arguments.
if (ToPromote < 2 || (Blocks.size() == 1 && (NonFreeArgs > SafeWrap.size())))
return false;
@@ -941,6 +940,9 @@
if (!TPC)
return false;
+ AllVisited.clear();
+ SafeToPromote.clear();
+ SafeWrap.clear();
bool MadeChange = false;
const DataLayout &DL = F.getParent()->getDataLayout();
const TargetMachine &TM = TPC->getTM<TargetMachine>();
@@ -998,6 +1000,10 @@
if (MadeChange)
LLVM_DEBUG(dbgs() << "After TypePromotion: " << F << "\n");
+ AllVisited.clear();
+ SafeToPromote.clear();
+ SafeWrap.clear();
+
return MadeChange;
}
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D73970.242831.patch
Type: text/x-patch
Size: 1286 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20200206/8bf1dc65/attachment.bin>
More information about the llvm-commits
mailing list