[PATCH] D67363: [BreakFalseDeps] ignore function with minsize attribute
Craig Topper via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Tue Sep 10 08:16:59 PDT 2019
craig.topper added a comment.
In D67363#1664746 <https://reviews.llvm.org/D67363#1664746>, @spatel wrote:
> In D67363#1664689 <https://reviews.llvm.org/D67363#1664689>, @craig.topper wrote:
>
> > For VEX instructions don’t we just use the other input register to break the dependency without adding an instruction?
>
>
> That sounds right, but it's not controlled by this pass. That's part of memory op folding?
> If I'm seeing it correctly, that's already more aggressively optimizing for size than what we're doing here:
>
> // Avoid partial and undef register update stalls unless optimizing for size.
> if (!MF.getFunction().hasOptSize() &&
> (hasPartialRegUpdate(MI.getOpcode(), Subtarget, /*ForLoadFold*/true) ||
> shouldPreventUndefRegUpdateMemFold(MF, MI)))
> return nullptr;
We disable folding if it takes away our opportunity to use the other input register. But something still needs to pick a register for the implicit_def operand. I though that was this pass? I think in absense of this pass it may just be set to the xmm0 by the register allocator. Do we have tests where xmm0 isn't the right choice?
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D67363/new/
https://reviews.llvm.org/D67363
More information about the llvm-commits
mailing list