[ARM,MVE] Add missing IntrNoMem flag on IR intrinsics.
authorSimon Tatham <simon.tatham@arm.com>
Thu, 9 Jan 2020 11:23:20 +0000 (11:23 +0000)
committerSimon Tatham <simon.tatham@arm.com>
Thu, 9 Jan 2020 15:04:47 +0000 (15:04 +0000)
commit9704ba652a0062c53ec66b068766df5c0cd5c620
treebabf0538597729d438cb1f3a20e250853826d273
parentd857e114b5e04f5143485a5aea7ad9b283768692
[ARM,MVE] Add missing IntrNoMem flag on IR intrinsics.

A lot of the IR-level intrinsics we've been defining for MVE recently
accidentally had `props = []` instead of `props = [IntrNoMem]`, so
that optimization would have been overcautious about reordering them.

All the affected cases were due to instantiating the multiclasses
`MVEPredicated` and `MVEMXPredicated` without filling in the `props`
parameter, because I //thought// I remembered having set the defaults
in those multiclasses to `[IntrNoMem]`. In fact I hadn't done that.
Now I have.

(The IR intrinsics that //do// read and write memory are all
explicitly marked as `[IntrReadMem]` or `[IntrWriteMem]` already, so
they will override these defaults.)
llvm/include/llvm/IR/IntrinsicsARM.td