compile with -o3 option