Structured control flow
GCC expects a target to have control flow instructions that transfer control to labels or addresses in memory; WebAssembly does not provide those. WebAssembly function is a tree of nested control flow constructs — loops, conditionals, blocks, exception handlers.
The current workaround to this issue is to emit a function as a loop that contains a switch statement, and within that statement emit RTL basic blocks, and emit labels as switch arms. Jumps are therefore implemented as a write to the control flow variable and then a loop repetition.
This is suboptimal, but it's the only option available until there is way to convert RTL into a control flow construct tree representation that reflects WebAssembly. https://github.com/WebAssembly/design/issues/796 is the proposal of adding goto and labels to WebAssembly.
Bon après rendre wasm plus utilisable, c'est dans les main de googe et ca a peu de chances de bouges pour gcc.
# back end, qui remonte une bien vieille issue de wasm.
Posté par uso (site web personnel) . Évalué à 3 (+2/-0).
ici : https://gcc.gnu.org/wiki/WebAssemblyBackend
Bon après rendre wasm plus utilisable, c'est dans les main de googe et ca a peu de chances de bouges pour gcc.
Envoyer un commentaire
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.