Previously, fast-isel would not clean up after trying but failing to select a call instruction, because it would have called flushLocalValueMap() which moves the insertion point, making SavedInsertPt in selectInstruction() invalid. We can fix this by making SavedInsertPt a member variable, and having flushLocalValueMap() update it.
This removes some redundant code at-O0, and more importantly fixes PR20863. Please take a look!