Rematerialization

le

cet article est au sujet de l'optimisation de compilateur. Pour la technologie de transporteur de Star Trek, voir le transporteur de (Star Trek) .

Le Rematerialization est une optimisation de compilateur qui épargne le temps par recomputing une valeur au lieu du chargement il de la mémoire. Il est en général étroitement intégré avec l'attribution de registre de , où il est employé pendant qu'une alternative au renversement s'enregistre à la mémoire. Il a été conçu par le Preston Briggs , le tonnelier de Keith D. de , et le Linda Torczon dans le 1992 .

Les optimisations traditionnelles telles que l'élimination commune de subexpression de et la boucle de levage invariable de se concentrent souvent sur éliminer le calcul superflu. Puisque le calcul exige des cycles de l'unité centrale de traitement , c'est habituellement une bonne chose, mais il a l'effet secondaire potentiellement dévastateur qu'il peut augmenter les gammes de phase des variables et créer beaucoup de nouvelles variables, ayant pour résultat des flaques pendant l'attribution de registre. Rematerialization est presque l'opposé : il diminue la pression de registre de en augmentant la quantité de calcul d'unité centrale de traitement. Pour éviter d'ajouter plus de temps de calcul que nécessaire, rematerialize est fait seulement quand le compilateur peut être confiant qui il sera de &mdash d'avantage ; c'est-à-dire, quand une flaque de registre à la mémoire se produirait autrement.

Rematerialization fonctionne à côté de maintenir l'expression employée pour calculer chaque variable, using le concept des expressions disponibles parfois les variables employées pour calculer une valeur sont modifiées, et ainsi peuvent plus n'être employées pour rematerialize cette valeur. On dit qu'alors l'expression n'est plus disponible. D'autres critères doivent également être remplis, par exemple une complexité maximum sur l'expression employée pour rematerialize la valeur ; cela ne le ferait aucun bien de rematerialize une valeur using un calcul complexe qui prend plus de temps qu'une charge. Habituellement l'expression doit également n'avoir aucun effet secondaire .

Random links:Edgewood, Pennsylvanie | Fistulosum d'Eupatorium | König Jérôme | Corps de mitrailleuse | Liste de « 2000 en » articles | Rematerialization