
t-nissieの日記: 【電脳】GCC 7.3.0をコンパイルして遊んでみた
GCC 7.3.0がリリースされたそうです。IntelのCPUの脆弱性「Spectre」を
回避する機能が入っているそうですが、よくわかりません。
Fortran の Bug 82567 - [6/7/8] gfortran takes a long
time to compile a simple implied-do with -Optimization.
が直っているかどうかためして遊んでみました。Modern Fortranではこんな
内包表現みたいな書き方もできるんですね。知りませんでした。writeの後の
暗黙のdoは知ってましたが。
$ cat intensional.f
! test Bug 82567
! https://gcc.gnu.org/bugzilla/show_bug.cgi?id=82567
! http://www48.atpages.jp/fortran2008/index.html.bak
!!
SUBROUTINE sub()
IMPLICIT NONE
INTEGER, PARAMETER :: n = 10000
REAL, ALLOCATABLE :: x(:)
REAL :: xc, h
INTEGER :: i
ALLOCATE( x(n) )
xc = 100.
h = xc/n
x = h*[(i,i=1,n)]
! Replacing the previous line with one of these lines gives faster compilation
! x = [(i*h,i=1,n)]
! x = (100./n) *[(i,i=1,n)]
END SUBROUTINE sub
$ gfortran --version && /usr/bin/time -p gfortran -O1 -Wall -ffree-form -c intensional.f
GNU Fortran (GCC) 7.2.0
(中略)
real 21.38
user 20.68
sys 0.11
$ gfortran --version && /usr/bin/time -p gfortran -O1 -Wall -ffree-form -c intensional.f
GNU Fortran (GCC) 7.3.0
(中略)
real 10.62
user 10.54
sys 0.06
これで、直っているのでしょうか???
いまいちバグジラに何て書いてあるかわかりません。
まあ、展開に時間がかかっているのでしょう。
-ftime-reportなんてコンパイルオプションもあるんですね。
【電脳】GCC 7.3.0をコンパイルして遊んでみた More ログイン