diff options
author | Adam Nemet <anemet@apple.com> | 2017-03-09 05:48:03 +0000 |
---|---|---|
committer | Adam Nemet <anemet@apple.com> | 2017-03-09 05:48:03 +0000 |
commit | 8c83386f89a89ac23f98e585967400c0dbe2b940 (patch) | |
tree | b1a4cf89aa40aa4db7ef0f08d2eedbccd420bbe3 /llvm | |
parent | d82067f83a732749ffdcfa3d3f6abb6e817a5951 (diff) | |
download | bcm5719-llvm-8c83386f89a89ac23f98e585967400c0dbe2b940.tar.gz bcm5719-llvm-8c83386f89a89ac23f98e585967400c0dbe2b940.zip |
[SLP] Mark values in Dot that need to be extracted
llvm-svn: 297361
Diffstat (limited to 'llvm')
-rw-r--r-- | llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp b/llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp index 0aa647d7c07..4e7cefe8ec0 100644 --- a/llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp +++ b/llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp @@ -1024,15 +1024,21 @@ template <> struct DOTGraphTraits<BoUpSLP *> : public DefaultDOTGraphTraits { DOTGraphTraits(bool isSimple = false) : DefaultDOTGraphTraits(isSimple) {} - std::string getNodeLabel(const TreeEntry *Entry, const BoUpSLP *) { + std::string getNodeLabel(const TreeEntry *Entry, const BoUpSLP *R) { std::string Str; raw_string_ostream OS(Str); if (isSplat(Entry->Scalars)) { OS << "<splat> " << *Entry->Scalars[0]; return Str; } - for (auto V : Entry->Scalars) - OS << *V << "\n"; + for (auto V : Entry->Scalars) { + OS << *V; + if (std::any_of( + R->ExternalUses.begin(), R->ExternalUses.end(), + [&](const BoUpSLP::ExternalUser &EU) { return EU.Scalar == V; })) + OS << " <extract>"; + OS << "\n"; + } return Str; } |