Ahmed Bougacha
2015-Jan-08 01:09 UTC
[LLVMdev] FYI out-of-tree/in-tree target maintainers: setLoadExtAction now takes two MVTs.
Hi all, I made a change to get/setLoadExtAction in r225421 to be able to also specify value type (rather than just memory type) legality. The de facto previous behavior was to ignore the value type, and only worry about the memory type. To match that, I mechanically changed all instances of setLoadExtAction in the in-tree codebase. However, I'd guess there are lots of cases where the legality should be restricted, and maybe some where it should be extended This change was motivated by X86 having some but not all value types legal for an extload from a given memory type. Maybe your target is in a similar situation. For X86, ARM, and AArch64: I'll take care of changing the backends to take advantage of the finer API. Maintainers of other in-tree targets: please do the same. Also, please double-check the mechanical change mentioned above. As-is, there shouldn't be any functional change. Out-of-tree maintainers: the simplest change to get your target to compile is to turn: setLoadExtAction(..., VT, ...); into: for (MVT InnerVT : MVT::all_valuetypes()) setLoadExtAction(..., InnerVT, VT, ...); You might want to: - use a finer-grained MVT range; for instance, if VT is a vector type, use MVT::vector_valuetypes(). - use target knowledge to make the setLoadExtAction calls more precise. -Ahmed
David Chisnall
2015-Jan-08 09:59 UTC
[LLVMdev] FYI out-of-tree/in-tree target maintainers: setLoadExtAction now takes two MVTs.
> On 8 Jan 2015, at 01:09, Ahmed Bougacha <ahmed.bougacha at gmail.com> wrote: > > Hi all, > > I made a change to get/setLoadExtAction in r225421 to be able to also > specify value type (rather than just memory type) legality.Thank you! That's going to remove a few hacks in our tree. David