etmc/tmLQCD — Issue #59: Definition of ALIGN and ALIGN_BASE
Author: deuzeman
Created: 2012-02-01 13:50:15+00:00
State: open

These preprocessor defines are currently done in `sse.h`, if some level of explicit SSE optimization is requested. This means, however, that any code that declares memory for potential use with SSE routines needs to include some `#ifdef` checks. Those could be skipped if these defines were done in some central location and were simply set to 0 if no SSE optimization was requested.

A corollary to this, is the special case of wanting alignment without wanting to use the manual SSE routines. With increasing compiler sophistication, there are indications that automatically generated SSE code is starting to outperform our current implementations. While this is in fact quite awesome, it does make a case for allowing for alignment -- still needed for optimal performance -- without necessarily activating the SSE routines themselves. This is currently impossible.

One possible location for alignment definitions if `global.h`. If we want alignment to be a separate option, maybe an inclusion in the configuration script and `config.h` might be more appropriate.