[llvm-commits] [llvm] r141567 - /llvm/trunk/include/llvm/Target/Target.td
Andrew Trick
atrick at apple.com
Tue Oct 18 12:24:15 PDT 2011
On Oct 10, 2011, at 1:56 PM, Jim Grosbach wrote:
>
> On Oct 10, 2011, at 11:51 AM, Jakob Stoklund Olesen wrote:
>
>> Author: stoklund
>> Date: Mon Oct 10 13:51:33 2011
>> New Revision: 141567
>>
>> URL: http://llvm.org/viewvc/llvm-project?rev=141567&view=rev
>> Log:
>> Mark the standard pseudos as isPseudo = 1.
>>
>> The difference between isPseudo and isCodeGenOnly is a bit murky, but
>> isCodeGenOnly should eventually go away. It is used for instructions
>> that are clones of real instructions with slightly different properties.
>
> Generally, isPseudo denotes pseudo-instructions from the perspective of code-gen. isCodeGenOnly denotes pseudos from the perspective of the assembler instruction matcher.
>
> Specifically:
> isPseudo: Does not have encoding information and should be expanded, at the latest, during lowering to MCInst.
> isCodeGenOnly: Does have encoding information and can go through to the CodeEmitter unchanged, but duplicates a canonical instruction definition's encoding and should be ignored when constructing the assembler match tables.
>
> And yes, isCodeGenOnly should eventually go away. It's necessary for now until we convert the duplicate definitions into pseudos for code-gen.
>
> -Jim
That makes sense. However, I always thought it was a subset relation given the definition of PseudoInst:
class PseudoInst<dag oops, dag iops, InstrItinClass itin, list<dag> pattern>
...
let isCodeGenOnly = 1;
let isPseudo = 1;
-Andy
More information about the llvm-commits
mailing list