abi lowering happens late in the compilation pipeline. Because of that, memory optimizations are missed (load forwarding, store elimination). It should move earlier, but that may pose the challenge of introducing machine registers early in the pipeline.