diff options
| author | Graydon Hoare <[email protected]> | 2010-06-23 21:03:09 -0700 |
|---|---|---|
| committer | Graydon Hoare <[email protected]> | 2010-06-23 21:03:09 -0700 |
| commit | d6b7c96c3eb29b9244ece0c046d3f372ff432d04 (patch) | |
| tree | b425187e232966063ffc2f0d14c04a55d8f004ef /src/boot/driver/llvm | |
| parent | Initial git commit. (diff) | |
| download | rust-d6b7c96c3eb29b9244ece0c046d3f372ff432d04.tar.xz rust-d6b7c96c3eb29b9244ece0c046d3f372ff432d04.zip | |
Populate tree.
Diffstat (limited to 'src/boot/driver/llvm')
| -rw-r--r-- | src/boot/driver/llvm/glue.ml | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/src/boot/driver/llvm/glue.ml b/src/boot/driver/llvm/glue.ml new file mode 100644 index 00000000..ef5c1c86 --- /dev/null +++ b/src/boot/driver/llvm/glue.ml @@ -0,0 +1,37 @@ +(* + * Glue for the LLVM backend. + *) + +let alt_argspecs sess = [ + ("-llvm", Arg.Unit (fun _ -> sess.Session.sess_alt_backend <- true), + "emit LLVM bitcode") +];; + +let alt_pipeline sess sem_cx crate = + let process processor = + processor sem_cx crate; + if sess.Session.sess_failed then exit 1 else () + in + Array.iter process + [| + Resolve.process_crate; + Type.process_crate; + Effect.process_crate; + Typestate.process_crate; + Loop.process_crate; + Alias.process_crate; + Dead.process_crate; + Layout.process_crate + |]; + Llemit.trans_and_process_crate sess sem_cx crate +;; + +(* + * Local Variables: + * fill-column: 78; + * indent-tabs-mode: nil + * buffer-file-coding-system: utf-8-unix + * compile-command: "make -k -C ../../.. 2>&1 | sed -e 's/\\/x\\//x:\\//g'"; + * End: + *) + |