Opened 10 years ago
Closed 3 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 10 years ago by
| Component: | unknown → compiler | 
|---|---|
| Version: | 4.9.x → 4.10.x | 
comment:2 Changed 10 years ago by
comment:3 Changed 9 years ago by
| Estimated difficulty: | → hard | 
|---|
comment:4 Changed 3 years ago by
| Resolution: | → fixed | 
|---|---|
| Status: | new → closed | 
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.
    
Also -O2