#include "radeon_llvm_emit.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("-")); static cl::opt<std::string> TargetGPUName("gpu", cl::desc("target gpu name"), cl::value_desc("gpu_name")); 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, TargetGPUName.c_str(), 1); }