En fonction du type (s) de code généré qui vous intéresse, vous devez passer le drapeau correspondant (s) à V8:
--print-code
imprime code machine non optimisé (créée par "full codegen", le compilateur unoptimizing)
--print-bytecode
imprime bytecode (créé par l'interpréteur "d'allumage")
--print-opt-code
gravures optimisées code machine (ACI soit par les compilateurs d'optimisation "Crankshaft" ou "TurboFan")
Ces indicateurs (et beaucoup d'autres) sont documentés par --help
. Étant donné que des modifications majeures du pipeline d'exécution sont en cours, en fonction de la version de V8 que vous utilisez, vous pouvez voir la même fonction compilée par différents compilateurs.
Si vous utilisez le shell de développeur d8
, vous pouvez passer ces indicateurs directement sur la ligne de commande. Dans votre propre application d'intégration, vous pouvez utiliser v8::V8::SetFlagsFromCommandLine
pour passer les codes argc
et argv
à V8. Dans d8.cc
, vous pouvez voir un exemple pour savoir comment gérer vous-même certains drapeaux et transmettre les autres à la V8.
Merci beaucoup !! Cela m'aide beaucoup! – Oceanisher
@jmrk Je suis un peu confus. qu'est-ce que l'hydrogène et le lithium? J'ai lu à leur sujet l'article http://www.mattzeunert.com/2015/08/19/viewing-assembly-code-generated-by-v8.html –
@DineshRavi: Ce sont les noms internes de haut niveau et des représentations intermédiaires de bas niveau du compilateur d'optimisation "Crankshaft". Il a depuis été remplacé par "Turbofan". – jmrk