Move llvm-using code in rustc to trans module.
This commit is contained in:
parent
e0f682e5fb
commit
738fe078a4
3 changed files with 38 additions and 21 deletions
|
|
@ -1,21 +1,8 @@
|
|||
// -*- rust -*-
|
||||
|
||||
import std._str;
|
||||
import lib.llvm.llvm;
|
||||
import lib.llvm.builder;
|
||||
import fe.parser;
|
||||
import fe.token;
|
||||
|
||||
fn write_module() {
|
||||
auto llmod =
|
||||
llvm.LLVMModuleCreateWithNameInContext(_str.buf("rust_out"),
|
||||
llvm.LLVMGetGlobalContext());
|
||||
|
||||
auto b = builder(llvm.LLVMCreateBuilder());
|
||||
|
||||
llvm.LLVMWriteBitcodeToFile(llmod, _str.buf("rust_out.bc"));
|
||||
llvm.LLVMDisposeModule(llmod);
|
||||
}
|
||||
import me.trans;
|
||||
|
||||
fn main(vec[str] args) {
|
||||
|
||||
|
|
@ -31,17 +18,13 @@ fn main(vec[str] args) {
|
|||
auto p = parser.new_parser(sess, filename);
|
||||
log "opened file: " + filename;
|
||||
auto crate = parser.parse_crate(p);
|
||||
trans.translate_crate(sess, crate);
|
||||
}
|
||||
i += 1;
|
||||
}
|
||||
|
||||
// Test LLVM module-writing. Nothing interesting yet.
|
||||
write_module();
|
||||
|
||||
}
|
||||
|
||||
|
||||
//
|
||||
// Local Variables:
|
||||
// mode: rust
|
||||
// fill-column: 78;
|
||||
|
|
@ -50,4 +33,3 @@ fn main(vec[str] args) {
|
|||
// buffer-file-coding-system: utf-8-unix
|
||||
// compile-command: "make -k -C ../.. 2>&1 | sed -e 's/\\/x\\//x:\\//g'";
|
||||
// End:
|
||||
//
|
||||
|
|
|
|||
30
src/comp/me/trans.rs
Normal file
30
src/comp/me/trans.rs
Normal file
|
|
@ -0,0 +1,30 @@
|
|||
import std._str;
|
||||
|
||||
import fe.ast;
|
||||
import driver.session;
|
||||
|
||||
import lib.llvm.llvm;
|
||||
import lib.llvm.builder;
|
||||
|
||||
|
||||
fn translate_crate(session.session sess, ast.crate crate) {
|
||||
auto llmod =
|
||||
llvm.LLVMModuleCreateWithNameInContext(_str.buf("rust_out"),
|
||||
llvm.LLVMGetGlobalContext());
|
||||
|
||||
auto b = builder(llvm.LLVMCreateBuilder());
|
||||
|
||||
llvm.LLVMWriteBitcodeToFile(llmod, _str.buf("rust_out.bc"));
|
||||
llvm.LLVMDisposeModule(llmod);
|
||||
}
|
||||
|
||||
//
|
||||
// Local Variables:
|
||||
// mode: rust
|
||||
// fill-column: 78;
|
||||
// indent-tabs-mode: nil
|
||||
// c-basic-offset: 4
|
||||
// buffer-file-coding-system: utf-8-unix
|
||||
// compile-command: "make -k -C ../.. 2>&1 | sed -e 's/\\/x\\//x:\\//g'";
|
||||
// End:
|
||||
//
|
||||
|
|
@ -10,6 +10,10 @@ mod fe {
|
|||
mod token;
|
||||
}
|
||||
|
||||
mod me {
|
||||
mod trans;
|
||||
}
|
||||
|
||||
mod driver {
|
||||
mod rustc;
|
||||
mod session;
|
||||
|
|
@ -20,7 +24,8 @@ mod util {
|
|||
}
|
||||
|
||||
auth driver.rustc.main = state;
|
||||
auth driver.rustc.write_module = unsafe;
|
||||
auth me.trans = unsafe;
|
||||
|
||||
|
||||
mod lib {
|
||||
alt (target_os) {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue