Pregunta

He he investigar el efecto de ciertos __restricting punteros en C ++ -. Código, al compilar el mismo a través de la CCG-compilador

Resultó que no sólo el tiempo de ejecución sigue siendo exactamente lo mismo, pero no parece haber cambiado el ejecutable, el tamaño en bytes es exactamente la misma que antes.

Mi GCC-versiones

gcc version 4.3.2 [gcc-4_3-branch revision 141291] (SUSE Linux)

y aunque se acepta esta C ++ - extensión al analizar, no parece considerar que al montar el código. Así que o bien hay una razón, el compilador no sabe cómo utilizar esta información semántica, o el procesamiento de esta información es completamente desactivada.

Los códigos realiza una gran cantidad de cálculos numéricos, que le gustaría tenerlo habilitado para propósitos de prueba. Usted puede ayudar?

¿Fue útil?

Solución

calificadores restrict son básicamente un camino para el usuario para ayudar a que el compilador para realizar ciertas optimizaciones relacionadas aliasing. Ellos sólo tienen un efecto si estas oportunidades de optimización ya están presentes en el código, por lo que usar restrict simplemente les permite, en situaciones en las que el compilador previamente tenía que utilizar una generación de código "más seguro" (no la optimización). En otros contextos restrict no tendrá ningún efecto en absoluto.

Por lo tanto, agregó algunos calificadores restrict a su código. Pero fue ninguno de ellos utilizó en el contexto en el que realmente importa, es decir, en el que realmente dan el compilador más libertad para optimizar el código? Si no es así, no se supone que esperar que su código para el cambio.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top