summaryrefslogtreecommitdiff
path: root/src/gallium/drivers/radeon/loader.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/gallium/drivers/radeon/loader.cpp')
-rw-r--r--src/gallium/drivers/radeon/loader.cpp34
1 files changed, 34 insertions, 0 deletions
diff --git a/src/gallium/drivers/radeon/loader.cpp b/src/gallium/drivers/radeon/loader.cpp
new file mode 100644
index 00000000000..5b46cade602
--- /dev/null
+++ b/src/gallium/drivers/radeon/loader.cpp
@@ -0,0 +1,34 @@
+
+#include "radeon_llvm.h"
+
+#include <llvm/Support/CommandLine.h>
+#include <llvm/Support/IRReader.h>
+#include <llvm/Support/SourceMgr.h>
+#include <llvm/LLVMContext.h>
+#include <llvm/Module.h>
+#include <stdio.h>
+
+#include <llvm-c/Core.h>
+
+using namespace llvm;
+
+static cl::opt<std::string>
+InputFilename(cl::Positional, cl::desc("<input bitcode>"), cl::init("-"));
+
+
+
+int main(int argc, char ** argv)
+{
+ unsigned char * bytes;
+ unsigned byte_count;
+
+ std::auto_ptr<Module> M;
+ LLVMContext &Context = getGlobalContext();
+ SMDiagnostic Err;
+ cl::ParseCommandLineOptions(argc, argv, "llvm system compiler\n");
+ M.reset(ParseIRFile(InputFilename, Err, Context));
+
+ Module * mod = M.get();
+
+ radeon_llvm_compile(wrap(mod), &bytes, &byte_count, "SI", 1);
+}