http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56461
--- Comment #8 from Jakub Jelinek <jakub at gcc dot gnu.org> 2013-02-27 17:25:10 UTC --- Some more patches have been posted to gcc-patches and I'm going to post even more. There are two issues I don't have a solution for if anybody is interested. Testcase: cd gcc/testsuite/gcc.dg/vect valgrind --leak-check=full /usr/src/gcc/obj/gcc/cc1 -O3 -mavx -ftree-vectorize \ -isystem /usr/src/gcc/obj/gcc/include/ -quiet -o slp-reduc-6.c ==4841== 368 bytes in 2 blocks are definitely lost in loss record 533 of 626 ==4841== at 0x4A06B0F: calloc (vg_replace_malloc.c:593) ==4841== by 0x111D788: xcalloc (xmalloc.c:162) ==4841== by 0xC4742D: new_stmt_vec_info(gimple_statement_d*, _loop_vec_info*, _bb_vec_info*) (tree-vect-stmts.c:5930) ==4841== by 0xC5452B: vect_create_epilog_for_reduction(vec<tree_node*, va_heap, vl_ptr>, gimple_statement_d*, int, tree_code, vec<gimple_statement_d*, va_heap, vl_ptr>, int, bool, _slp_tree*) (tree-vect-loop.c:3867) ==4841== by 0xC57FDB: vectorizable_reduction(gimple_statement_d*, gimple_stmt_iterator*, gimple_statement_d**, _slp_tree*) (tree-vect-loop.c:5209) ==4841== by 0xC470D1: vect_transform_stmt(gimple_statement_d*, gimple_stmt_iterator*, bool*, _slp_tree*, _slp_instance*) (tree-vect-stmts.c:5823) ==4841== by 0xC594F1: vect_transform_loop(_loop_vec_info*) (tree-vect-loop.c:5736) ==4841== by 0xC6B249: vectorize_loops() (tree-vectorizer.c:123) ==4841== by 0xB91101: tree_vectorize() (tree-ssa-loop.c:222) ==4841== by 0x963835: execute_one_pass(opt_pass*) (passes.c:2330) ==4841== by 0x963A29: execute_pass_list(opt_pass*) (passes.c:2378) ==4841== by 0x963A5A: execute_pass_list(opt_pass*) (passes.c:2379) ==4841== ==4841== 13,678 bytes in 1 blocks are definitely lost in loss record 619 of 626 ==4841== at 0x4A0881C: malloc (vg_replace_malloc.c:270) ==4841== by 0x111D747: xmalloc (xmalloc.c:147) ==4841== by 0x10E6CD4: read_file(cpp_reader*, _cpp_file*) (files.c:693) ==4841== by 0x10E787A: _cpp_stack_file (files.c:794) ==4841== by 0x10DF510: do_include_common(cpp_reader*, include_type) (directives.c:793) ==4841== by 0x10E0320: _cpp_handle_directive (directives.c:492) ==4841== by 0x10ECC6C: _cpp_lex_token (lex.c:1990) ==4841== by 0x10F1967: cpp_get_token_1(cpp_reader*, unsigned int*) (macro.c:2355) ==4841== by 0x5CE3AA: c_lex_with_flags(tree_node**, unsigned int*, unsigned char*, int) (c-lex.c:300) ==4841== by 0x568908: c_lex_one_token(c_parser*, c_token*) (c-parser.c:218) ==4841== by 0x568D07: c_parser_peek_token(c_parser*) (c-parser.c:398) ==4841== by 0x568D32: c_parser_next_token_is(c_parser*, cpp_ttype) (c-parser.c:410)