Hi Jan, hi Kito, Palmer and Andrew! On Thu, 2017-06-29 14:27:41 +0200, Jan Hubicka wrote: > this is second step of the profile maintenance revamp. It implements > profile_probability type which is pretty much symmetric to profile_count > except that it implements fixed point arithmetics for values 0...1. > It is used to maintain probabilities of edges out of basic blocks. > In addition it tracks information about quality of the estimate which can > later be used for optimization. RISC-V (--enable-languages=c,c++ --target=riscv32-unknown-linux-gnu --without-headers --disable-threads) fails to build right now, probably only missing header or header order: [...] g++ -fno-PIE -c -g -O2 -DIN_GCC -DCROSS_DIRECTORY_STRUCTURE -fno-exceptions -fno-rtti -fasynchronous-unwind-tables -W -Wall -Wno-narrowing -Wwrite-strings -Wcast-qual -Wmissing-format-attribute -Woverloaded-virtual -pedantic -Wno-long-long -Wno-variadic-macros -Wno-overlength-strings -fno-common -DHAVE_CONFIG_H -I. -I. -I/home/jbglaw/repos/gcc/gcc -I/home/jbglaw/repos/gcc/gcc/. -I/home/jbglaw/repos/gcc/gcc/../include -I/home/jbglaw/repos/gcc/gcc/../libcpp/include -I/home/jbglaw/repos/gcc/gcc/../libdecnumber -I/home/jbglaw/repos/gcc/gcc/../libdecnumber/dpd -I../libdecnumber -I/home/jbglaw/repos/gcc/gcc/../libbacktrace -o riscv.o -MT riscv.o -MMD -MP -MF ./.deps/riscv.TPo /home/jbglaw/repos/gcc/gcc/config/riscv/riscv.c In file included from /home/jbglaw/repos/gcc/gcc/config/riscv/riscv.c:56:0: /home/jbglaw/repos/gcc/gcc/dojump.h:61:10: error: ‘profile_probability’ has not been declared profile_probability prob); ^ /home/jbglaw/repos/gcc/gcc/dojump.h:63:5: error: ‘profile_probability’ has not been declared profile_probability); ^ /home/jbglaw/repos/gcc/gcc/dojump.h:66:54: error: ‘profile_probability’ has not been declared extern void jumpif (tree exp, rtx_code_label *label, profile_probability prob); ^ /home/jbglaw/repos/gcc/gcc/dojump.h:68:9: error: ‘profile_probability’ has not been declared profile_probability); ^ /home/jbglaw/repos/gcc/gcc/dojump.h:73:39: error: ‘profile_probability’ has not been declared rtx_code_label *if_true_label, profile_probability prob); ^ /home/jbglaw/repos/gcc/gcc/dojump.h:75:28: error: ‘profile_probability’ has not been declared rtx_code_label *, profile_probability); ^ /home/jbglaw/repos/gcc/gcc/dojump.h:79:28: error: ‘profile_probability’ has not been declared rtx_code_label *, profile_probability); ^ In file included from /home/jbglaw/repos/gcc/gcc/config/riscv/riscv.c:61:0: /home/jbglaw/repos/gcc/gcc/expr.h:291:63: error: ‘profile_probability’ has not been declared extern int try_casesi (tree, tree, tree, tree, rtx, rtx, rtx, profile_probability); ^ /home/jbglaw/repos/gcc/gcc/expr.h:292:61: error: ‘profile_probability’ has not been declared extern int try_tablejump (tree, tree, tree, tree, rtx, rtx, profile_probability); ^ In file included from /home/jbglaw/repos/gcc/gcc/config/riscv/riscv.c:63:0: /home/jbglaw/repos/gcc/gcc/optabs.h:251:10: error: ‘profile_probability’ has not been declared profile_probability prob ^ /home/jbglaw/repos/gcc/gcc/optabs.h:252:8: error: ‘profile_probability’ has not been declared = profile_probability::uninitialized ()); ^ Makefile:2259: recipe for target 'riscv.o' failed make[1]: *** [riscv.o] Error 1 make[1]: Leaving directory '/home/jbglaw/build/riscv32-unknown-linux-gnu/build-gcc/gcc' Makefile:4286: recipe for target 'all-gcc' failed make: *** [all-gcc] Error 2 -- Jan-Benedict Glaw jbglaw@lug-owl.de +49-172-7608481 Signature of: They that give up essential liberty to obtain temporary safety, the second : deserve neither liberty nor safety. (Ben Franklin)