| Anonymous | Login | Signup for a new account | 2013-06-19 22:49 CEST | ![]() |
| Main | My View | View Issues | Change Log | Roadmap |
| View Issue Details [ Jump to Notes ] | [ Issue History ] [ Print ] | ||||||||||
| ID | Project | Category | View Status | Date Submitted | Last Update | ||||||
| 0004918 | OCaml | OCaml general | public | 2009-11-13 17:04 | 2012-09-24 13:10 | ||||||
| Reporter | viktorva | ||||||||||
| Assigned To | |||||||||||
| Priority | normal | Severity | feature | Reproducibility | always | ||||||
| Status | acknowledged | Resolution | open | ||||||||
| Platform | OS | OS Version | |||||||||
| Product Version | |||||||||||
| Target Version | 4.01.0+dev | Fixed in Version | |||||||||
| Summary | 0004918: Inlining & direct function application optimisation | ||||||||||
| Description | ocamlopt does not recognise direct function applications which arise from inlining even trivial functions. For example, let id f = f let rec f n = if n <= 0 then 0 else n * f (n - 1) let _ = f 10 let _ = id f 20 generates: ... mov eax, 21 call _camlTest__f_60 % Direct call for f 10 L105: mov ebx, DWORD PTR _camlTest+4 mov eax, 41 mov ecx, DWORD PTR [ebx] call ecx % Indirect call to f 20 L106: The call to id is correctly inlined, but then the direct call is not recognised. See: ocaml/asmcomp/closure.ml | ||||||||||
| Tags | No tags attached. | ||||||||||
| Attached Files | |||||||||||
Issue History |
|||
| Date Modified | Username | Field | Change |
| 2009-11-13 17:04 | viktorva | New Issue | |
| 2009-12-08 17:32 | doligez | Status | new => acknowledged |
| 2012-07-11 13:33 | doligez | Target Version | => 4.01.0+dev |
| 2012-07-31 13:36 | doligez | Target Version | 4.01.0+dev => 4.00.1+dev |
| 2012-09-17 17:43 | doligez | Severity | minor => feature |
| 2012-09-17 17:43 | doligez | Target Version | 4.00.1+dev => 4.01.0+dev |
| Copyright © 2000 - 2011 MantisBT Group |