LLVM устанавливает целевое значение для WebAssembly

Я написал код в C++ для использования ядра LLVM, чтобы получить файл PHP и сгенерировать IR для классической архитектуры. Я могу запустить этот код со встроенным JIT-компилятором LLVM. Я бы сделал IR для WebAssembly. Я использую LLVM 6.0 с WebAssembly в качестве целевой сборки

$ llvm-config --targets-built
AArch64 AMDGPU ARM BPF Hexagon Lanai Mips MSP430 NVPTX PowerPC Sparc SystemZ X86 XCore WebAssembly AVR

Я установил это обновление в своем коде

...
LLVMSetTarget((LLVMOpaqueModule *)context->module, "wasm32");
...

Теперь я заметил, что дублированный ИК-код идентичен моему редактированию кода или нет, и я следовал этому конвейеру, чтобы сгенерировать мой файл wasm

$ llc -asm-verbose=false -march=wasm32 -o my.s my.bc
$ binaryen/bin/s2wasm my.s > my.wast
$ wabt/bin/wat2wasm my.wast -o my.wasm

Но когда я бегу

$ node ./runwasm.js my.wasm main

Я получаю следующую ошибку

RuntimeError: memory access out of bounds

Я не могу понять, в чем проблема, потому что, если я буду следовать этому руководству, я не получу никакой ошибки.

Предложения?

0 ответов

Другие вопросы по тегам