evan.cheng at apple.com
Wed Jun 18 17:24:28 PDT 2008
On Jun 18, 2008, at 11:41 AM, David Greene wrote:
> On Wednesday 18 June 2008 01:30, Evan Cheng wrote:
>> On Jun 17, 2008, at 1:36 PM, David Greene wrote:
>>> Can someone explain the Constraints system in X86*.td?
>>> For example:
>>> let Constraints = "$src1 = $dst"
>>> This replaces isTwoAddress (according to svn logs), which I gather
>>> is how
>>> two-address instructions used to be marked for X86.
>> You're right. This is the same as isTwoAddress, just more flexible.
> Ok, but what are the implications for the rest of llvm? What does
> constrait say to later phases? Is it a requirement that all two-
> instructions have this constraint or does it just enable more
It specify the two-address property. So two-address and later passes
will honor the constraint. It's more a requirement rather than
enabling more optimizations.
> That is, is functional correctness tied to using this constraint?
>>> Except isTwoAddress is still used in X86InstInfo.td.
>> Because I haven't replaced all uses of isTwoAddress with constraints,
>> that's all.
> Gotcha. Thanks.
> LLVM Developers mailing list
> LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu
More information about the llvm-dev