thinlto_code_gen_t thinlto_create_codegen(void) { lto_initialize(); ThinLTOCodeGenerator *CodeGen = new ThinLTOCodeGenerator(); CodeGen->setTargetOptions(InitTargetOptionsFromCodeGenFlags()); CodeGen->setFreestanding(EnableFreestanding); if (OptLevel.getNumOccurrences()) { if (OptLevel < '0' || OptLevel > '3') report_fatal_error("Optimization level must be between 0 and 3"); CodeGen->setOptLevel(OptLevel - '0'); switch (OptLevel) { case '0': CodeGen->setCodeGenOptLevel(CodeGenOpt::None); break; case '1': CodeGen->setCodeGenOptLevel(CodeGenOpt::Less); break; case '2': CodeGen->setCodeGenOptLevel(CodeGenOpt::Default); break; case '3': CodeGen->setCodeGenOptLevel(CodeGenOpt::Aggressive); break; } } return wrap(CodeGen); }
thinlto_code_gen_t thinlto_create_codegen(void) { lto_initialize(); ThinLTOCodeGenerator *CodeGen = new ThinLTOCodeGenerator(); CodeGen->setTargetOptions(InitTargetOptionsFromCodeGenFlags()); return wrap(CodeGen); }
ThinLTOProcessing(const TargetOptions &Options) { ThinGenerator.setCodePICModel(RelocModel); ThinGenerator.setTargetOptions(Options); }