[llvm-commits] [llvm] r45022 - in /llvm/trunk: include/llvm/Target/TargetInstrInfo.h lib/Target/Target.td utils/TableGen/CodeGenInstruction.h utils/TableGen/CodeGenTarget.cpp utils/TableGen/InstrInfoEmitter.cpp

Chris Lattner clattner at apple.com
Mon Dec 17 15:13:41 PST 2007


On Dec 17, 2007, at 12:52 PM, Bill Wendling wrote:

> On Dec 17, 2007 12:46 PM, Evan Cheng <evan.cheng at apple.com> wrote:
>> On Dec 17, 2007, at 11:40 AM, Bill Wendling wrote:
>>>> As others have pointed out, we need to be much more clear about  
>>>> what
>>>> these mean.  Specifically, I'd list "NEVER" first (it is easier to
>>>> explain). The pertinent point here is completely missing in the
>>>> comments:  this flag is set on an instruction where there is a side
>>>> effect that is not captured by any *operands* of the instruction or
>>>> *other flags*.  Instructions that are "isBranch" instructions but
>>>> have
>>>> no other side effects should have M_NEVER_HAS_SIDE_EFFECTS set.   
>>>> This
>>>> flag should only be set on an instruction when *all instances*  
>>>> of an
>>>> instruction of that opcode have no side effects in this way.
>>>>
>>> I'm confused. If we set this for an instruction where there is a  
>>> side
>>
>> I am pretty sure he meant the opposite. If  
>> M_NEVER_HAS_SIDE_EFFECTS is
>> set, that means the instruction would never have any side effects  
>> that
>> are not captured in the operands.
>>
> Okay. That makes more sense to me. I thought that there might have
> been a "not" or something missing. :-)

Yeah, you're both right, sorry! :)

One clarification: "not captured by operands or *other flags*". :)

-Chris



More information about the llvm-commits mailing list