On Feb 11, 2010, at 11:31 AM, David Greene wrote:> On Wednesday 10 February 2010 14:58:58 Dan Gohman wrote: >> On Feb 10, 2010, at 12:42 PM, David Greene wrote: >>> On Wednesday 10 February 2010 12:58:25 Chris Lattner wrote: >>>> I think that adding a bit to LoadSDNode and StoreSDNode would make >>>> sense. >>> >>> Ok. The consequence is that a number of functions will have to change to >>> propagate this bit, analogous to what happens with isVolatile. It's >>> essentially what we do right now here. If everyone's ok with that, I'll >>> go that route. >> >> Putting a bit (or multiple bits) in MachineMemOperand for this >> would also make sense. > > Is there any chance a MachineMemOperand will be shared by multiple > instructions?Yes. Dan
On Thursday 11 February 2010 14:02:13 Dan Gohman wrote:> >> Putting a bit (or multiple bits) in MachineMemOperand for this > >> would also make sense. > > > > Is there any chance a MachineMemOperand will be shared by multiple > > instructions? > > Yes.Then we can't use it to hold a non-temporal flag. The operand might be non-temporal in one context but it may not be in another. -Dave
On Feb 11, 2010, at 12:07 PM, David Greene wrote:> On Thursday 11 February 2010 14:02:13 Dan Gohman wrote: > >>>> Putting a bit (or multiple bits) in MachineMemOperand for this >>>> would also make sense. >>> >>> Is there any chance a MachineMemOperand will be shared by multiple >>> instructions? >> >> Yes. > > Then we can't use it to hold a non-temporal flag. The operand might be > non-temporal in one context but it may not be in another.Sharing only happens when two instructions have the "same" memory reference info. You just need to make sure that the non-temporal flag is significant. It's not fundamentally different from the volatile flag in this respect. Dan