Skip to content

Use it in current LLVM #3

@thetemplar

Description

@thetemplar

Hi,
i am trying to merge this TriCore target into the current version of llvm.
I fixed some minor changes, but am stuck at here:

ADJCALLSTACKDOWN changed, so I had to add $amt2:

// Pseudo Instructions
//===----------------------------------------------------------------------===//

let Defs = [A10], Uses = [A10] in {
def ADJCALLSTACKDOWN : Pseudo<(outs), (ins i32imm:$amt1, i32imm:$amt2),
                                    "# ADJCALLSTACKDOWN $amt1",
                                    [(callseq_start timm:$amt1, timm:$amt2)]>;
def ADJCALLSTACKUP   : Pseudo<(outs), (ins i32imm:$amt1, i32imm:$amt2),
                                    "# ADJCALLSTACKUP $amt1",
                                    [(callseq_end timm:$amt1, timm:$amt2)]>;
}

This now leads to this error:

Included from /home/graul/test/llvm-project/llvm/lib/Target/TriCore/TriCore.td:25:
/home/graul/test/llvm-project/llvm/lib/Target/TriCore/TriCoreInstrInfo.td:242:5: error: In ADJCALLSTACKDOWN: Could not infer all types in pattern!
def ADJCALLSTACKDOWN : Pseudo<(outs), (ins i32imm:$amt1, i32imm:$amt2),
    ^

But after hours if comparing it to existing/working projects, I still do not know what the problem here is.

I know you did not work on this for several years, but do you have an idea anyway?

Thanks!

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions