Вы не предоставили точную версию gcc, ни пример кода, ни код результата, ни недостаточно внимательно изучили интернет, но, возможно, это уже отвечает на ваш вопрос:
Strip mining - это оптимизация, которая была введена в gcc с объединением графитовой ветви в версии 4.4 . См. Также руководство :
-floop-стрип-шахтное
Выполните преобразования в циклическом извлечении из циклов. Разрушение полосы разбивает петлю на две вложенные петли. Внешняя петля имеет шаги, равные размеру полосы, а внутренняя петля имеет шаги оригинальной петли внутри полосы. Длина полосы может быть изменена с помощью параметра loop-block-tile-size. Например, учитывая цикл как:
DO I = 1, N
A(I) = A(I) + C
ENDDO
майнинг цикла петли преобразует цикл, как если бы пользователь написал:
DO II = 1, N, 51
DO I = II, min (II + 50, N)
A(I) = A(I) + C
ENDDO
ENDDO
Эта оптимизация применяется ко всем языкам, поддерживаемым GCC, и не ограничивается только Fortran. Чтобы использовать это преобразование кода, GCC должен быть настроен с --with-ppl и --with-cloog, чтобы включить инфраструктуру преобразования цикла Графита.
Вы можете запустить man gcc | grep '\-floop\-strip\-mine'
, чтобы проверить, поддерживается ли эта опция. Для точной версии gcc введите gcc --version
.