LINUX.ORG.RU

История изменений

Исправление SZT, (текущая версия) :

поэтому gcc, должно быть, очень умный если умеет такое доказывать или опровергать для любого test();

GCC как раз этого делать не умеет. Он сворачивает это в return 1; только если ему явно сказать, что функция чистая. Но тогда мемоизация не работает.

Вопрос - при чем тут компиляторы?

Компиляторы делают оптимизации. Я хочу делать свой язык и компилировать его в Си, потом код на Си компилировать компилятором Си. Все испробованные мною компиляторы Си не умеют в оптимизациию, которая мне нужна. Вот причем. Думаю, надо в компилятор систему символьных вычислений интегрировать. Абстрактное представление LLVM мне не очень нравится, на мой взгляд оно не очень подходит для символьных вычислений

Исходная версия SZT, :

поэтому gcc, должно быть, очень умный если умеет такое доказывать или опровергать для любого test();

GCC как раз этого делать не умеет. Он сворачивает это в return 1; только если ему явно сказать, что функция чистая. Но тогда мемоизация не работает.

Вопрос - при чем тут компиляторы?

Компиляторы делают оптимизации. Я хочу делать свой язык и компилировать его в Си, потом код на Си компилировать компилятором Си. Все испробованные мною компиляторы Си не умеют в оптимизациию, которая мне нужна. Вот причем. Думаю, надо в компилятор систему символьных вычислений интегрировать. Абстрактное представление LLVM мне не очень нравится, на мой взгляд он не очень подходит для символьных вычислений