Hello everyone:<div>    I have known that when a file(for example: a.c) is compiled with -flto flag, llvm will output a bitcode file(a.o), command is (clang -flto -c a.c -o a.o). Then I compile same file to bitcode file a.bc, command is (clang -emit-llvm -o a.bc -c a.c). I want to know what difference between a.o and a.bc ?</div><div>a.c content is like below:<br>```</div><div><div>#include "a.h"</div><div><br></div><div>static signed int i = 0;</div><div><br></div><div>void foo2(void) {</div><div>  i = -1;</div><div>}</div><div><br></div><div>static int foo3() {</div><div>  foo4();</div><div>  return 10;</div><div>}</div><div><br></div><div>int foo1(void) {</div><div>  int data = 0;</div><div><br></div><div>  if (i < 0)</div><div>    data = foo3();</div><div><br></div><div>  data = data + 42;</div><div>  return data;</div><div>}</div></div><div>```</div><div>Thanks</div><div>lzx</div><div><div style="color: rgb(212, 212, 212); background-color: rgb(30, 30, 30); font-family: Menlo, Monaco, "Courier New", monospace; font-size: 12px; line-height: 18px; white-space: pre;"><div></div></div></div>