[llvm-dev] How to debug instruction selection (original) (raw)
Ehsan Ali via llvm-dev llvm-dev at lists.llvm.org
Tue Aug 15 02:50:02 PDT 2017
- Previous message: [llvm-dev] How to debug instruction selection
- Next message: [llvm-dev] How to debug instruction selection
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
The most important information is the opcode that you have to select: means convert the independent machine instruction to your machine specific instruction, this error states that opcode X86ISD::Wrapper must be selected which you failed to do.
Instruction selection happend in xxxInstInfo.td file or using C code in select() function.
X86ISD::Wrapper is a pseudo instruction that wraps a bunch of other instructions.
TargetGlobalAddress is the operand to X86ISD::Wrapper and is a i32.
On 8/15/17, Alex Denisov via llvm-dev <llvm-dev at lists.llvm.org> wrote:
Hi there,
I try to JIT compile some bitcode and seeing the following error: LLVM ERROR: Cannot select: 0x28ec830: ch,glue = X86ISD::CALL 0x28ec7c0, 0x28ef900, Register:i32 %EDI, Register:i8 %AL, RegisterMask:Untyped, 0x28ec7c0:1 0x28ef900: i32 = X86ISD::Wrapper TargetGlobalAddress:i32<void (i8*, ...)*_ _@ZN5FooBr7xprintfEPKcz> 0 0x28ec520: i32 = TargetGlobalAddress<void (i8*, ...)*_ _@ZN5FooBr7xprintfEPKcz> 0 0x28ec670: i32 = Register %EDI 0x28ec750: i8 = Register %AL 0x28ec360: Untyped = RegisterMask 0x28ec7c0: ch,glue = CopyToReg 0x28ec6e0, Register:i8 %AL, Constant:i8<0>, 0x28ec6e0:1 0x28ec750: i8 = Register %AL 0x28ec600: i8 = Constant<0> 0x28ec6e0: ch,glue = CopyToReg 0x28ec590, Register:i32 %EDI, 0x28ef820 0x28ec670: i32 = Register %EDI 0x28ef820: i32 = X86ISD::Wrapper TargetGlobalAddress:i32<[47 x i8]*_ _@.str> 0 0x28ec910: i32 = TargetGlobalAddress<[47 x i8]* @.str> 0 In function: ZN5FooBr10initSystemEv I have some assumptions about this particular error. What is not clear to me is: how am I supposed to read this error message? I.e. what to look at to make some sense out of it? P.S. I have zero knowledge about instruction selection, so any suggestions on where I can get this knowledge are more than welcome. -- AlexDenisov Software Engineer, https://lowlevelbits.org
- Previous message: [llvm-dev] How to debug instruction selection
- Next message: [llvm-dev] How to debug instruction selection
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]