Displaying 8 results from an estimated 8 matches for "reladdr".
2016 Jan 07
2
TableGen error message: top-level forms in instruction pattern should have void types
I'm trying to figure out what this error message means:
error: In RelAddr: Top-level forms in instruction pattern should have void
types
The definitions it's complaining about:
//===----------------------------------------------------------------------===//
// RELADDR
//===----------------------------------------------------------------------===//
def SDT_RELADDR...
2016 Jan 13
2
Expanding a PseudoOp and accessing the DAG
I've got this PseudoOp defined:
def SDT_RELADDR : SDTypeProfile<1, 2, [SDTCisInt<0>, SDTCisInt<1>]>;
def XSTGRELADDR : SDNode<"XSTGISD::RELADDR", SDT_RELADDR>;
let Constraints = "$dst = $addr" in { //, Uses= [GRP] in {
def RelAddr : XSTGPseudo< (outs GPRC:$dst),...
2016 Jan 08
2
TableGen error message: top-level forms in instruction pattern should have void types
On 1/7/2016 5:54 PM, Phil Tomson wrote:
> I got it to compile by changing to:
> def SDT_RELADDR : SDTypeProfile<1, 2, [SDTCisInt<0>,
> SDTCisSameAs<0, 1>]>;
> def XSTGRELADDR : SDNode<"XSTGISD::RELADDR", SDT_RELADDR>;
>
> let Uses= [GRP] in {
> def RelAddr : XSTGPseudo< (outs GPRC:$dst),
>...
2016 Jan 07
2
TableGen error message: top-level forms in instruction pattern should have void types
On Thu, Jan 7, 2016 at 1:35 PM, Krzysztof Parzyszek <kparzysz at codeaurora.org
> wrote:
> On 1/7/2016 3:25 PM, Phil Tomson wrote:
>
>>
>> That's better, but now I get:
>>
>> XSTGInstrInfo.td:902:3: error: In RelAddr: XSTGRELADDR node requires
>> exactly 2 operands!
>>
>> Which makes some sense as XSTGRELADDR is defined as:
>> def SDT_RELADDR : SDTypeProfile<1, 2, [SDTCisInt<0>,
>> SDTCisSameAs<0, 1>]>;
>> def XSTGRELADDR : SDNode<"XSTGIS...
2016 Jan 07
2
TableGen error message: top-level forms in instruction pattern should have void types
On Thu, Jan 7, 2016 at 12:21 PM, Krzysztof Parzyszek via llvm-dev <
llvm-dev at lists.llvm.org> wrote:
> On 1/7/2016 1:55 PM, Phil Tomson via llvm-dev wrote:
>
>>
>> let Uses= [GRP] in {
>> def RelAddr : XSTGPseudo< (outs),
>> (ins GPRC:$spoff, GPRC:$dst),
>> "! RELADDR $spoff, $dst",
>> [(XSTGRELADDR GPRC:$spoff, GPRC:
>> $dst)]>;...
2016 Jan 13
2
Type inference in TableGen DAG patterns
Given the following definitions:
def SDT_XSTGMVINI : SDTypeProfile<1, 1, [SDTCisInt<0>]>;
def XSTGMVINI : SDNode<"XSTGISD::MVINI", SDT_XSTGMVINI>;
def SDT_RELADDR : SDTypeProfile<1, 2, []>;
def XSTGRELADDR : SDNode<"XSTGISD::RELADDR", SDT_RELADDR>;
let Constraints = "$dst = $addr", Uses= [GRP] in {
def RelAddr : XSTGPseudo< (outs GPRC:$dst),
//(ins GPRC:$spof...
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 : SDNode<"XSTGISD::RELADDR", SDT_RELADDR>;
>>
>>
>> let Constraints = "$dst = $addr" in { //, Uses= [GRP] in {
>> def RelAddr :...
2016 Jan 15
2
Expanding a PseudoOp and accessing the DAG
...answer)
>> load r1, r1, GRP # r1 <- mem[r1+GRP]
>>
>> What I'm getting at the moment is just this part:
>>
>> load r1, r1, GRP
>>
>> So the movimm is missing. That's because I've added the Pseudo
>> instruction RelAddr and GlobalAddress nodes get converted to RelAddr
>> nodes in LowerGlobalAddress.... They used to get converted to the MVINI
>> node type there prior to adding the RelAddr pseudo inst.
>>
>> It feels like more of this needs to be done in the LowerGlobalAddress
>> functi...