mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-07-22 09:29:31 +00:00
Add a -time-compilations=<N> option to llc.
This causes llc to repeat the module compilation N times, making it possible to get more accurate information from -time-passes when compiling small modules. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@169040 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
8244121b9c
commit
882092808b
@ -51,6 +51,11 @@ InputFilename(cl::Positional, cl::desc("<input bitcode>"), cl::init("-"));
|
|||||||
static cl::opt<std::string>
|
static cl::opt<std::string>
|
||||||
OutputFilename("o", cl::desc("Output filename"), cl::value_desc("filename"));
|
OutputFilename("o", cl::desc("Output filename"), cl::value_desc("filename"));
|
||||||
|
|
||||||
|
static cl::opt<unsigned>
|
||||||
|
TimeCompilations("time-compilations", cl::Hidden, cl::init(1u),
|
||||||
|
cl::value_desc("N"),
|
||||||
|
cl::desc("Repeat compilation N times for timing"));
|
||||||
|
|
||||||
// Determine optimization level.
|
// Determine optimization level.
|
||||||
static cl::opt<char>
|
static cl::opt<char>
|
||||||
OptLevel("O",
|
OptLevel("O",
|
||||||
@ -71,6 +76,8 @@ DisableSimplifyLibCalls("disable-simplify-libcalls",
|
|||||||
cl::desc("Disable simplify-libcalls"),
|
cl::desc("Disable simplify-libcalls"),
|
||||||
cl::init(false));
|
cl::init(false));
|
||||||
|
|
||||||
|
static int compileModule(char**, LLVMContext&);
|
||||||
|
|
||||||
// GetFileNameRoot - Helper function to get the basename of a filename.
|
// GetFileNameRoot - Helper function to get the basename of a filename.
|
||||||
static inline std::string
|
static inline std::string
|
||||||
GetFileNameRoot(const std::string &InputFilename) {
|
GetFileNameRoot(const std::string &InputFilename) {
|
||||||
@ -181,6 +188,15 @@ int main(int argc, char **argv) {
|
|||||||
|
|
||||||
cl::ParseCommandLineOptions(argc, argv, "llvm system compiler\n");
|
cl::ParseCommandLineOptions(argc, argv, "llvm system compiler\n");
|
||||||
|
|
||||||
|
// Compile the module TimeCompilations times to give better compile time
|
||||||
|
// metrics.
|
||||||
|
for (unsigned I = TimeCompilations; I; --I)
|
||||||
|
if (int RetVal = compileModule(argv, Context))
|
||||||
|
return RetVal;
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
static int compileModule(char **argv, LLVMContext &Context) {
|
||||||
// Load the module to be compiled...
|
// Load the module to be compiled...
|
||||||
SMDiagnostic Err;
|
SMDiagnostic Err;
|
||||||
std::auto_ptr<Module> M;
|
std::auto_ptr<Module> M;
|
||||||
|
Loading…
Reference in New Issue
Block a user