diff options
author | Sean Silva <chisophugis@gmail.com> | 2016-06-16 07:00:19 +0000 |
---|---|---|
committer | Sean Silva <chisophugis@gmail.com> | 2016-06-16 07:00:19 +0000 |
commit | a4cfb620dfe6a694fcb578d84ca252f0da473388 (patch) | |
tree | 4e87606230c40dbade2a9e18c0d2b32a5dec686f /llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp | |
parent | 6e72651e596db5d6f020c5effd9cd6c559ae5372 (diff) | |
download | bcm5719-llvm-a4cfb620dfe6a694fcb578d84ca252f0da473388.tar.gz bcm5719-llvm-a4cfb620dfe6a694fcb578d84ca252f0da473388.zip |
Attempt to define friend function more portably.
Patch written by Reid. I verified it locally with clang.
llvm-svn: 272875
Diffstat (limited to 'llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp')
-rw-r--r-- | llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp | 21 |
1 files changed, 5 insertions, 16 deletions
diff --git a/llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp b/llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp index ca40bff4f97..774650b0c55 100644 --- a/llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp +++ b/llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp @@ -601,7 +601,6 @@ private: /// A list of blocks that we are going to CSE. SetVector<BasicBlock *> CSEBlocks; -public: // Workaround for MSVC friend semantics. /// Contains all scheduling relevant data for an instruction. /// A ScheduleData either represents a single instruction or a member of an /// instruction bundle (= a group of instructions which is combined into a @@ -731,11 +730,13 @@ public: // Workaround for MSVC friend semantics. /// dry-run). bool IsScheduled; }; -private: #ifndef NDEBUG - friend raw_ostream &operator<<(raw_ostream &os, - const BoUpSLP::ScheduleData &SD); + friend inline raw_ostream &operator<<(raw_ostream &os, + const BoUpSLP::ScheduleData &SD) { + SD.dump(os); + return os; + } #endif /// Contains all scheduling data for a basic block. @@ -945,21 +946,9 @@ private: MapVector<Value *, uint64_t> MinBWs; }; -#ifndef NDEBUG -raw_ostream &operator<<(raw_ostream &os, const BoUpSLP::ScheduleData &SD); -#endif - } // end namespace llvm } // end namespace slpvectorizer -#ifndef NDEBUG -raw_ostream &llvm::slpvectorizer::operator<<(raw_ostream &os, - const BoUpSLP::ScheduleData &SD) { - SD.dump(os); - return os; -} -#endif - void BoUpSLP::buildTree(ArrayRef<Value *> Roots, ArrayRef<Value *> UserIgnoreLst) { deleteTree(); |