Extend evaluation traits debuging info

This commit is contained in:
Gael Guennebaud 2014-03-12 18:13:18 +01:00
parent 74b1d79d77
commit 5e26b7cf9d
2 changed files with 32 additions and 5 deletions

View File

@ -118,6 +118,12 @@ public:
#ifdef EIGEN_DEBUG_ASSIGN #ifdef EIGEN_DEBUG_ASSIGN
static void debug() static void debug()
{ {
std::cerr << "DstXpr: " << typeid(typename DstEvaluator::XprType).name() << std::endl;
std::cerr << "SrcXpr: " << typeid(typename SrcEvaluator::XprType).name() << std::endl;
std::cerr.setf(std::ios::hex, std::ios::basefield);
EIGEN_DEBUG_VAR(DstFlags)
EIGEN_DEBUG_VAR(SrcFlags)
std::cerr.unsetf(std::ios::hex);
EIGEN_DEBUG_VAR(DstIsAligned) EIGEN_DEBUG_VAR(DstIsAligned)
EIGEN_DEBUG_VAR(SrcIsAligned) EIGEN_DEBUG_VAR(SrcIsAligned)
EIGEN_DEBUG_VAR(JointAlignment) EIGEN_DEBUG_VAR(JointAlignment)
@ -126,10 +132,6 @@ public:
EIGEN_DEBUG_VAR(PacketSize) EIGEN_DEBUG_VAR(PacketSize)
EIGEN_DEBUG_VAR(StorageOrdersAgree) EIGEN_DEBUG_VAR(StorageOrdersAgree)
EIGEN_DEBUG_VAR(MightVectorize) EIGEN_DEBUG_VAR(MightVectorize)
std::cerr.setf(std::ios::hex, std::ios::basefield);
EIGEN_DEBUG_VAR(DstFlags)
EIGEN_DEBUG_VAR(SrcFlags)
std::cerr.unsetf(std::ios::hex);
EIGEN_DEBUG_VAR(MayLinearize) EIGEN_DEBUG_VAR(MayLinearize)
EIGEN_DEBUG_VAR(MayInnerVectorize) EIGEN_DEBUG_VAR(MayInnerVectorize)
EIGEN_DEBUG_VAR(MayLinearVectorize) EIGEN_DEBUG_VAR(MayLinearVectorize)
@ -139,6 +141,7 @@ public:
EIGEN_DEBUG_VAR(MayUnrollCompletely) EIGEN_DEBUG_VAR(MayUnrollCompletely)
EIGEN_DEBUG_VAR(MayUnrollInner) EIGEN_DEBUG_VAR(MayUnrollInner)
EIGEN_DEBUG_VAR(Unrolling) EIGEN_DEBUG_VAR(Unrolling)
std::cerr << std::endl;
} }
#endif #endif
}; };

View File

@ -65,6 +65,29 @@ public:
? CompleteUnrolling ? CompleteUnrolling
: NoUnrolling : NoUnrolling
}; };
#ifdef EIGEN_DEBUG_ASSIGN
static void debug()
{
#ifdef EIGEN_TEST_EVALUATORS
std::cerr << "Xpr: " << typeid(typename Derived::XprType).name() << std::endl;
#else
std::cerr << "Xpr: " << typeid(Derived).name() << std::endl;
#endif
std::cerr.setf(std::ios::hex, std::ios::basefield);
EIGEN_DEBUG_VAR(Derived::Flags)
std::cerr.unsetf(std::ios::hex);
EIGEN_DEBUG_VAR(InnerMaxSize)
EIGEN_DEBUG_VAR(PacketSize)
EIGEN_DEBUG_VAR(MightVectorize)
EIGEN_DEBUG_VAR(MayLinearVectorize)
EIGEN_DEBUG_VAR(MaySliceVectorize)
EIGEN_DEBUG_VAR(Traversal)
EIGEN_DEBUG_VAR(UnrollingLimit)
EIGEN_DEBUG_VAR(Unrolling)
std::cerr << std::endl;
}
#endif
}; };
/*************************************************************************** /***************************************************************************
@ -311,10 +334,11 @@ struct redux_impl<Func, Derived, LinearVectorizedTraversal, CompleteUnrolling>
#ifdef EIGEN_ENABLE_EVALUATORS #ifdef EIGEN_ENABLE_EVALUATORS
// evaluator adaptor // evaluator adaptor
template<typename XprType> template<typename _XprType>
class redux_evaluator class redux_evaluator
{ {
public: public:
typedef _XprType XprType;
redux_evaluator(const XprType &xpr) : m_evaluator(xpr), m_xpr(xpr) {} redux_evaluator(const XprType &xpr) : m_evaluator(xpr), m_xpr(xpr) {}
typedef typename XprType::Index Index; typedef typename XprType::Index Index;