c++ - GCC compiler output for specific functions -
i trying use gcc auto vectorization perform optimizations , see diagnostic informations whether optimizations have been done or hinders performance. use -fopt-info-option this, applying flag whole build or file, generates tons of informations have dig through. looking way limit output specific functions. done? piece of code looks this:
template<unsigned inoutvectoraligment = 1, typename inoutvectortype> inline void swapvaluesinvector(inoutvectortype* __restrict__ inout, inoutvectortype oldvalue, inoutvectortype newvalue, int vectorlength) { inout = (inoutvectortype*)__builtin_assume_aligned(inout, inoutvectoraligment); for(int = 0; < vectorlength; ++i) { inout[i] = inout[i] == oldvalue ? newvalue : inout[i]; } } //static inline void changezerostoones(unsigned char *array, int arraylength) //__attribute__ ((optimize("-o3"), optimize("-ffast-math"), __target__("avx"))); #pragma gcc optimize ("-o3", "-ffast-math") #pragma gcc target ("avx") static inline void changezerostoones(unsigned char *array, int arraylength); void changezerostoones(unsigned char *array, int arraylength) { constexpr unsigned arrayaligment = 32; assert(((unsigned long)array % arrayaligment) == 0); swapvaluesinvector<arrayaligment>(array, (unsigned char)0, (unsigned char)1, arraylength); }
i want see diagnostics function changezerostoones.
Comments
Post a Comment