GNU Fortran 컴파일러 지시문

GNU Fortran 컴파일러 지시문

GNU Fortran이 소스 코드 안에서 컴파일러 동작을 제어하기 위해 제공하는 특수 지시문(directive)들의 목록이에요. 보통 !GCC$ 접두어로 시작하는 형태로 나오며, 각 지시문이 루프 최적화나 프로시저 속성처럼 컴파일러의 세부 동작을 요청하는 역할을 해요. 항목별 상세 페이지 링크와 함께 정리돼 있어요.

출처: GNU Fortran Compiler Directives (The GNU Fortran Compiler)

본문

  • ATTRIBUTES 지시문 — 프로시저·변수에 컴파일러가 알아야 할 속성(예: 별칭, 예외 처리, 인라인 힌트 등)을 지정해요.
  • UNROLL 지시문 — 다음 루프의 언롤(unroll) 정도를 힌트로 주는 지시문이에요.
  • BUILTIN 지시문 — 특정 함수 호출을 컴파일러 내장(built-in) 함수로 취급하도록 알려줘요.
  • IVDEP 지시문 — 다음 루프에서 벡터 의존성(vector dependency)을 무시해도 안전하다고 컴파일러에 알려요.
  • VECTOR 지시문 — 다음 루프를 벡터화하도록 요청(또는 진행)하는 지시문이에요.
  • NOVECTOR 지시문 — 다음 루프를 벡터화하지 말라고 명시하는 지시문이에요.

더 알아보기

  • GNU Fortran 지시문은 컴파일러가 코드를 최적화할 수 있게 힌트를 주는 용도가 대부분이라, 표준 Fortran 문법이 아니라는 점에 유의해야 해요. 다른 컴파일러로 옮길 때는 무시될 수 있어요.
  • 루프 최적화 관련 지시문(UNROLL, IVDEP, VECTOR, NOVECTOR)은 해당 루프 바로 앞에 놓여야 하고, 적용 대상도 바로 뒤에 오는 루프 하나예요.
  • 표준적인 대안이 필요하다면 OpenMP 지시문(!$omp)을 고려해 볼 수 있어요.
  • 지시문은 코드에 힌트를 주는 역할이라, 같은 코드라도 컴파일러 버전·최적화 옵션에 따라 결과가 다를 수 있음을 알아두면 좋아요.