Le compilateur peut-il éliminer les allocations de mémoire du tas?
En C, le nouvel opérateur est utilisé pour allouer la mémoire sur le tas. Les compilateurs peuvent optimiser le code, notamment la suppression des instructions inutiles. Les compilateurs peuvent-ils éliminer les allocations de mémoire du tas réalisées à l'aide de la recherche sur le comportement du compilateur
Validité de l'optimisation
La validité des optimisations du compilateur est un sujet de débat. Certains soutiennent que le compilateur n'est pas autorisé à optimiser les nouveaux appels car ils peuvent avoir un comportement observable (par exemple, lancer une exception). D'autres soutiennent que l'optimisation de nouveaux appels est autorisé si le compilateur peut garantir qu'aucun comportement observable ne sera affecté. Il permet aux compilateurs d'optimiser les allocations de mémoire dans certains scénarios. Cependant, la disposition a été critiquée car elle viole potentiellement la causalité.
Nouveau opérateur non lancement : clang optimise également vers le nouveau opérateur non-lancement. L'opérateur de nouvelles implémentations dans différentes unités de traduction pourrait affecter la validité des optimisations du compilateur liées aux allocations de tas.
Conclusion
La capacité du compilateur à optimiser les allocations de mémoire de tas est un problème complexe impliquant le comportement du compilateur, les standards linguistiques et les exceptions potentielles. Alors que certains compilateurs mettent en œuvre cette optimisation basée sur N3664, sa validité reste un sujet de discussion et dépend de circonstances spécifiques, y compris la norme C et la présence d'allocateurs de mémoire personnalisés.Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.
Copyright© 2022 湘ICP备2022001581号-3