[PATCH] D38054: [PowerPC] Fix the spill issue exposed by r310809

Nemanja Ivanovic via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Fri Sep 22 03:05:34 PDT 2017


nemanjai added a comment.

In https://reviews.llvm.org/D38054#878445, @echristo wrote:

> In https://reviews.llvm.org/D38054#877711, @hfinkel wrote:
>
> > I think this generally looks fine.
> >
> > Just as a general note on code organizations and commenting, we seem to be accumulating a pretty deep call tree here of functions that only work correctly in 64-bit mode. Not in this patch, but we should do something about this (either segregating these things into a distinct part of the file and/or adding asserts and/or comments to the 64-bit-mode-only functions.
>
>
> Agreed. Also a lot of the fine points of when to extend and when not could probably be split out as well. This is definitely getting pretty unwieldy.
>
> -eric


OK. I'll commit this patch as-is with the inline comment addressed.

Then perhaps in a subsequent patch, I'll create something like `class GPRComparisonSelector` that uses essentially the same approach as the `BitPermutationSelector`. The `Select()` function will do the necessary checks and exit early if we're not a PPC64 target. All the functions that do the actual selection will be private. This way we should be able to avoid carelessly calling these functions under invalid conditions.
Does that sound like a good plan?



================
Comment at: lib/Target/PowerPC/PPCISelDAGToDAG.cpp:2979
     if (IsRHSZero)
       return getCompoundZeroComparisonInGPR(LHS, dl, ZeroCompare::LESExt);
+
----------------
echristo wrote:
> As a note I find the ZeroCompare enum to be fairly inscrutable. Perhaps document it and what each value is?
Will do.


Repository:
  rL LLVM

https://reviews.llvm.org/D38054





More information about the llvm-commits mailing list