canSkipDef() currently skips inaccessiblememonly calls, but not if they are allocation functions. This check was added in D103009, but I don't understand why. There are no test failures if it is removed, and I don't really see what relation it has to the implemented transform (as canSkipDef() is not used on the storeIsNoop() path, as far as I can tell).
Either this is dead code, or we're missing a test.
as @yurai007 suggested, it looks like the TLI arg can be dropped