summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorAlon Zakai <alonzakai@gmail.com>2016-04-18 11:44:23 -0700
committerAlon Zakai <alonzakai@gmail.com>2016-04-18 11:44:23 -0700
commit4b5d4efc7091e25b303cb57076ebdee980b8b464 (patch)
tree888920d29ff21d5fa57f61c856f914e18191942b /src
parentbbc39d6e75e8b87170f7a3cd72dd34976687e7f6 (diff)
downloadbinaryen-4b5d4efc7091e25b303cb57076ebdee980b8b464.tar.gz
binaryen-4b5d4efc7091e25b303cb57076ebdee980b8b464.tar.bz2
binaryen-4b5d4efc7091e25b303cb57076ebdee980b8b464.zip
nicer pass printing (#358)
Diffstat (limited to 'src')
-rw-r--r--src/pass.cpp21
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>