systems-nuts / unifico

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

`y_solve` - Virtual should have been converted to physical register #275

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=+simple-reg-offset-addr -mattr=-multiply-with-imm,+aarch64-sized-imm -mattr=-non-zero-imm-to-mem -mattr=+aarch64-constant-cost-model -x86-enable-simplify-cfg -mattr=+force-vector-mem-op,+avoid-opt-mul-1 -no-x86-call-frame-opt -disable-x86-frame-obj-order -enable-lea32 -march=x86-64 -filetype=obj -o main_x86_64.o main_opt.ll -debug-only=stacktransform

Stack dump:
0.  Program arguments: /home/blackgeorge/llvm-project/llvm/cmake-build-debug/bin/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=+simple-reg-offset-addr -mattr=-multiply-with-imm,+aarch64-sized-imm -mattr=-non-zero-imm-to-mem -mattr=+aarch64-constant-cost-model -x86-enable-simplify-cfg -mattr=+force-vector-mem-op,+avoid-opt-mul-1 -no-x86-call-frame-opt -disable-x86-frame-obj-order -enable-lea32 -march=x86-64 -filetype=obj -o main_x86_64.o main_opt.ll -debug-only=stacktransform 
1.  Running pass 'Function Pass Manager' on module 'main_opt.ll'.
2.  Running pass 'X86 Assembly Printer' on function '@y_solve'
/home/blackgeorge/llvm-project/llvm/cmake-build-debug/bin/llc(_ZN4llvm3sys15PrintStackTraceERNS_11raw_ostreamE+0x37)[0x559e9bcce02d]
/home/blackgeorge/llvm-project/llvm/cmake-build-debug/bin/llc(+0x2d510c4)[0x559e9bcce0c4]
/home/blackgeorge/llvm-project/llvm/cmake-build-debug/bin/llc(_ZN4llvm3sys17RunSignalHandlersEv+0x92)[0x559e9bccbf5e]
/home/blackgeorge/llvm-project/llvm/cmake-build-debug/bin/llc(+0x2d509b7)[0x559e9bccd9b7]
/lib/x86_64-linux-gnu/libpthread.so.0(+0x153c0)[0x7f81327743c0]
/lib/x86_64-linux-gnu/libc.so.6(gsignal+0xcb)[0x7f813221418b]
/lib/x86_64-linux-gnu/libc.so.6(abort+0x12b)[0x7f81321f3859]
/lib/x86_64-linux-gnu/libc.so.6(+0x25729)[0x7f81321f3729]
/lib/x86_64-linux-gnu/libc.so.6(+0x36f36)[0x7f8132204f36]
/home/blackgeorge/llvm-project/llvm/cmake-build-debug/bin/llc(_ZN4llvm9StackMaps20genArchValsFromInstsERNS_11SmallVectorISt4pairINS0_8LocationENS0_9OperationEELj8EEERS3_RKNS_14MachineLiveValE+0x2e5)[0x559e9b11b0d7]
/home/blackgeorge/llvm-project/llvm/cmake-build-debug/bin/llc(_ZN4llvm9StackMaps15addArchLiveValsEPKNS_8CallInstERNS_11SmallVectorISt4pairINS0_8LocationENS0_9OperationEELj8EEE+0x6fc)[0x559e9b11b96c]
/home/blackgeorge/llvm-project/llvm/cmake-build-debug/bin/llc(_ZN4llvm9StackMaps22recordPcnStackMapOpersERKNS_12MachineInstrEmPKNS_14MachineOperandES6_b+0x55b)[0x559e9b11bf0d]
/home/blackgeorge/llvm-project/llvm/cmake-build-debug/bin/llc(_ZN4llvm9StackMaps17recordPcnStackMapERKNS_12MachineInstrE+0xdc)[0x559e9b11cc7a]
/home/blackgeorge/llvm-project/llvm/cmake-build-debug/bin/llc(+0x12dbb85)[0x559e9a258b85]
/home/blackgeorge/llvm-project/llvm/cmake-build-debug/bin/llc(+0x12dfe1f)[0x559e9a25ce1f]
/home/blackgeorge/llvm-project/llvm/cmake-build-debug/bin/llc(_ZN4llvm10AsmPrinter16EmitFunctionBodyEv+0x887)[0x559e9abb4135]
/home/blackgeorge/llvm-project/llvm/cmake-build-debug/bin/llc(+0x12cde50)[0x559e9a24ae50]
/home/blackgeorge/llvm-project/llvm/cmake-build-debug/bin/llc(_ZN4llvm19MachineFunctionPass13runOnFunctionERNS_8FunctionE+0x213)[0x559e9aee7645]
/home/blackgeorge/llvm-project/llvm/cmake-build-debug/bin/llc(_ZN4llvm13FPPassManager13runOnFunctionERNS_8FunctionE+0x2c2)[0x559e9b41dfde]
/home/blackgeorge/llvm-project/llvm/cmake-build-debug/bin/llc(_ZN4llvm13FPPassManager11runOnModuleERNS_6ModuleE+0xd9)[0x559e9b41e2ef]
/home/blackgeorge/llvm-project/llvm/cmake-build-debug/bin/llc(+0x24a1777)[0x559e9b41e777]
/home/blackgeorge/llvm-project/llvm/cmake-build-debug/bin/llc(_ZN4llvm6legacy15PassManagerImpl3runERNS_6ModuleE+0x112)[0x559e9b41ef90]
/home/blackgeorge/llvm-project/llvm/cmake-build-debug/bin/llc(_ZN4llvm6legacy11PassManager3runERNS_6ModuleE+0x2b)[0x559e9b41f19b]
/home/blackgeorge/llvm-project/llvm/cmake-build-debug/bin/llc(+0x121d7ac)[0x559e9a19a7ac]
/home/blackgeorge/llvm-project/llvm/cmake-build-debug/bin/llc(main+0x580)[0x559e9a198dc5]
/lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xf3)[0x7f81321f50b3]
/home/blackgeorge/llvm-project/llvm/cmake-build-debug/bin/llc(_start+0x2e)[0x559e9a196f4e]
blackgeorge-boom commented 1 year ago

We can close this now as handled by: https://github.com/blackgeorge-boom/llvm-project/pull/54