[CGP] Reset DT when optimizing select instructions
authorTeresa Johnson <tejohnson@google.com>
Wed, 27 Mar 2019 18:44:25 +0000 (18:44 +0000)
committerTeresa Johnson <tejohnson@google.com>
Wed, 27 Mar 2019 18:44:25 +0000 (18:44 +0000)
commitb7e213808c12967dbf9286d9d566a88a23cd20c3
treefb69b5d5622020b0b3bfa3f774dc7f6ae5cba925
parenteaf4df47821672d3117409d98dae341ea4e972d2
[CGP] Reset DT when optimizing select instructions

Summary:
A recent fix (r355751) caused a compile time regression because setting
the ModifiedDT flag in optimizeSelectInst means that each time a select
instruction is optimized the function walk in runOnFunction stops and
restarts again (which was needed to build a new DT before we started
building it lazily in r356937). Now that the DT is built lazily, a
simple fix is to just reset the DT at this point, rather than restarting
the whole function walk.

In the future other places that set ModifiedDT may want to switch to
just resetting the DT directly. But that will require an evaluation to
ensure that they don't otherwise need to restart the function walk.

Reviewers: spatel

Subscribers: jdoerfert, llvm-commits, xur

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D59889

llvm-svn: 357111
llvm/lib/CodeGen/CodeGenPrepare.cpp