Created
June 30, 2016 06:29
-
-
Save Heasummn/3776762309337b7c3326d0fc26c3ae65 to your computer and use it in GitHub Desktop.
Incorrect Executable type generated by llvmlite
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
>>> from llvmlite import ir | |
>>> from llvmlite import binding as llvm | |
>>> llvm.initialize() | |
>>> llvm.initialize_native_asmprinter() | |
>>> llvm.initialize_native_target() | |
>>> target = llvm.Target.from_default_triple() | |
>>> target.triple | |
'x86_64-pc-windows-msvc' | |
>>> llvm.get_object_format("x86_64-pc-windows-msvc") | |
COFF | |
>>> target_machine = target.create_target_machine() | |
>>> assembly = """; ModuleID = "examples/ir_fpadd.py" # Stolen from examples | |
... target triple = "unknown-unknown-unknown" | |
... target datalayout = "" | |
... | |
... define double @"fpadd"(double %".1", double %".2") | |
... { | |
... entry: | |
... %"res" = fadd double %".1", %".2" | |
... ret double %"res" | |
... } | |
... | |
... define i32 @"main"() | |
... { | |
... entry: | |
... tail call double @fpadd(double 12.0, double 18.0) | |
... ret i32 0 | |
... }""" | |
>>> mod = llvm.parse_assembly(assembly) | |
>>> mod.verify() | |
>>> engine = llvm.create_mcjit_compiler(mod, target_machine) | |
>>> engine.finalize_object() | |
>>> object = open("test.exe", "wb") | |
>>> object.write(target_machine.emit_object(mod)) | |
1312 | |
>>> object.close() | |
$ file test.exe | |
test.exe: ELF 64-bit LSB relocatable, x86-64, version 1 (SYSV), not stripped |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
The # Stolen from examples was added in later. That did not exist in the actual code.