see this thread: http://forum.kde.org/viewtopic.php?f=74&t=97734&p=215895
In order to make user code reasonably fast in debug mode, the idea would be to add a compile time EIGEN_FORCE_INLINING option that would add the always inline attribute to all simple eigen functions. This means that all simple functions should be qualified with at least an EIGEN_INLINE macro that would default to inline, and EIGEN_ALWAYS_INLINE_ATTRIB if EIGEN_FORCE_INLINING is defined.
While we are at it, I'd suggest defining custom attribute macros which in some way summarize all required attributes. E.g., most (but not all) inlined functions are EIGEN_DEVICE as well.
How about having EIGEN_INLINE include DEVICE_FUNCTION (if compiled in CUDA mode), and provide a special EIGEN_INLINE_NO_DEVICE for code which is not CUDA compatible?
This will also help to optionally add further attributes like constexpr (cf Bug 820) in the future.