[PATCH] D88098: [SVE] Add new isKnownXX comparison functions to TypeSize

David Sherwood via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Tue Sep 22 07:17:14 PDT 2020


david-arm created this revision.
david-arm added reviewers: sdesmalen, efriedma, ctetreau, paulwalker-arm, c-rhodes, kmclaughlin.
Herald added subscribers: llvm-commits, psnobl, tschuett.
Herald added a project: LLVM.
david-arm requested review of this revision.

This patch introduces four new comparison functions:

  isKnownLT, isKnownLE, isKnownGT, isKnownGE

that return true if we know at compile time that a particular
condition is met, i.e. that one size is definitely greater than
another. The existing operators <,>,<=,>= remain in the code for
now, but over time we would like to remove them and change the
code to use the isKnownXY routines instead. These functions do
not assert like the existing operators because the caller is
expected to properly deal with cases where we return false by
analysing the scalable properties. I've made more of an effort
to deal with cases where there are mixed comparisons, i.e. between
fixed width and scalable types.

I've also added some knownBitsXY routines to the EVT and MVT
classes that call the equivalent TypeSize::isKnownXY routines.
I've changed the existing bitsXY functions to call their knownBitsXY
equivalents and added asserts that the scalable properties match.
Again, over time we expect to migrate callers to use knownBitsXY
and make the code more aware of the scalable nature of the sizes.


Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D88098

Files:
  llvm/include/llvm/CodeGen/ValueTypes.h
  llvm/include/llvm/Support/MachineValueType.h
  llvm/include/llvm/Support/TypeSize.h

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D88098.293453.patch
Type: text/x-patch
Size: 7583 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20200922/7e0f357f/attachment.bin>


More information about the llvm-commits mailing list