systems-nuts / unifico

Compiler and build harness for heterogeneous-ISA binaries with the same stack layout.
3 stars 1 forks source link

Stackmaps: Unhandled `ADDXrr` opcode for AArch64 #276

Closed blackgeorge-boom closed 1 year ago

blackgeorge-boom commented 1 year ago
#include "header.h"

#define BLOCK_SIZE 5

int grid_points[3];
double rhs2[10][10 + 1][10 + 1][5];
double lhs[1][3][5][5];

void y_solve()
{
    int i, j, k, m, n, jsize;

    jsize = grid_points[1];

    for (k = 1; k <= grid_points[2] - 2; k++) {
        for (i = 1; i <= grid_points[0] - 2; i++) {
            lhsinit(lhs, jsize);
            for (j = jsize - 1; j >= 0; j--) {
                for (m = 0; m < BLOCK_SIZE; m++) {
                    for (n = 0; n < BLOCK_SIZE; n++) {
                        rhs2[k][j][i][m] =
                                lhs[0][0][n][m] * rhs2[k][j + 1][i][n];
                    }
                }
            }
        }
    }
}

int main(int argc, char *argv[])
{
    y_solve();

    return 0;
}
llc -function-sections -data-sections -relocation-model=pic --trap-unreachable -optimize-regalloc -fast-isel=false -disable-machine-cse -disable-block-align --mc-relax-all -aarch64-csr-alignment=8 -align-bytes-to-four -reg-scavenging-slot -enable-misched=false -mattr=+disable-fp-imm-materialize -mattr=+avoid-wide-mul-add,+copy-wzr-temp -mattr=-disable-hoist-in-lowering -mattr=-avoid-f128 -march=aarch64 -filetype=obj -callsite-padding=main_cs_align.json -o main_aarch64.o main_opt.ll -debug-only=stacktransform

...
Unhandled opcode: ADDXrr
...
blackgeorge-boom commented 1 year ago

Closed by: https://github.com/blackgeorge-boom/llvm-project/pull/55