[llvm-commits] [PATCH] Change return type of getOptimalMemOpType() from EVT to MVT.

Craig Topper craig.topper at gmail.com
Sat Nov 24 19:21:27 PST 2012


The two patches also don't compile when applied together.

On Sat, Nov 24, 2012 at 7:05 PM, Craig Topper <craig.topper at gmail.com>wrote:

> Should probably add a bitsGT to MVT for this part of the second patch. The
> trip through EVT will add checks for handling Extended types.
>
>        LVT = (MVT::SimpleValueType)(LVT.SimpleTy - 1);
>      assert(LVT.isInteger());
>
> -    if (VT.bitsGT(LVT))
> +    if (EVT(VT).bitsGT(LVT))
>        VT = LVT;
>    }
>
> I don't realy like the intialization of VTSize being in the for loop
> header. It makes it confusing since VTSize isn't the variable being used
> for iteration. I'm also not sure that's even safe to pull out of the loop
> since VT can change inside the loop. For the same reason, I dont' think you
> can subtract VTSize.
>
> -  unsigned NumMemOps = 0;
> -  while (Size != 0) {
> -    unsigned VTSize = VT.getSizeInBits() / 8;
> +  for (unsigned VTSize = VT.getSizeInBits() / 8; Size != 0; Size -=
> VTSize) {
>
>
> I'm pretty sure this change isn't equivalent either because it allows
> MemOps to grow past the limit which it didn't previously do.
>
> -    if (++NumMemOps > Limit)
> -      return false;
>      MemOps.push_back(VT);
> -    Size -= VTSize;
> +    if (MemOps.size() > Limit)
> +      return false;
>
> On Fri, Nov 23, 2012 at 3:44 AM, Patrik Hägglund H <
> patrik.h.hagglund at ericsson.com> wrote:
>
>> Here are two small patches that change the return type of
>> getOptimalMemOpType()
>>  from EVT to MVT. In the second patch there is also some other minor
>> cleanups.
>>
>> Let me know if you have any objections. Otherwise, I will commit them.
>>
>> Regards,
>> Patrik Hägglund
>>
>> [PATCH 1/2] Cleanup: Change return type of getOptimalMemOpType()
>>  from EVT to MVT.
>>
>> The user of this function (FindOptimalMemOpLowering) asserts if not
>> receiving an MVT. Therefore, it makes no sense to use EVT.
>> ---
>>  include/llvm/Target/TargetLowering.h   | 4 ++--
>>  lib/Target/ARM/ARMISelLowering.cpp     | 2 +-
>>  lib/Target/ARM/ARMISelLowering.h       | 2 +-
>>  lib/Target/Mips/MipsISelLowering.cpp   | 2 +-
>>  lib/Target/Mips/MipsISelLowering.h     | 2 +-
>>  lib/Target/PowerPC/PPCISelLowering.cpp | 4 ++--
>>  lib/Target/PowerPC/PPCISelLowering.h   | 4 ++--
>>  lib/Target/X86/X86ISelLowering.cpp     | 4 ++--
>>  lib/Target/X86/X86ISelLowering.h       | 4 ++--
>>
>>
>> [PATCH 2/2] Cleanup: Use an MVT instead of EVT. Clean up loop logic.
>>
>> The code asserts at VT.getSimpleVT() if VT isn't an MVT.
>> ---
>>  lib/CodeGen/SelectionDAG/SelectionDAG.cpp | 19 ++++++++-----------
>>
>> _______________________________________________
>> llvm-commits mailing list
>> llvm-commits at cs.uiuc.edu
>> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
>>
>>
>
>
> --
> ~Craig
>



-- 
~Craig
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20121124/2597d2f6/attachment.html>


More information about the llvm-commits mailing list