Re: [eigen] Re: Strong inlining is sometimes ignored...

[ Thread Index | Date Index | More lists.tuxfamily.org/eigen Archives ]




On Wed, Oct 14, 2009 at 7:10 PM, Hauke Heibel <hauke.heibel@xxxxxxxxxxxxxx> wrote:
This works without warnings. Could you try to explain how this relates to the failed inlining in ei_redux_novec_unroller?

well, there:

  redux_prod<1>();
  redux_prod<2>();
  redux_prod<3>();
  redux_prod<4>();

the issue only occurs for even sizes which are the only one being vectorized, so I wanted to be sure VS was able to align a function calling SSE intrinsics..

gael

 
I have to correct my observation from before. It does not seem to be SSE related since with test_triangular, there are still failed inlines. I attached the list of warnings of test_triangular.

Nonetheless, the warning did not appear with the example from above while SSE was disabled.

- Hauke


On Wed, Oct 14, 2009 at 6:14 PM, Gael Guennebaud <gael.guennebaud@xxxxxxxxx> wrote:

that's not a good new. What about this simple example:

#include <Eigen/Eigen>
using namespace Eigen;

template<typename T>
EIGEN_STRONG_INLINE void funca(T* a, T* b)
{
  ei_pstore(a,ei_padd(ei_pload(a),ei_pload(b)));
}

int main(){
  funca<double>(0,0);
}

if it compiles fine then we can try to add a few more indirections...

gael.



On Wed, Oct 14, 2009 at 5:22 PM, Hauke Heibel <hauke.heibel@xxxxxxxxxxxxxx> wrote:
Ok, some more infos.

The issue is SSE specific, i.e. with 32bit builds and neither /arch:SSE nor /arch:SSE2 set, the warning disappears.

Furthermore, it does not only occure in Redux.h - compiling the unit tests in release with SSE reveals all occurences. Please remember that this issue is currently only proven to occur on VC9. I attached an incomplete list of reports generated by compiling parts of the unit tests.

Regards,
Hauke




Mail converted by MHonArc 2.6.19+ http://listengine.tuxfamily.org/