mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-12-24 20:44:51 +00:00
Add an also-emit-llvm option to the gold plugin.
llvm-svn: 103714
This commit is contained in:
parent
aa67ae072c
commit
bc6fabbd3e
@ -59,6 +59,7 @@ namespace {
|
||||
|
||||
namespace options {
|
||||
static bool generate_api_file = false;
|
||||
static std::string bc_path;
|
||||
static const char *as_path = NULL;
|
||||
// Additional options to pass into the code generator.
|
||||
// Note: This array will contain all plugin options which are not claimed
|
||||
@ -81,6 +82,14 @@ namespace options {
|
||||
} else {
|
||||
as_path = strdup(opt + 3);
|
||||
}
|
||||
} else if(llvm::StringRef(opt).startswith("also-emit-llvm=")) {
|
||||
const char *path = opt + strlen("also-emit-llvm=");
|
||||
if (bc_path != "") {
|
||||
(*message)(LDPL_WARNING, "Path to the output IL file specified twice. "
|
||||
"Discarding %s", opt);
|
||||
} else {
|
||||
bc_path = path;
|
||||
}
|
||||
} else {
|
||||
// Save this option to pass to the code generator.
|
||||
extra.push_back(std::string(opt));
|
||||
@ -374,6 +383,11 @@ static ld_plugin_status all_symbols_read_hook(void) {
|
||||
}
|
||||
}
|
||||
|
||||
if (options::bc_path != "") {
|
||||
bool err = lto_codegen_write_merged_modules(cg, options::bc_path.c_str());
|
||||
if (err)
|
||||
(*message)(LDPL_FATAL, "Failed to write the output file.");
|
||||
}
|
||||
size_t bufsize = 0;
|
||||
const char *buffer = static_cast<const char *>(lto_codegen_compile(cg,
|
||||
&bufsize));
|
||||
|
Loading…
Reference in New Issue
Block a user