Interesting. Now that you mention it, I do recall thinking the loops that llvm generated looked a bit different than the gcc loops. I'll go back and take another look, but this might explain some of that discrepancy.
In response to the other email:
I'm using the -native-cbe option to generate the code. From your last email, it sounds like when you specify this option, it compiles everything to the llvm code, then the CBE generates C code based on the generated llvm code, and THAT is what is compiled to native code rather than the original code itself? That was one of the other things I was going to get around to asking about eventually, it seems like llvm takes an eternity and a half to link these programs, but if this "linking" is really llvm code -> c code -> compile & link again, that would explain why it takes so long.
I have to confess I'm not as familiar with gcc as I'd like to be. Where would gcc put the .s file (or what flags do I have to specify to create one?) Also, where would llvm put the llvm code and the C code that the backend generates (or what do I need to specify to tell it to keep that around)?
I took a look at the inlining decisions that llvm prints out when you specify -Wl,-debug-only=inline. Let me make sure I understand how to interpret this output correctly:
Inliner visiting SCC: .gen_codes_26
Inspecting function: .gen_codes_26
Inlining: cost=100, Call: %tmp.37 = call uint %bi_reverse( uint %tmp.42, int %tmp.27 ) ; <uint> [#uses=1]
Inliner visiting SCC: .pqdownheap_35
Inspecting function: .pqdownheap_35
Inliner visiting SCC: .build_tree_41
Inspecting function: .build_tree_41
NOT Inlining: cost=501, Call: call void %.pqdownheap_35( %struct.ct_data* %tmp.2, int %n.1.0 )
NOT Inlining: cost=466, Call: call void %.pqdownheap_35( %struct.ct_data* %tmp.2, int 1 )
NOT Inlining: cost=466, Call: call void %.pqdownheap_35( %struct.ct_data* %tmp.2, int 1 )
NOT Inlining: cost=406, Call: call void %.gen_codes_26( %struct.ct_data* %tmp.2, int %max_code.1.0 )
So it looks at each function to try to determine if it should be inlined, comes up with a "cost" to inline it based on what it takes as parameters and how often its called, and if this cost is below the threshold specified then it inlines it? What about this build_tree function from the log? It says multiple times its not inlined. Is the decisions whether to inline it or not made for the function as a whole (eg always inline or always don't) or is it decided on a call by call basis? What does it mean for something like pqdownheap where it doesn't give a cost with a yea or nay?
Also, on an unrelated note, I could have sworn all those benchmarks compiled but I went back to double check and I saw that there were a few problems.
253.perlbmk builds fine but crashes when running through the spec test. I recall seeing a note a few places on the website that said perlbmk didn't work properly due to a longjmp bug, is that still a known bug or should I try running that through a debugger to find the problem?
176.gcc generates an ICE when trying to compile with llvm and -O3. Here's the build log, are there any other files that might shed more light on this problem?
Patrick
We will use: 176.gcc
Compiling Binaries
Building 176.gcc ref base ppc32_llvm default
specmake clean 2> make.err | tee make.out
rm -rf cc1 cc1.exe *.o core *.err *.out
specmake build 2> make.err | tee make.out
/Users/patrick/Desktop/LLVM/cfrontend/ppc/llvm-gcc/bin/gcc -c -o c-parse.o -DHOST_WORDS_BIG_ENDIAN -O3 c-parse.c
/Users/patrick/Desktop/LLVM/cfrontend/ppc/llvm-gcc/bin/gcc -c -o c-lang.o -DHOST_WORDS_BIG_ENDIAN -O3 c-lang.c
/Users/patrick/Desktop/LLVM/cfrontend/ppc/llvm-gcc/bin/gcc -c -o c-lex.o -DHOST_WORDS_BIG_ENDIAN -O3 c-lex.c
/Users/patrick/Desktop/LLVM/cfrontend/ppc/llvm-gcc/bin/gcc -c -o c-pragma.o -DHOST_WORDS_BIG_ENDIAN -O3 c-pragma.c
/Users/patrick/Desktop/LLVM/cfrontend/ppc/llvm-gcc/bin/gcc -c -o c-decl.o -DHOST_WORDS_BIG_ENDIAN -O3 c-decl.c
/Users/patrick/Desktop/LLVM/cfrontend/ppc/llvm-gcc/bin/gcc -c -o c-typeck.o -DHOST_WORDS_BIG_ENDIAN -O3 c-typeck.c
/Users/patrick/Desktop/LLVM/cfrontend/ppc/llvm-gcc/bin/gcc -c -o c-convert.o -DHOST_WORDS_BIG_ENDIAN -O3 c-convert.c
/Users/patrick/Desktop/LLVM/cfrontend/ppc/llvm-gcc/bin/gcc -c -o c-aux-info.o -DHOST_WORDS_BIG_ENDIAN -O3 c-aux-info.c
/Users/patrick/Desktop/LLVM/cfrontend/ppc/llvm-gcc/bin/gcc -c -o c-common.o -DHOST_WORDS_BIG_ENDIAN -O3 c-common.c
/Users/patrick/Desktop/LLVM/cfrontend/ppc/llvm-gcc/bin/gcc -c -o c-iterate.o -DHOST_WORDS_BIG_ENDIAN -O3 c-iterate.c
/Users/patrick/Desktop/LLVM/cfrontend/ppc/llvm-gcc/bin/gcc -c -o toplev.o -DHOST_WORDS_BIG_ENDIAN -O3 toplev.c
/Users/patrick/Desktop/LLVM/cfrontend/ppc/llvm-gcc/bin/gcc -c -o version.o -DHOST_WORDS_BIG_ENDIAN -O3 version.c
/Users/patrick/Desktop/LLVM/cfrontend/ppc/llvm-gcc/bin/gcc -c -o tree.o -DHOST_WORDS_BIG_ENDIAN -O3 tree.c
/Users/patrick/Desktop/LLVM/cfrontend/ppc/llvm-gcc/bin/gcc -c -o print-tree.o -DHOST_WORDS_BIG_ENDIAN -O3 print-tree.c
/Users/patrick/Desktop/LLVM/cfrontend/ppc/llvm-gcc/bin/gcc -c -o stor-layout.o -DHOST_WORDS_BIG_ENDIAN -O3 stor-layout.c
/Users/patrick/Desktop/LLVM/cfrontend/ppc/llvm-gcc/bin/gcc -c -o fold-const.o -DHOST_WORDS_BIG_ENDIAN -O3 fold-const.c
/Users/patrick/Desktop/LLVM/cfrontend/ppc/llvm-gcc/bin/gcc -c -o function.o -DHOST_WORDS_BIG_ENDIAN -O3 function.c
/Users/patrick/Desktop/LLVM/cfrontend/ppc/llvm-gcc/bin/gcc -c -o stmt.o -DHOST_WORDS_BIG_ENDIAN -O3 stmt.c
/Users/patrick/Desktop/LLVM/cfrontend/ppc/llvm-gcc/bin/gcc -c -o expr.o -DHOST_WORDS_BIG_ENDIAN -O3 expr.c
/Users/patrick/Desktop/LLVM/cfrontend/ppc/llvm-gcc/bin/gcc -c -o calls.o -DHOST_WORDS_BIG_ENDIAN -O3 calls.c
/Users/patrick/Desktop/LLVM/cfrontend/ppc/llvm-gcc/bin/gcc -c -o expmed.o -DHOST_WORDS_BIG_ENDIAN -O3 expmed.c
/Users/patrick/Desktop/LLVM/cfrontend/ppc/llvm-gcc/bin/gcc -c -o explow.o -DHOST_WORDS_BIG_ENDIAN -O3 explow.c
/Users/patrick/Desktop/LLVM/cfrontend/ppc/llvm-gcc/bin/gcc -c -o optabs.o -DHOST_WORDS_BIG_ENDIAN -O3 optabs.c
/Users/patrick/Desktop/LLVM/cfrontend/ppc/llvm-gcc/bin/gcc -c -o varasm.o -DHOST_WORDS_BIG_ENDIAN -O3 varasm.c
/Users/patrick/Desktop/LLVM/cfrontend/ppc/llvm-gcc/bin/gcc -c -o rtl.o -DHOST_WORDS_BIG_ENDIAN -O3 rtl.c
/Users/patrick/Desktop/LLVM/cfrontend/ppc/llvm-gcc/bin/gcc -c -o print-rtl.o -DHOST_WORDS_BIG_ENDIAN -O3 print-rtl.c
/Users/patrick/Desktop/LLVM/cfrontend/ppc/llvm-gcc/bin/gcc -c -o rtlanal.o -DHOST_WORDS_BIG_ENDIAN -O3 rtlanal.c
/Users/patrick/Desktop/LLVM/cfrontend/ppc/llvm-gcc/bin/gcc -c -o emit-rtl.o -DHOST_WORDS_BIG_ENDIAN -O3 emit-rtl.c
/Users/patrick/Desktop/LLVM/cfrontend/ppc/llvm-gcc/bin/gcc -c -o real.o -DHOST_WORDS_BIG_ENDIAN -O3 real.c
/Users/patrick/Desktop/LLVM/cfrontend/ppc/llvm-gcc/bin/gcc -c -o dbxout.o -DHOST_WORDS_BIG_ENDIAN -O3 dbxout.c
/Users/patrick/Desktop/LLVM/cfrontend/ppc/llvm-gcc/bin/gcc -c -o sdbout.o -DHOST_WORDS_BIG_ENDIAN -O3 sdbout.c
/Users/patrick/Desktop/LLVM/cfrontend/ppc/llvm-gcc/bin/gcc -c -o dwarfout.o -DHOST_WORDS_BIG_ENDIAN -O3 dwarfout.c
/Users/patrick/Desktop/LLVM/cfrontend/ppc/llvm-gcc/bin/gcc -c -o xcoffout.o -DHOST_WORDS_BIG_ENDIAN -O3 xcoffout.c
/Users/patrick/Desktop/LLVM/cfrontend/ppc/llvm-gcc/bin/gcc -c -o integrate.o -DHOST_WORDS_BIG_ENDIAN -O3 integrate.c
/Users/patrick/Desktop/LLVM/cfrontend/ppc/llvm-gcc/bin/gcc -c -o jump.o -DHOST_WORDS_BIG_ENDIAN -O3 jump.c
/Users/patrick/Desktop/LLVM/cfrontend/ppc/llvm-gcc/bin/gcc -c -o cse.o -DHOST_WORDS_BIG_ENDIAN -O3 cse.c
/Users/patrick/Desktop/LLVM/cfrontend/ppc/llvm-gcc/bin/gcc -c -o loop.o -DHOST_WORDS_BIG_ENDIAN -O3 loop.c
/Users/patrick/Desktop/LLVM/cfrontend/ppc/llvm-gcc/bin/gcc -c -o unroll.o -DHOST_WORDS_BIG_ENDIAN -O3 unroll.c
/Users/patrick/Desktop/LLVM/cfrontend/ppc/llvm-gcc/bin/gcc -c -o flow.o -DHOST_WORDS_BIG_ENDIAN -O3 flow.c
/Users/patrick/Desktop/LLVM/cfrontend/ppc/llvm-gcc/bin/gcc -c -o stupid.o -DHOST_WORDS_BIG_ENDIAN -O3 stupid.c
/Users/patrick/Desktop/LLVM/cfrontend/ppc/llvm-gcc/bin/gcc -c -o combine.o -DHOST_WORDS_BIG_ENDIAN -O3 combine.c
/Users/patrick/Desktop/LLVM/cfrontend/ppc/llvm-gcc/bin/gcc -c -o regclass.o -DHOST_WORDS_BIG_ENDIAN -O3 regclass.c
/Users/patrick/Desktop/LLVM/cfrontend/ppc/llvm-gcc/bin/gcc -c -o local-alloc.o -DHOST_WORDS_BIG_ENDIAN -O3 local-alloc.c
/Users/patrick/Desktop/LLVM/cfrontend/ppc/llvm-gcc/bin/gcc -c -o global.o -DHOST_WORDS_BIG_ENDIAN -O3 global.c
/Users/patrick/Desktop/LLVM/cfrontend/ppc/llvm-gcc/bin/gcc -c -o reload.o -DHOST_WORDS_BIG_ENDIAN -O3 reload.c
/Users/patrick/Desktop/LLVM/cfrontend/ppc/llvm-gcc/bin/gcc -c -o reload1.o -DHOST_WORDS_BIG_ENDIAN -O3 reload1.c
/Users/patrick/Desktop/LLVM/cfrontend/ppc/llvm-gcc/bin/gcc -c -o caller-save.o -DHOST_WORDS_BIG_ENDIAN -O3 caller-save.c
/Users/patrick/Desktop/LLVM/cfrontend/ppc/llvm-gcc/bin/gcc -c -o insn-peep.o -DHOST_WORDS_BIG_ENDIAN -O3 insn-peep.c
/Users/patrick/Desktop/LLVM/cfrontend/ppc/llvm-gcc/bin/gcc -c -o reorg.o -DHOST_WORDS_BIG_ENDIAN -O3 reorg.c
/Users/patrick/Desktop/LLVM/cfrontend/ppc/llvm-gcc/bin/gcc -c -o sched.o -DHOST_WORDS_BIG_ENDIAN -O3 sched.c
/Users/patrick/Desktop/LLVM/cfrontend/ppc/llvm-gcc/bin/gcc -c -o final.o -DHOST_WORDS_BIG_ENDIAN -O3 final.c
/Users/patrick/Desktop/LLVM/cfrontend/ppc/llvm-gcc/bin/gcc -c -o recog.o -DHOST_WORDS_BIG_ENDIAN -O3 recog.c
/Users/patrick/Desktop/LLVM/cfrontend/ppc/llvm-gcc/bin/gcc -c -o reg-stack.o -DHOST_WORDS_BIG_ENDIAN -O3 reg-stack.c
/Users/patrick/Desktop/LLVM/cfrontend/ppc/llvm-gcc/bin/gcc -c -o insn-opinit.o -DHOST_WORDS_BIG_ENDIAN -O3 insn-opinit.c
/Users/patrick/Desktop/LLVM/cfrontend/ppc/llvm-gcc/bin/gcc -c -o insn-recog.o -DHOST_WORDS_BIG_ENDIAN -O3 insn-recog.c
/Users/patrick/Desktop/LLVM/cfrontend/ppc/llvm-gcc/bin/gcc -c -o insn-extract.o -DHOST_WORDS_BIG_ENDIAN -O3 insn-extract.c
/Users/patrick/Desktop/LLVM/cfrontend/ppc/llvm-gcc/bin/gcc -c -o insn-output.o -DHOST_WORDS_BIG_ENDIAN -O3 insn-output.c
/Users/patrick/Desktop/LLVM/cfrontend/ppc/llvm-gcc/bin/gcc -c -o insn-emit.o -DHOST_WORDS_BIG_ENDIAN -O3 insn-emit.c
/Users/patrick/Desktop/LLVM/cfrontend/ppc/llvm-gcc/bin/gcc -c -o insn-attrtab.o -DHOST_WORDS_BIG_ENDIAN -O3 insn-attrtab.c
/Users/patrick/Desktop/LLVM/cfrontend/ppc/llvm-gcc/bin/gcc -c -o m88k.o -DHOST_WORDS_BIG_ENDIAN -O3 m88k.c
/Users/patrick/Desktop/LLVM/cfrontend/ppc/llvm-gcc/bin/gcc -c -o getpwd.o -DHOST_WORDS_BIG_ENDIAN -O3 getpwd.c
/Users/patrick/Desktop/LLVM/cfrontend/ppc/llvm-gcc/bin/gcc -c -o convert.o -DHOST_WORDS_BIG_ENDIAN -O3 convert.c
/Users/patrick/Desktop/LLVM/cfrontend/ppc/llvm-gcc/bin/gcc -c -o bc-emit.o -DHOST_WORDS_BIG_ENDIAN -O3 bc-emit.c
/Users/patrick/Desktop/LLVM/cfrontend/ppc/llvm-gcc/bin/gcc -c -o bc-optab.o -DHOST_WORDS_BIG_ENDIAN -O3 bc-optab.c
/Users/patrick/Desktop/LLVM/cfrontend/ppc/llvm-gcc/bin/gcc -c -o obstack.o -DHOST_WORDS_BIG_ENDIAN -O3 obstack.c
/Users/patrick/Desktop/LLVM/cfrontend/ppc/llvm-gcc/bin/gcc -Wl,-native-cbe -O3 c-parse.o c-lang.o c-lex.o c-pragma.o c-decl.o c-typeck.o c-convert.o c-aux-info.o c-common.o c-iterate.o toplev.o version.o tree.o print-tree.o stor-layout.o fold-const.o function.o stmt.o expr.o calls.o expmed.o explow.o optabs.o varasm.o rtl.o print-rtl.o rtlanal.o emit-rtl.o real.o dbxout.o sdbout.o dwarfout.o xcoffout.o integrate.o jump.o cse.o loop.o unroll.o flow.o stupid.o combine.o regclass.o local-alloc.o global.o reload.o reload1.o caller-save.o insn-peep.o reorg.o sched.o final.o recog.o reg-stack.o insn-opinit.o insn-recog.o insn-extract.o insn-output.o insn-emit.o insn-attrtab.o m88k.o getpwd.o convert.o bc-emit.o bc-optab.o obstack.o -lm -o cc1
WARNING: While resolving call to function '.plain_type_6' arguments were dropped!
WARNING: While resolving call to function '.plain_type_6' arguments were dropped!
WARNING: While resolving call to function '.plain_type_6' arguments were dropped!
combine.c: In function `find_split_point':
combine.c:2443: warning: function returns address of local variable
combine.c:2509: warning: function returns address of local variable
combine.c:2683: warning: function returns address of local variable
combine.c:2695: warning: function returns address of local variable
combine.c:2747: warning: function returns address of local variable
WARNING: Type conflict between types named 'struct.var_refs_queue'.
Src=' %struct.var_refs_queue'.
Dest=' %struct.var_refs_queue'
WARNING: Type conflict between types named 'struct.sequence_stack'.
Src=' %struct.sequence_stack'.
Dest=' %struct.sequence_stack'
WARNING: Type conflict between types named 'struct.function'.
Src=' %struct.function'.
Dest=' %struct.function'
WARNING: Type conflict between types named 'struct.var_refs_queue'.
Src=' %struct.var_refs_queue'.
Dest=' %struct.var_refs_queue'
WARNING: Type conflict between types named 'struct.sequence_stack'.
Src=' %struct.sequence_stack'.
Dest=' %struct.sequence_stack'
WARNING: Type conflict between types named 'struct.function'.
Src=' %struct.function'.
Dest=' %struct.function'
WARNING: Type conflict between types named 'struct.var_refs_queue'.
Src=' %struct.var_refs_queue'.
Dest=' %struct.var_refs_queue'
WARNING: Type conflict between types named 'struct.sequence_stack'.
Src=' %struct.sequence_stack'.
Dest=' %struct.sequence_stack'
WARNING: Type conflict between types named 'struct.function'.
Src=' %struct.function'.
Dest=' %struct.function'
WARNING: Type conflict between types named 'struct.var_refs_queue'.
Src=' %struct.var_refs_queue'.
Dest=' %struct.var_refs_queue'
WARNING: Type conflict between types named 'struct.sequence_stack'.
Src=' %struct.sequence_stack'.
Dest=' %struct.sequence_stack'
WARNING: Type conflict between types named 'struct.function'.
Src=' %struct.function'.
Dest=' %struct.function'
WARNING: Type conflict between types named 'struct.var_refs_queue'.
Src=' %struct.var_refs_queue'.
Dest=' %struct.var_refs_queue'
WARNING: Type conflict between types named 'struct.sequence_stack'.
Src=' %struct.sequence_stack'.
Dest=' %struct.sequence_stack'
WARNING: Type conflict between types named 'struct.function'.
Src=' %struct.function'.
Dest=' %struct.function'
WARNING: Found global types that are not compatible:
%struct.rtx_def* (%struct.increment_operator*, %union.tree_node*)* %bc_expand_increment
void (%struct.increment_operator*, %union.tree_node*)* %bc_expand_increment
WARNING: Found global types that are not compatible:
int (...)* %bc_xstrdup
sbyte* (sbyte*)* %bc_xstrdup
WARNING: Found global types that are not compatible:
void (...)* %dump_flow_info
void (%struct.__sFILE*)* %dump_flow_info
int (...)* %dump_flow_info
WARNING: Found global types that are not compatible:
int (...)* %expand_expr
%struct.rtx_def* (...)* %expand_expr
%struct.rtx_def* (%union.tree_node*, %struct.rtx_def*, uint, uint)* %expand_expr
WARNING: Found global types that are not compatible:
%struct.function* (%union.tree_node*)* %find_function_data
{ \2, sbyte*, %union.tree_node*, int, int, int, int, int, int, int, int, int, int, %struct.rtx_def*, %struct.rtx_def*, %union.tree_node*, int, int, %struct.rtx_def*, int, int, int, %struct.rtx_def**, int, %struct.rtx_def*, %struct.rtx_def*, %struct.rtx_def*, %struct.rtx_def*, %struct.rtx_def*, %struct.rtx_def*, int, %struct.rtx_def*, %struct.rtx_def*, %struct.rtx_def*, %struct.rtx_def*, %union.tree_node*, %struct.rtx_def*, %union.tree_node*, %union.tree_node*, int, %struct.temp_slot*, int, { %struct.rtx_def*, uint, int, \2 }*, %struct.nesting*, %struct.nesting*, %struct.nesting*, %struct.nesting*, %struct.nesting*, %struct.nesting*, int, int, %union.tree_node*, %struct.rtx_def*, int, sbyte*, int, %struct.goto_fixup*, int, int, %union.tree_node*, %struct.rtx_def*, %struct.rtx_def*, %struct.rtx_def*, int, int, %struct.rtx_def*, %struct.rtx_def*, %union.tree_node*, { %struct.rtx_def*, %struct.rtx_def*, %union.tree_node*, \2 }*, int, int, sbyte*, sbyte*, int, %struct.rtx_def**, %union.tree_node*, %union.tree_node*, %union.tree_node*, %union.tree_node*, %union.tree_node*, int, int, %struct.momentary_level*, sbyte*, sbyte*, sbyte*, sbyte*, %struct.obstack*, %struct.obstack*, %struct.obstack*, %struct.obstack*, %struct.obstack*, %struct.obstack*, %struct.simple_obstack_stack*, int, int, %struct.machine_function*, %struct.rtx_def*, %struct.constant_descriptor**, %struct.pool_sym**, %struct.pool_constant*, %struct.pool_constant*, int }* (%union.tree_node*)* %find_function_data
WARNING: Found global types that are not compatible:
%struct.function** %outer_function_chain
{ \2, sbyte*, %union.tree_node*, int, int, int, int, int, int, int, int, int, int, %struct.rtx_def*, %struct.rtx_def*, %union.tree_node*, int, int, %struct.rtx_def*, int, int, int, %struct.rtx_def**, int, %struct.rtx_def*, %struct.rtx_def*, %struct.rtx_def*, %struct.rtx_def*, %struct.rtx_def*, %struct.rtx_def*, int, %struct.rtx_def*, %struct.rtx_def*, %struct.rtx_def*, %struct.rtx_def*, %union.tree_node*, %struct.rtx_def*, %union.tree_node*, %union.tree_node*, int, %struct.temp_slot*, int, { %struct.rtx_def*, uint, int, \2 }*, %struct.nesting*, %struct.nesting*, %struct.nesting*, %struct.nesting*, %struct.nesting*, %struct.nesting*, int, int, %union.tree_node*, %struct.rtx_def*, int, sbyte*, int, %struct.goto_fixup*, int, int, %union.tree_node*, %struct.rtx_def*, %struct.rtx_def*, %struct.rtx_def*, int, int, %struct.rtx_def*, %struct.rtx_def*, %union.tree_node*, { %struct.rtx_def*, %struct.rtx_def*, %union.tree_node*, \2 }*, int, int, sbyte*, sbyte*, int, %struct.rtx_def**, %union.tree_node*, %union.tree_node*, %union.tree_node*, %union.tree_node*, %union.tree_node*, int, int, %struct.momentary_level*, sbyte*, sbyte*, sbyte*, sbyte*, %struct.obstack*, %struct.obstack*, %struct.obstack*, %struct.obstack*, %struct.obstack*, %struct.obstack*, %struct.simple_obstack_stack*, int, int, %struct.machine_function*, %struct.rtx_def*, %struct.constant_descriptor**, %struct.pool_sym**, %struct.pool_constant*, %struct.pool_constant*, int }** %outer_function_chain
WARNING: While resolving call to function 'gen_call_value' arguments were dropped!
WARNING: While resolving call to function 'gen_call' arguments were dropped!
WARNING: While resolving call to function 'gen_call_value' arguments were dropped!
cc1.cbe.c:1560: warning: conflicting types for built-in function `fprintf'
cc1.cbe.c:1640: warning: conflicting types for built-in function `sprintf'
cc1.cbe.c:1757: warning: conflicting types for built-in function `strncmp'
cc1.cbe.c:1763: warning: conflicting types for built-in function `strchr'
cc1.cbe.c:1846: warning: conflicting types for built-in function `memcmp'
cc1.cbe.c:2321: warning: conflicting types for built-in function `strrchr'
cc1.cbe.c:3048: warning: conflicting types for built-in function `memcpy'
cc1.cbe.c:3049: warning: conflicting types for built-in function `memset'
cc1.cbe.c: In function `l2493_recog_5':
cc1.cbe.c:607726: internal compiler error: in final_scan_insn, at final.c:2189
Please submit a full bug report,
with preprocessed source if appropriate.
See <URL:http://developer.apple.com/bugreporter> for instructions.
specmake options 2> options.err | tee options.out
COMP: /Users/patrick/Desktop/LLVM/cfrontend/ppc/llvm-gcc/bin/gcc -c -o options.o -DHOST_WORDS_BIG_ENDIAN -O3
LINK: /Users/patrick/Desktop/LLVM/cfrontend/ppc/llvm-gcc/bin/gcc -Wl,-native-cbe -O3 -lm -o options
Some files did not appear to be built: cc1
*** Error building 176.gcc