summaryrefslogtreecommitdiff
path: root/src/pass.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/pass.cpp')
-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>