[LLVMdev] There are compiling errors when converting bytecode to c by LLC
Dmitry N. Mikushin
maemarcus at gmail.com
Sat Oct 29 16:43:40 PDT 2011
Hi Fei Jia,
What revision are you using? I suggest you to try C backend with the
most recent LLVM version, if possible. I recall I had some similar C
backend breakages in July-August: structs definitions were lost
somewhere. To my understanding, the correct result should look like
this:
/* Typedefs */
typedef struct l_unnamed_0 l_unnamed_0;
typedef struct l_unnamed_1 l_unnamed_1;
/* Structure contents */
struct l_unnamed_0 {
unsigned char array[12];
};
struct l_unnamed_1 {
unsigned char array[13];
};
/* Global Variable Declarations */
static l_unnamed_0 _OC_cst;
static l_unnamed_1 _OC_cst1;
/* Global Variable Definitions and Initialization */
extern static l_unnamed_0 _OC_cst = { "hello world" };
extern static l_unnamed_1 _OC_cst1 = { "hello world1" };
- D.
2011/10/11 Fei Jia <j.jiafei at gmail.com>:
> I convert C to bytecode by LLVM, and then convert the bytecode back to C by
> LLC, but the generated C code cannot be compiled. Could anyone give me some
> suggestions? Thanks!
> The initial C file is rather simple (hello world):
>
> #include <stdio.h>
>
> int main() {
>
> printf("hello world\n");
>
> printf("hello world1\n");
>
> return 0;
>
> }
>
> The two commands:
>
> llvm-gcc -emit-llvm -c -o hello.bc hello.c
>
> llc -march=c hello.bc
>
> Version of LLVM: 2.9
>
> The source of error in generated c file:
>
> /* Global Variable Declarations */
>
> static _OC_str { unsigned char array[12]; };
>
> static _OC_str1 { unsigned char array[13]; };
>
>
>
> /* Global Variable Definitions and Initialization */
>
> static _OC_str { unsigned char array[12]; } = { "hello world" };
>
> static _OC_str1 { unsigned char array[13]; } = { "hello world1" };
>
> It seems that _OC_str, and _OC_str1 are structure variables, but I have
> never seen such way of declarations, definitions, and initialization of
> structure in C code. I guess it may be supported in some standards of C.
> Could anyone please give me some information about the problem? Thanks!
> --
> Best Regards,
> Fei Jia
>
> _______________________________________________
> LLVM Developers mailing list
> LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
>
>
More information about the llvm-dev
mailing list