diff options
author | Alon Zakai <alonzakai@gmail.com> | 2016-04-18 11:44:23 -0700 |
---|---|---|
committer | Alon Zakai <alonzakai@gmail.com> | 2016-04-18 11:44:23 -0700 |
commit | 4b5d4efc7091e25b303cb57076ebdee980b8b464 (patch) | |
tree | 888920d29ff21d5fa57f61c856f914e18191942b /src | |
parent | bbc39d6e75e8b87170f7a3cd72dd34976687e7f6 (diff) | |
download | binaryen-4b5d4efc7091e25b303cb57076ebdee980b8b464.tar.gz binaryen-4b5d4efc7091e25b303cb57076ebdee980b8b464.tar.bz2 binaryen-4b5d4efc7091e25b303cb57076ebdee980b8b464.zip |
nicer pass printing (#358)
Diffstat (limited to 'src')
-rw-r--r-- | src/pass.cpp | 21 |
1 files changed, 19 insertions, 2 deletions
diff --git a/src/pass.cpp b/src/pass.cpp index b0d4a316e..1a8aaabc9 100644 --- a/src/pass.cpp +++ b/src/pass.cpp @@ -68,20 +68,37 @@ void PassRunner::addDefaultOptimizationPasses() { } void PassRunner::run(Module* module) { + std::chrono::high_resolution_clock::time_point beforeEverything; + size_t padding = 0; + if (debug) { + std::cerr << "[PassRunner] running passes..." << std::endl; + beforeEverything = std::chrono::high_resolution_clock::now(); + for (auto pass : passes) { + padding = std::max(padding, pass->name.size()); + } + } for (auto pass : passes) { currPass = pass; std::chrono::high_resolution_clock::time_point before; if (debug) { - std::cerr << "[PassRunner] running pass: " << pass->name << std::endl; + std::cerr << "[PassRunner] running pass: " << pass->name << "... "; + for (size_t i = 0; i < padding - pass->name.size(); i++) { + std::cerr << ' '; + } before = std::chrono::high_resolution_clock::now(); } pass->run(this, module); if (debug) { auto after = std::chrono::high_resolution_clock::now(); std::chrono::duration<double> diff = after - before; - std::cerr << "[PassRunner] pass took " << diff.count() << " seconds." << std::endl; + std::cerr << diff.count() << " seconds." << std::endl; } } + if (debug) { + auto after = std::chrono::high_resolution_clock::now(); + std::chrono::duration<double> diff = after - beforeEverything; + std::cerr << "[PassRunner] passes took " << diff.count() << " seconds." << std::endl; + } } template<class P> |