compile with -O3