Displaying 4 results from an estimated 4 matches for "xstgaddr_normal".
2016 Jan 15
2
Expanding a PseudoOp and accessing the DAG
On 1/15/2016 1:08 PM, Phil Tomson wrote:
>
> Ah, I see, the defm is a multi-class so I needed to change it to:
>
> def: Pat<(load (XSTGADDR_NORMAL tglobaladdr:$addr)),
> (LOADI64_RI tglobaladdr:$addr, 0)>;
> // Match load from a relocatable address to a load with GRP:
> def: Pat<(load (XSTGADDR_USE_GRP tglobaladdr:$addr)),
> (LOADI64_RI (MOVIMMZ_I64 tglobaladdr:$addr), GRP)>;
Right.
> ...at least...
2016 Jan 15
2
Expanding a PseudoOp and accessing the DAG
...;, OpInfo_F32, II_LOAD1 >;
defm LOADI16 : LoadOp< 0b1001010, "load", OpInfo_I16, II_LOAD1 >;
defm LOADI8 : LoadOp< 0b1001010, "load", OpInfo_I8, II_LOAD1 >;
I tried replacing 'load' with 'LOADI64' in the patter, like this:
def: Pat<(LOADI64 (XSTGADDR_NORMAL tglobaladdr:$addr)),
(LOADI64 tglobaladdr:$addr, 0)>;
But that resulted in:
XSTGInstrPatterns.td:619:11: error: Variable not defined: 'LOADI64'
def: Pat<(LOADI64 (XSTGADDR_NORMAL tglobaladdr:$addr)),
> The patterns above should use tglobaladdr, because you will still...
2016 Jan 15
2
Expanding a PseudoOp and accessing the DAG
...OPC_EmitMergeInputChains1_0,
> /*2254*/ OPC_EmitInteger, MVT::i64, 0,
> /*2257*/ OPC_MorphNodeTo, TARGET_VAL(XSTG::LOADI64_RI),
> 0|OPFL_Chain|OPFL_MemRefs,
> 1/*#VTs*/, MVT::i64, 2/*#Ops*/, 1, 2,
> // Src: (ld:i64 (XSTGADDR_NORMAL:iPTR
> (tglobaladdr:iPTR):$addr))<<P:Predicate_unindexedload>><<P:Predicate_load>>
> - Complexity = 10
> // Dst: (LOADI64_RI:i64 (tglobaladdr:i64):$addr, 0:i64)
>
> Not sure why the initial Opcode index is being set to 0 instead of 2235?
Th...
2016 Jan 13
2
Expanding a PseudoOp and accessing the DAG
On Wed, Jan 13, 2016 at 2:08 PM, Krzysztof Parzyszek via llvm-dev <
llvm-dev at lists.llvm.org> wrote:
> On 1/13/2016 2:26 PM, Phil Tomson via llvm-dev wrote:
>
>> I've got this PseudoOp defined:
>>
>> def SDT_RELADDR : SDTypeProfile<1, 2, [SDTCisInt<0>, SDTCisInt<1>]>;
>> def XSTGRELADDR :