mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-07-03 11:24:18 +00:00
libLTO, llvm-lto, gold: Introduce flag for controlling optimization level.
This change also introduces a link-time optimization level of 1. This optimization level runs only the globaldce pass as well as cleanup passes for passes that run at -O0, specifically simplifycfg which cleans up lowerbitsets. http://lists.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20150316/266951.html git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@232769 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@ -76,6 +76,7 @@ struct LTOCodeGenerator {
|
||||
|
||||
void setCpu(const char *mCpu) { MCpu = mCpu; }
|
||||
void setAttr(const char *mAttr) { MAttr = mAttr; }
|
||||
void setOptLevel(unsigned optLevel) { OptLevel = optLevel; }
|
||||
|
||||
void addMustPreserveSymbol(const char *sym) { MustPreserveSymbols[sym] = 1; }
|
||||
|
||||
@ -102,7 +103,6 @@ struct LTOCodeGenerator {
|
||||
// Do not try to remove the object file in LTOCodeGenerator's destructor
|
||||
// as we don't who (LTOCodeGenerator or the obj file) will last longer.
|
||||
bool compile_to_file(const char **name,
|
||||
bool disableOpt,
|
||||
bool disableInline,
|
||||
bool disableGVNLoadPRE,
|
||||
bool disableVectorization,
|
||||
@ -114,15 +114,13 @@ struct LTOCodeGenerator {
|
||||
// caller. This function should delete intermediate object file once its content
|
||||
// is brought to memory. Return NULL if the compilation was not successful.
|
||||
const void *compile(size_t *length,
|
||||
bool disableOpt,
|
||||
bool disableInline,
|
||||
bool disableGVNLoadPRE,
|
||||
bool disableVectorization,
|
||||
std::string &errMsg);
|
||||
|
||||
// Optimizes the merged module. Returns true on success.
|
||||
bool optimize(bool disableOpt,
|
||||
bool disableInline,
|
||||
bool optimize(bool disableInline,
|
||||
bool disableGVNLoadPRE,
|
||||
bool disableVectorization,
|
||||
std::string &errMsg);
|
||||
@ -171,6 +169,7 @@ private:
|
||||
std::string MAttr;
|
||||
std::string NativeObjectPath;
|
||||
TargetOptions Options;
|
||||
unsigned OptLevel;
|
||||
lto_diagnostic_handler_t DiagHandler;
|
||||
void *DiagContext;
|
||||
LTOModule *OwnedModule;
|
||||
|
Reference in New Issue
Block a user