Index: tools/llc/llc.cpp =================================================================== --- tools/llc/llc.cpp +++ tools/llc/llc.cpp @@ -83,7 +83,7 @@ // Determine optimization level. static cl::opt OptLevel("O", - cl::desc("Optimization level. [-O0, -O1, -O2, or -O3] " + cl::desc("Optimization level. [-O0, -O1, -O2, -O3, -Oz, or -Os] " "(default = '-O2')"), cl::Prefix, cl::ZeroOrMore, @@ -423,6 +423,7 @@ std::string CPUStr = getCPUStr(), FeaturesStr = getFeaturesStr(); CodeGenOpt::Level OLvl = CodeGenOpt::Default; + CodeGenSizeOpt::Level SLvl = CodeGenSizeOpt::None; switch (OptLevel) { default: errs() << argv[0] << ": invalid optimization level.\n"; @@ -432,6 +433,8 @@ case '1': OLvl = CodeGenOpt::Less; break; case '2': OLvl = CodeGenOpt::Default; break; case '3': OLvl = CodeGenOpt::Aggressive; break; + case 's': SLvl = CodeGenSizeOpt::OptSize; break; + case 'z': SLvl = CodeGenSizeOpt::MinSize; break; } TargetOptions Options = InitTargetOptionsFromCodeGenFlags(); @@ -445,7 +448,7 @@ std::unique_ptr Target(TheTarget->createTargetMachine( TheTriple.getTriple(), CPUStr, FeaturesStr, Options, getRelocModel(), - getCodeModel(), OLvl)); + getCodeModel(), OLvl, SLvl)); assert(Target && "Could not allocate target machine!");