[LLVMdev] [RFC] Replacing EVT:s with MVT:s (when possible)

Chris Lattner clattner at apple.com
Mon Dec 3 15:45:31 PST 2012

On Dec 3, 2012, at 1:14 PM, Patrik Hägglund H <patrik.h.hagglund at ericsson.com> wrote:

> There seems to be quite a few places where the EVT type is used, but the code asserts if the variable/parameter is assigned something else than an MVT. Are there any general objections to replace EVT with MVT in these cases?
> For example, a quick look at TargetLowering.h give me this list of (member) functions, taking an EVT parameter, that asserts if the argument is not an MVT:
> getRegClassFor, getRepRegClassFor, getRepRegClassCostFor, setTypeAction, getLoadExtAction, isLoadExtLegal, getTruncStoreAction, isTruncStoreLegal, getIndexedLoadAction, getIndexedStoreAction, getCondCodeAction, getTypeToPromoteTo, addRegisterClass

Please do.  MVT is cheaper than EVT and conceptually cleaner when dealing with physical machine types.  EVT should only be used in parts of the code generator that are "pre-legalization" because they can represent arbitrary IR types.  Anything that takes a legal machine type should take an MVT.


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20121203/b32e085f/attachment.html>

More information about the llvm-dev mailing list