В GCC все это давно есть - стоит покурить документацию "Common Function Attributes" pure Вообще атрибуты для функций, переменных и еще много чего - одна их самых сильных фишек GCC (IMHO). Если их правильно использовать - можно заметно помочь https://gcc.gnu.org/onlinedocs/gcc-6.3.0/gcc/Common-Function-Attributes.html#Common-Function-Attributes компилятору повысить качество трансляции.