This implements a very simple conservative transformation that doesn't
require more than linear code size growth. There's room for much more
optimization in this space.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@262982 91177308-0d34-0410-b5e6-96231b3b80d8