diff options
Diffstat (limited to 'src/comp/back/Link.rs')
| -rw-r--r-- | src/comp/back/Link.rs | 94 |
1 files changed, 47 insertions, 47 deletions
diff --git a/src/comp/back/Link.rs b/src/comp/back/Link.rs index 50f10a80..50b07915 100644 --- a/src/comp/back/Link.rs +++ b/src/comp/back/Link.rs @@ -1,16 +1,16 @@ -import driver.session; -import lib.llvm.llvm; -import middle.trans; -import std.Str; -import std.FS; - -import lib.llvm.llvm.ModuleRef; -import lib.llvm.llvm.ValueRef; -import lib.llvm.mk_pass_manager; -import lib.llvm.mk_target_data; -import lib.llvm.mk_type_names; -import lib.llvm.False; -import lib.llvm.True; +import driver::session; +import lib::llvm::llvm; +import middle::trans; +import std::_str; +import std::fs; + +import lib::llvm::llvm::ModuleRef; +import lib::llvm::llvm::ValueRef; +import lib::llvm::mk_pass_manager; +import lib::llvm::mk_target_data; +import lib::llvm::mk_type_names; +import lib::llvm::False; +import lib::llvm::True; tag output_type { output_type_none; @@ -19,32 +19,32 @@ tag output_type { output_type_object; } -fn llvm_err(session.session sess, str msg) { - auto buf = llvm.LLVMRustGetLastError(); +fn llvm_err(session::session sess, str msg) { + auto buf = llvm::LLVMRustGetLastError(); if ((buf as uint) == 0u) { sess.err(msg); } else { - sess.err(msg + ": " + Str.str_from_cstr(buf)); + sess.err(msg + ": " + _str::str_from_cstr(buf)); } fail; } -fn link_intrinsics(session.session sess, ModuleRef llmod) { - auto path = FS.connect(sess.get_opts().sysroot, "intrinsics.bc"); +fn link_intrinsics(session::session sess, ModuleRef llmod) { + auto path = fs::connect(sess.get_opts().sysroot, "intrinsics.bc"); auto membuf = - llvm.LLVMRustCreateMemoryBufferWithContentsOfFile(Str.buf(path)); + llvm::LLVMRustCreateMemoryBufferWithContentsOfFile(_str::buf(path)); if ((membuf as uint) == 0u) { llvm_err(sess, "installation problem: couldn't open intrinstics.bc"); fail; } - auto llintrinsicsmod = llvm.LLVMRustParseBitcode(membuf); + auto llintrinsicsmod = llvm::LLVMRustParseBitcode(membuf); if ((llintrinsicsmod as uint) == 0u) { llvm_err(sess, "installation problem: couldn't parse intrinstics.bc"); fail; } - if (llvm.LLVMLinkModules(llmod, llintrinsicsmod) == False) { + if (llvm::LLVMLinkModules(llmod, llintrinsicsmod) == False) { llvm_err(sess, "couldn't link the module with the intrinsics"); fail; } @@ -64,29 +64,29 @@ mod Write { // Decides what to call an intermediate file, given the name of the output // and the extension to use. fn mk_intermediate_name(str output_path, str extension) -> str { - auto dot_pos = Str.index(output_path, '.' as u8); + auto dot_pos = _str::index(output_path, '.' as u8); auto stem; if (dot_pos < 0) { stem = output_path; } else { - stem = Str.substr(output_path, 0u, dot_pos as uint); + stem = _str::substr(output_path, 0u, dot_pos as uint); } ret stem + "." + extension; } - fn run_passes(session.session sess, ModuleRef llmod, str output) { + fn run_passes(session::session sess, ModuleRef llmod, str output) { auto opts = sess.get_opts(); if (opts.time_llvm_passes) { - llvm.LLVMRustEnableTimePasses(); + llvm::LLVMRustEnableTimePasses(); } link_intrinsics(sess, llmod); auto pm = mk_pass_manager(); - auto td = mk_target_data(x86.get_data_layout()); - llvm.LLVMAddTargetData(td.lltd, pm.llpm); + auto td = mk_target_data(x86::get_data_layout()); + llvm::LLVMAddTargetData(td.lltd, pm.llpm); // TODO: run the linter here also, once there are llvm-c bindings for // it. @@ -99,13 +99,13 @@ mod Write { if (opts.optimize) { auto filename = mk_intermediate_name(output, "no-opt.bc"); - llvm.LLVMWriteBitcodeToFile(llmod, - Str.buf(filename)); + llvm::LLVMWriteBitcodeToFile(llmod, + _str::buf(filename)); } } case (_) { auto filename = mk_intermediate_name(output, "bc"); - llvm.LLVMWriteBitcodeToFile(llmod, Str.buf(filename)); + llvm::LLVMWriteBitcodeToFile(llmod, _str::buf(filename)); } } } @@ -118,13 +118,13 @@ mod Write { // tool? if (opts.optimize) { auto fpm = mk_pass_manager(); - llvm.LLVMAddTargetData(td.lltd, fpm.llpm); - llvm.LLVMAddStandardFunctionPasses(fpm.llpm, 2u); - llvm.LLVMRunPassManager(fpm.llpm, llmod); + llvm::LLVMAddTargetData(td.lltd, fpm.llpm); + llvm::LLVMAddStandardFunctionPasses(fpm.llpm, 2u); + llvm::LLVMRunPassManager(fpm.llpm, llmod); // TODO: On -O3, use 275 instead of 225 for the inlining // threshold. - llvm.LLVMAddStandardModulePasses(pm.llpm, + llvm::LLVMAddStandardModulePasses(pm.llpm, 2u, // optimization level False, // optimize for size True, // unit-at-a-time @@ -135,7 +135,7 @@ mod Write { } if (opts.verify) { - llvm.LLVMAddVerifierPass(pm.llpm); + llvm::LLVMAddVerifierPass(pm.llpm); } // TODO: Write .s if -c was specified and -save-temps was on. @@ -157,32 +157,32 @@ mod Write { case (_) { auto filename = mk_intermediate_name(output, "opt.bc"); - llvm.LLVMRunPassManager(pm.llpm, llmod); - llvm.LLVMWriteBitcodeToFile(llmod, - Str.buf(filename)); + llvm::LLVMRunPassManager(pm.llpm, llmod); + llvm::LLVMWriteBitcodeToFile(llmod, + _str::buf(filename)); pm = mk_pass_manager(); } } } - llvm.LLVMRustWriteOutputFile(pm.llpm, llmod, - Str.buf(x86.get_target_triple()), - Str.buf(output), + llvm::LLVMRustWriteOutputFile(pm.llpm, llmod, + _str::buf(x86::get_target_triple()), + _str::buf(output), FileType); - llvm.LLVMDisposeModule(llmod); + llvm::LLVMDisposeModule(llmod); if (opts.time_llvm_passes) { - llvm.LLVMRustPrintPassTimings(); + llvm::LLVMRustPrintPassTimings(); } ret; } - llvm.LLVMRunPassManager(pm.llpm, llmod); + llvm::LLVMRunPassManager(pm.llpm, llmod); - llvm.LLVMWriteBitcodeToFile(llmod, Str.buf(output)); - llvm.LLVMDisposeModule(llmod); + llvm::LLVMWriteBitcodeToFile(llmod, _str::buf(output)); + llvm::LLVMDisposeModule(llmod); if (opts.time_llvm_passes) { - llvm.LLVMRustPrintPassTimings(); + llvm::LLVMRustPrintPassTimings(); } } } |