try to fix the build on older LLVM versions.
This commit is contained in:
parent
4053e25bfb
commit
e155ecdc97
3 changed files with 26 additions and 0 deletions
|
@ -44,6 +44,10 @@
|
|||
|
||||
#include "llvm-c/Transforms/PassManagerBuilder.h"
|
||||
|
||||
#if LLVM_VERSION_GE(4, 0)
|
||||
#define PGO_AVAILABLE
|
||||
#endif
|
||||
|
||||
using namespace llvm;
|
||||
using namespace llvm::legacy;
|
||||
|
||||
|
@ -435,6 +439,8 @@ extern "C" void LLVMRustConfigurePassManagerBuilder(
|
|||
unwrap(PMBR)->SLPVectorize = SLPVectorize;
|
||||
unwrap(PMBR)->OptLevel = fromRust(OptLevel);
|
||||
unwrap(PMBR)->LoopVectorize = LoopVectorize;
|
||||
|
||||
#ifdef PGO_AVAILABLE
|
||||
if (PGOGenPath) {
|
||||
assert(!PGOUsePath);
|
||||
unwrap(PMBR)->EnablePGOInstrGen = true;
|
||||
|
@ -444,6 +450,9 @@ extern "C" void LLVMRustConfigurePassManagerBuilder(
|
|||
assert(!PGOGenPath);
|
||||
unwrap(PMBR)->PGOInstrUse = PGOUsePath;
|
||||
}
|
||||
#else
|
||||
assert(!PGOGenPath && !PGOUsePath && "Should've caught earlier");
|
||||
#endif
|
||||
}
|
||||
|
||||
// Unfortunately, the LLVM C API doesn't provide a way to set the `LibraryInfo`
|
||||
|
@ -776,6 +785,15 @@ LLVMRustThinLTOAvailable() {
|
|||
#endif
|
||||
}
|
||||
|
||||
extern "C" bool
|
||||
LLVMRustPGOAvailable() {
|
||||
#ifdef PGO_AVAILABLE
|
||||
return true;
|
||||
#else
|
||||
return false;
|
||||
#endif
|
||||
}
|
||||
|
||||
#if LLVM_VERSION_GE(4, 0)
|
||||
|
||||
// Here you'll find an implementation of ThinLTO as used by the Rust compiler
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue