パスワードを忘れた? アカウント作成
13513324 journal
GNU is Not Unix

t-nissieの日記: 【電脳】GCC 7.3.0をコンパイルして遊んでみた

日記 by t-nissie

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なんてコンパイルオプションもあるんですね。

この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。
typodupeerror

最初のバージョンは常に打ち捨てられる。

読み込み中...