Don't silently remove invocations to methods without implementors...
Don't silently remove invocations to methods without implementors...

Summary:
compute_no_side_effects_methods might have found methods that have no implementors. Let's not silently remove those invocations in LocalDce, as invoking them *will* unconditionally cause an exception.

Note that CSE and LocalDce are the only places that might feed augmented (via compute_no_side_effects_methods, which might select methods with no implementors) pure methods to LocalDce.
Both will always provide a method override graph. The CSE pass can never run after register allocation (as it needs new temp registers), so LocalDce is always allowed to allocate new temps.
The standalone LocalDce pass on the other hand *can* run after register allocation. When that happens, we now remove methods without implementors from the pure-methods list.

Reviewed By: agampe

Differential Revision: D19772324

fbshipit-source-id: 0e03a2288c7f5b310ccbc9f7010162b87a465956

facebook/redex,facebook/redex,facebook/redex,facebook/redex,facebook/redex,facebook/redex,facebook/redex,facebook/redex,facebook/redex