Opened 9 years ago

Closed 2 years ago

#1226 closed defect (fixed)

This code will trigger an inlining loop

Reported by: Christian Kellermann Owned by:
Priority: major Milestone: someday
Component: compiler Version: 4.10.x
Keywords: Cc:
Estimated difficulty: hard

Description

When compiling the following code with -O3 it will trigger an inlining loop observable with -debug i

(define (main-loop renderer)
  (main-loop renderer))

(when (zero? 0)
  (let ()
    (when #t
      (when #t
        (main-loop renderer)))))
...
inlining: "(t.scm:2) main-loop" f_193 14 
inlining: "(t.scm:2) main-loop" f_193 14 
...

Change History (4)

comment:1 Changed 9 years ago by Christian Kellermann

Component: unknowncompiler
Version: 4.9.x4.10.x

comment:2 Changed 9 years ago by Christian Kellermann

Also -O2

comment:3 Changed 8 years ago by sjamaan

Estimated difficulty: hard

comment:4 Changed 2 years ago by felix winkelmann

Resolution: fixed
Status: newclosed

Seems to have been fixed a while ago:

inlining: "(x.scm:2) main-loop" f_128 14 
inlining: "(x.scm:2) main-loop" f_128 18 
not inlining as unroll-limit is exceeded: "(x.scm:2) main-loop" f_128 f_128 
inlining: "(x.scm:8) main-loop" f_128 10 
inlining: "(x.scm:2) main-loop" f_128 10 
not inlining as unroll-limit is exceeded: "(x.scm:2) main-loop" f_128 f_126 
not inlining as unroll-limit is exceeded: "(x.scm:2) main-loop" f_128 f_128 
not inlining as unroll-limit is exceeded: "(x.scm:2) main-loop" f_128 f_126 
not inlining as unroll-limit is exceeded: "(x.scm:2) main-loop" f_128 f_128 
not inlining as unroll-limit is exceeded: "(x.scm:2) main-loop" f_128 f_126 
not inlining as unroll-limit is exceeded: "(x.scm:2) main-loop" f_128 f_128 
not inlining as unroll-limit is exceeded: "(x.scm:2) main-loop" f_128 f_126 
not inlining as unroll-limit is exceeded: "(x.scm:2) main-loop" f_128 f_128 
not inlining as unroll-limit is exceeded: "(x.scm:2) main-loop" f_128 f_126 
Note: See TracTickets for help on using tickets.