Mantis Bug Tracker

View Issue Details Jump to Notes ] Issue History ] Print ]
IDProjectCategoryView StatusDate SubmittedLast Update
0001913OCaml-OCaml generalpublic2003-11-03 10:192016-12-06 21:50
Reporteradministrator 
Assigned Toshinwell 
PrioritynormalSeverityfeatureReproducibilityalways
StatusresolvedResolutionfixed 
PlatformOSOS Version
Product Version 
Target VersionFixed in Version 
Summary0001913: inlining
Description
Bonjour,

pas vraiment un bug mais un comportement génant d'ocamlopt: il semble
que le code correspondant à une fonction soit généré même si toutes
les occurrences d'appel de la fonction ont été inlinés. Ça n'est pas
bien génant pour des fonctions globales mais dans le cas de figure qui
m'intéresse (une fonction locale au sein d'une fonction récursive),
c'est assez catastrophique. Mon code a l'allure suivante:

let rec f i =
  let f' () = f (i+1) in
  f' ()

L'inlining est fait correctement mais la douzaine d'instructions de
construction de la clôture est un peu couteuse (en particulier à cause
de l'allocation mémoire).

Est-ce qu'on peut améliorer ça ? Sinon je vais revoir mon style
de programmation :-(

--Pascal


TagsNo tags attached.
Attached Files

- Relationships

-  Notes
(0016662)
shinwell (developer)
2016-12-06 21:49

Flambda correctly removes the closure allocation

- Issue History
Date Modified Username Field Change
2005-11-18 10:13 administrator New Issue
2016-12-06 21:49 shinwell Note Added: 0016662
2016-12-06 21:50 shinwell Status acknowledged => resolved
2016-12-06 21:50 shinwell Resolution open => fixed
2016-12-06 21:50 shinwell Assigned To => shinwell
2017-02-23 16:36 doligez Category OCaml general => -OCaml general


Copyright © 2000 - 2011 MantisBT Group
Powered by Mantis Bugtracker