📦 Out of Context リポジトリ

リポジトリ / emssr / independent_common_compiler

r2
r2 emssr1
; %n0 を 0 まで数え下げ、回数を返す。単調停止フラグと omega 読みの見本
r2 emssr2
define i4 @count(i4 %n0) {
r2 emssr3
e:
r2 emssr4
  br label %l
r2 emssr5
l:
r2 emssr6
  %n = phi i4 [ %n0, %e ], [ %n1, %s ]
r2 emssr7
  %k = phi i4 [ 0, %e ], [ %k1, %s ]
r2 emssr8
  %z = icmp eq i4 %n, 0
r2 emssr9
  br i1 %z, label %x, label %s
r2 emssr10
s:
r2 emssr11
  %n1 = sub nsw i4 %n, 1
r2 emssr12
  %k1 = add nsw i4 %k, 1
r2 emssr13
  br label %l
r2 emssr14
x:
r2 emssr15
  ret i4 %k
r2 emssr16
}