Hello,
when building the rust-cheri-compiler I get a linker-error.
Therefore I build llvm in the llvm-project-directory and get the following error which I could not fix:
/rust-cheri/src/llvm-project$ cmake --build build
[4/234] Building MipsGenGlobalISel.inc...
FAILED: lib/Target/Mips/MipsGenGlobalISel.inc /home/user/CLionProjects/rust-cheri/src/llvm-project/build/lib/Target/Mips/MipsGenGlobalISel.inc
cd /home/user/CLionProjects/rust-cheri/src/llvm-project/build && /home/user/CLionProjects/rust-cheri/src/llvm-project/build/bin/llvm-tblgen -gen-global-isel -I /home/user/CLionProjects/rust-cheri/src/llvm-project/llvm/lib/Target/Mips -I/home/user/CLionProjects/rust-cheri/src/llvm-project/build/include -I/home/user/CLionProjects/rust-cheri/src/llvm-project/llvm/include -I /home/user/CLionProjects/rust-cheri/src/llvm-project/llvm/lib/Target /home/user/CLionProjects/rust-cheri/src/llvm-project/llvm/lib/Target/Mips/Mips.td --write-if-changed -o lib/Target/Mips/MipsGenGlobalISel.inc -d lib/Target/Mips/MipsGenGlobalISel.inc.d
Type set is empty for each HW mode:
possible type contradiction in the pattern below (use -print-records with llvm-tblgen to see all expanded records).
anonymous_5837: (ld:{ *:[i64] } (ptradd:{ *:[] } AddrFI64:{ *:[iFATPTR64] }:$addr, (imm:{ *:[i64] })<<P:Predicate_simm8s3Pattern>>:$offset))<<P:Predicate_unindexedload>><<P:Predicate_load>>
Generated from record:
anonymous_5837 { // Pattern Pat
dag PatternToMatch = (i64 (load (iFATPTR128 (ptradd AddrFI64:$addr, simm8s3Pattern:$offset))));
list ResultInstrs = [(CAPLOAD64 ZERO_64, simm8s3Pattern:$offset, ?:$addr)];
list Predicates = [];
int AddedComplexity = 0;
}
Included from /home/user/CLionProjects/rust-cheri/src/llvm-project/llvm/lib/Target/Mips/Mips.td:244:
Included from /home/user/CLionProjects/rust-cheri/src/llvm-project/llvm/lib/Target/Mips/MipsInstrInfo.td:3415:
/home/user/CLionProjects/rust-cheri/src/llvm-project/llvm/lib/Target/Mips/MipsInstrCheri.td:957:3: error: Type set is empty for each HW mode in 'anonymous_5837'
def : Pat<(intTy (loadOp (iFatptrTy (ptradd Addr:$addr, immfrag:$offset)))), (OutOp ZERO_64, immfrag:$offset, $addr)>;
^
Included from /home/user/CLionProjects/rust-cheri/src/llvm-project/llvm/lib/Target/Mips/Mips.td:244:
Included from /home/user/CLionProjects/rust-cheri/src/llvm-project/llvm/lib/Target/Mips/MipsInstrInfo.td:3415:
/home/user/CLionProjects/rust-cheri/src/llvm-project/llvm/lib/Target/Mips/MipsInstrCheri.td:970:9: note: instantiated from multiclass
defm: FrameIndexLoadPatterns<load, iFATPTR128, i64, Addr, CAPLOAD64, simm8s3Pattern>;
^
Included from /home/user/CLionProjects/rust-cheri/src/llvm-project/llvm/lib/Target/Mips/Mips.td:244:
Included from /home/user/CLionProjects/rust-cheri/src/llvm-project/llvm/lib/Target/Mips/MipsInstrInfo.td:3415:
/home/user/CLionProjects/rust-cheri/src/llvm-project/llvm/lib/Target/Mips/MipsInstrCheri.td:1021:8: note: instantiated from multiclass
defm : FrameIndexPatterns<iFATPTR64, AddrFI64>;
^
Maybe someone here can help to fix the error.
Many thanks in advance for your support :)
Hello,
when building the rust-cheri-compiler I get a linker-error.
Therefore I build llvm in the llvm-project-directory and get the following error which I could not fix:
/rust-cheri/src/llvm-project$ cmake --build build
[4/234] Building MipsGenGlobalISel.inc...
FAILED: lib/Target/Mips/MipsGenGlobalISel.inc /home/user/CLionProjects/rust-cheri/src/llvm-project/build/lib/Target/Mips/MipsGenGlobalISel.inc
cd /home/user/CLionProjects/rust-cheri/src/llvm-project/build && /home/user/CLionProjects/rust-cheri/src/llvm-project/build/bin/llvm-tblgen -gen-global-isel -I /home/user/CLionProjects/rust-cheri/src/llvm-project/llvm/lib/Target/Mips -I/home/user/CLionProjects/rust-cheri/src/llvm-project/build/include -I/home/user/CLionProjects/rust-cheri/src/llvm-project/llvm/include -I /home/user/CLionProjects/rust-cheri/src/llvm-project/llvm/lib/Target /home/user/CLionProjects/rust-cheri/src/llvm-project/llvm/lib/Target/Mips/Mips.td --write-if-changed -o lib/Target/Mips/MipsGenGlobalISel.inc -d lib/Target/Mips/MipsGenGlobalISel.inc.d
Type set is empty for each HW mode:
possible type contradiction in the pattern below (use -print-records with llvm-tblgen to see all expanded records).
anonymous_5837: (ld:{ *:[i64] } (ptradd:{ *:[] } AddrFI64:{ *:[iFATPTR64] }:$addr, (imm:{ *:[i64] })<<P:Predicate_simm8s3Pattern>>:$offset))<<P:Predicate_unindexedload>><<P:Predicate_load>>
Generated from record:
anonymous_5837 { // Pattern Pat
dag PatternToMatch = (i64 (load (iFATPTR128 (ptradd AddrFI64:$addr, simm8s3Pattern:$offset))));
list ResultInstrs = [(CAPLOAD64 ZERO_64, simm8s3Pattern:$offset, ?:$addr)];
list Predicates = [];
int AddedComplexity = 0;
}
Included from /home/user/CLionProjects/rust-cheri/src/llvm-project/llvm/lib/Target/Mips/Mips.td:244:
Included from /home/user/CLionProjects/rust-cheri/src/llvm-project/llvm/lib/Target/Mips/MipsInstrInfo.td:3415:
/home/user/CLionProjects/rust-cheri/src/llvm-project/llvm/lib/Target/Mips/MipsInstrCheri.td:957:3: error: Type set is empty for each HW mode in 'anonymous_5837'
def : Pat<(intTy (loadOp (iFatptrTy (ptradd Addr:$addr, immfrag:$offset)))), (OutOp ZERO_64, immfrag:$offset, $addr)>;
^
Included from /home/user/CLionProjects/rust-cheri/src/llvm-project/llvm/lib/Target/Mips/Mips.td:244:
Included from /home/user/CLionProjects/rust-cheri/src/llvm-project/llvm/lib/Target/Mips/MipsInstrInfo.td:3415:
/home/user/CLionProjects/rust-cheri/src/llvm-project/llvm/lib/Target/Mips/MipsInstrCheri.td:970:9: note: instantiated from multiclass
defm: FrameIndexLoadPatterns<load, iFATPTR128, i64, Addr, CAPLOAD64, simm8s3Pattern>;
^
Included from /home/user/CLionProjects/rust-cheri/src/llvm-project/llvm/lib/Target/Mips/Mips.td:244:
Included from /home/user/CLionProjects/rust-cheri/src/llvm-project/llvm/lib/Target/Mips/MipsInstrInfo.td:3415:
/home/user/CLionProjects/rust-cheri/src/llvm-project/llvm/lib/Target/Mips/MipsInstrCheri.td:1021:8: note: instantiated from multiclass
defm : FrameIndexPatterns<iFATPTR64, AddrFI64>;
^
Maybe someone here can help to fix the error.
Many thanks in advance for your support :)