[opt] Fix run-twice crash and detection problem
authorPeter Kokai <kokaipeter@gmail.com>
Mon, 30 Dec 2019 08:22:55 +0000 (00:22 -0800)
committerFangrui Song <maskray@google.com>
Mon, 30 Dec 2019 08:42:46 +0000 (00:42 -0800)
commit36ae255663cfbe1813fcda7de421e3e10c00c91b
tree7b367dbb67dcc2b4bb886d619e19a9f2797f64a8
parentb47b35ff51b355a446483777155290541ab64fae
[opt] Fix run-twice crash and detection problem

1. Execute `opt -run-twice a.ll` with in a terminal will crash.
   https://bugs.llvm.org/show_bug.cgi?id=44382
2. `-run-twice` saves output into two buffers and compares them.
   When outputing the result is disabled, that produces two empty string thus
   they are going to be equal all the time resulting false-positive results.

The proposed solution is to generate the results even if the output will not be
emitted, as that is required for the comparision.

Differential Revision: https://reviews.llvm.org/D71967
llvm/tools/opt/opt.cpp