Tag: COMPILER-OPTIMIZATION
Considere el siguiente código: bool AllZeroes(const char buf[4]) { return buf[0] == 0 && buf[1] == 0 && buf[2] == 0 && buf[3] == 0; } Salida del ensamblador de Clang 13 con -O3: AllZeroes(char const*): # @AllZeroes(char const*) cmp byte ptr [rdi], 0 je .LBB0_2 xor eax, eax ret . . . Read more
Mi aplicación implica comparaciones repetidas de igualdad de muchos megabytes de una matriz de cadenas. Me sorprendió (¿ingenuamente?) que dichas comparaciones se volvieran inmensamente más rápidas cuando agregué una matriz sombra del recuento de cada cadena; si los recuentos no son iguales, las cadenas no pueden ser iguales. Hubiera pensado . . . Read more
Tengo el siguiente código que realiza una conversión muy básica de una imagen de 16bpp a una imagen de 1bpp, el código funciona como se espera hasta que habilito las optimizaciones del compilador, momento en el que solo obtengo una imagen negra. define RSCALE 5014709 define GSCALE 9848225 define BSCALE . . . Read more
Estoy empezando a aprender ensamblador, así que disculpen si esta es una pregunta tonta, pero estaba probando algunos códigos compilados desde c++ a ensamblador solo para ver cómo lucen las instrucciones. Y noté algo extraño: .cpp: int main() { long a = 8; long b = 9; return a*b; } . . . Read more