about summary refs log tree commit diff
path: root/src/rustllvm/rustllvm.h
diff options
context:
space:
mode:
authorJames Miller <james@aatch.net>2013-05-28 11:15:31 +1200
committerJames Miller <james@aatch.net>2013-05-29 14:16:49 +1200
commitd694e283b3ee045e8c10800a6428332a4fe4e80f (patch)
treec348436d52d71de75cbf5ea8d5c4131873be7654 /src/rustllvm/rustllvm.h
parente3d0c1eb0e86e04c2a6d5abe526516351cfaef3f (diff)
downloadrust-d694e283b3ee045e8c10800a6428332a4fe4e80f.tar.gz
rust-d694e283b3ee045e8c10800a6428332a4fe4e80f.zip
Refactor optimization pass handling.
Refactor the optimization passes to explicitly use the passes. This commit
just re-implements the same passes as were already being run.

It also adds an option (behind `-Z`) to run the LLVM lint pass on the
unoptimized IR.
Diffstat (limited to 'src/rustllvm/rustllvm.h')
-rw-r--r--src/rustllvm/rustllvm.h57
1 files changed, 57 insertions, 0 deletions
diff --git a/src/rustllvm/rustllvm.h b/src/rustllvm/rustllvm.h
new file mode 100644
index 00000000000..1c8842f7b4a
--- /dev/null
+++ b/src/rustllvm/rustllvm.h
@@ -0,0 +1,57 @@
+// Copyright 2013 The Rust Project Developers. See the COPYRIGHT
+// file at the top-level directory of this distribution and at
+// http://rust-lang.org/COPYRIGHT.
+//
+// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
+// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
+// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
+// option. This file may not be copied, modified, or distributed
+// except according to those terms.
+
+#include "llvm/IR/InlineAsm.h"
+#include "llvm/IR/LLVMContext.h"
+#include "llvm/Linker.h"
+#include "llvm/PassManager.h"
+#include "llvm/IR/InlineAsm.h"
+#include "llvm/IR/LLVMContext.h"
+#include "llvm/Analysis/Verifier.h"
+#include "llvm/Analysis/Passes.h"
+#include "llvm/Analysis/Lint.h"
+#include "llvm/ADT/Triple.h"
+#include "llvm/ADT/DenseSet.h"
+#include "llvm/Assembly/Parser.h"
+#include "llvm/Assembly/PrintModulePass.h"
+#include "llvm/Support/CommandLine.h"
+#include "llvm/Support/FormattedStream.h"
+#include "llvm/Support/Timer.h"
+#include "llvm/Support/raw_ostream.h"
+#include "llvm/Support/TargetSelect.h"
+#include "llvm/Support/TargetRegistry.h"
+#include "llvm/Support/SourceMgr.h"
+#include "llvm/Support/Host.h"
+#include "llvm/Support/Debug.h"
+#include "llvm/Support/DynamicLibrary.h"
+#include "llvm/Support/Memory.h"
+#include "llvm/ExecutionEngine/ExecutionEngine.h"
+#include "llvm/ExecutionEngine/JIT.h"
+#include "llvm/ExecutionEngine/JITMemoryManager.h"
+#include "llvm/ExecutionEngine/MCJIT.h"
+#include "llvm/ExecutionEngine/Interpreter.h"
+#include "llvm/Target/TargetMachine.h"
+#include "llvm/Target/TargetOptions.h"
+#include "llvm/Transforms/Scalar.h"
+#include "llvm/Transforms/IPO.h"
+#include "llvm/Transforms/Instrumentation.h"
+#include "llvm/Transforms/Vectorize.h"
+#include "llvm-c/Core.h"
+#include "llvm-c/BitReader.h"
+#include "llvm-c/Object.h"
+
+// Used by RustMCJITMemoryManager::getPointerToNamedFunction()
+// to get around glibc issues. See the function for more information.
+#ifdef __linux__
+#include <sys/stat.h>
+#include <fcntl.h>
+#include <unistd.h>
+#endif
+