| 410 | } |
| 411 | |
| 412 | static void finalize() { |
| 413 | SavedBitcode.resize(0); |
| 414 | if (parallelMgr) { |
| 415 | parallelMgr->finishParent(); |
| 416 | out = out_file.is_open() ? &out_file : &cout; |
| 417 | set_outs(*out); |
| 418 | } |
| 419 | |
| 420 | // If it is run in parallel, stats are shown by children |
| 421 | if (!showed_stats && !parallelMgr) { |
| 422 | showed_stats = true; |
| 423 | showStats(); |
| 424 | if (has_failure && !report_filename.empty()) |
| 425 | cerr << "Report written to " << report_filename << endl; |
| 426 | } |
| 427 | |
| 428 | llvm_util_init.reset(); |
| 429 | smt_init.reset(); |
| 430 | --initialized; |
| 431 | is_clangtv_done = true; |
| 432 | |
| 433 | if (has_failure) { |
| 434 | if (opt_error_fatal) |
| 435 | *out << "Alive2: Transform doesn't verify; aborting!" << endl; |
| 436 | else |
| 437 | *out << "Alive2: Transform doesn't verify!" << endl; |
| 438 | exit(1); |
| 439 | } |
| 440 | } |
| 441 | |
| 442 | void getAnalysisUsage(llvm::AnalysisUsage &AU) const override { |
| 443 | AU.addRequired<llvm::TargetLibraryInfoWrapperPass>(); |
nothing calls this directly
no test coverage detected