forked from M-Labs/artiq
1
0
Fork 0

Allow to dump ARTIQ/LLVM IR for stitched code.

This commit is contained in:
whitequark 2015-08-08 21:47:20 +03:00
parent ee3f35c608
commit 13ad9b5d08
1 changed files with 12 additions and 3 deletions

View File

@ -32,10 +32,19 @@ class Core:
stitcher = Stitcher(engine=engine) stitcher = Stitcher(engine=engine)
stitcher.stitch_call(function, args, kwargs) stitcher.stitch_call(function, args, kwargs)
module = Module(stitcher) module = Module(stitcher)
library = OR1KTarget().compile_and_link([module]) target = OR1KTarget()
return library, stitcher.rpc_map if os.getenv('ARTIQ_DUMP_IR'):
print("====== ARTIQ IR DUMP ======", file=sys.stderr)
for function in module.artiq_ir:
print(function, file=sys.stderr)
if os.getenv('ARTIQ_DUMP_LLVM'):
print("====== LLVM IR DUMP ======", file=sys.stderr)
print(module.build_llvm_ir(target), file=sys.stderr)
return target.compile_and_link([module]), stitcher.rpc_map
except diagnostic.Error as error: except diagnostic.Error as error:
print("\n".join(error.diagnostic.render(colored=True)), file=sys.stderr) print("\n".join(error.diagnostic.render(colored=True)), file=sys.stderr)
raise CompileError() from error raise CompileError() from error