[Bug rtl-optimization/83321] Conditional jump or move depends on uninitialised value in ira.c/ira-color.c
trippels at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Fri Dec 8 15:32:00 GMT 2017
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83321
--- Comment #3 from Markus Trippelsdorf <trippels at gcc dot gnu.org> ---
It makes no sense:
==23914== Conditional jump or move depends on uninitialised value(s)
==23914== at 0x10C8165: improve_allocation() (ira-color.c:2820)
==23914== by 0x10C12B8: UnknownInlinedFun (ira-color.c:3150)
==23914== by 0x10C12B8: color_pass(ira_loop_tree_node*) [clone
.lto_priv.9395] (ira-color.c:3259)
==23914== by 0xF51C1E: ira_traverse_loop_tree(bool, ira_loop_tree_node*,
void (*)(ira_loop_tree_node*), void (*)(ira_loop_tree_node*))
(ira-build.c:1781)
==23914== by 0xF83AEE: UnknownInlinedFun (ira-color.c:3410)
==23914== by 0xF83AEE: UnknownInlinedFun (ira-color.c:4784)
==23914== by 0xF83AEE: ira_color() (ira-color.c:4899)
==23914== by 0xF0D4C5: UnknownInlinedFun (ira.c:5286)
==23914== by 0xF0D4C5: (anonymous namespace)::pass_ira::execute(function*)
[clone .lto_priv.2822] (ira.c:5584)
==23914== by 0x5DB61E: execute_one_pass(opt_pass*) [clone .cold.509]
(passes.c:2497)
==23914== by 0xC85404: UnknownInlinedFun (passes.c:2586)
==23914== by 0xC85404: UnknownInlinedFun (passes.c:2587)
==23914== by 0xC85404: execute_pass_list(function*, opt_pass*)
(passes.c:2597)
==23914== by 0xDF4B53: cgraph_node::expand() (cgraphunit.c:2139)
==23914== by 0xC1941B: UnknownInlinedFun (cgraphunit.c:2275)
==23914== by 0xC1941B: symbol_table::compile() (cgraphunit.c:2623)
==23914== by 0xC14E7C: symbol_table::finalize_compilation_unit()
(cgraphunit.c:2716)
==23914== by 0xC07EAA: compile_file() [clone .lto_priv.3055] (toplev.c:480)
==23914== by 0xB6E217: UnknownInlinedFun (toplev.c:2059)
==23914== by 0xB6E217: toplev::main(int, char**) (toplev.c:2194)
==23914== Uninitialised value was created by a client request
==23914== at 0xD02289: base_pool_allocator<memory_block_pool>::allocate()
(alloc-pool.h:419)
==23914== by 0xF544EB: UnknownInlinedFun (alloc-pool.h:502)
==23914== by 0xF544EB: ira_create_allocno(int, bool, ira_loop_tree_node*)
(ira-build.c:486)
==23914== by 0xF54123: create_insn_allocnos(rtx_def*, rtx_def*, bool)
(ira-build.c:1852)
==23914== by 0xF52DE5: UnknownInlinedFun (ira-build.c:1888)
==23914== by 0xF52DE5: UnknownInlinedFun (ira-build.c:1896)
==23914== by 0xF52DE5: UnknownInlinedFun (ira-build.c:1918)
==23914== by 0xF52DE5: create_loop_tree_node_allocnos(ira_loop_tree_node*)
(ira-build.c:1964)
==23914== by 0xF51CB8: ira_traverse_loop_tree(bool, ira_loop_tree_node*,
void (*)(ira_loop_tree_node*), void (*)(ira_loop_tree_node*))
(ira-build.c:1799)
==23914== by 0xF47DF7: UnknownInlinedFun (ira-build.c:2060)
==23914== by 0xF47DF7: ira_build() (ira-build.c:3420)
==23914== by 0xF0D074: UnknownInlinedFun (ira.c:5273)
==23914== by 0xF0D074: (anonymous namespace)::pass_ira::execute(function*)
[clone .lto_priv.2822] (ira.c:5584)
==23914== by 0x5DB61E: execute_one_pass(opt_pass*) [clone .cold.509]
(passes.c:2497)
==23914== by 0xC85404: UnknownInlinedFun (passes.c:2586)
==23914== by 0xC85404: UnknownInlinedFun (passes.c:2587)
==23914== by 0xC85404: execute_pass_list(function*, opt_pass*)
(passes.c:2597)
==23914== by 0xDF4B53: cgraph_node::expand() (cgraphunit.c:2139)
==23914== by 0xC1941B: UnknownInlinedFun (cgraphunit.c:2275)
==23914== by 0xC1941B: symbol_table::compile() (cgraphunit.c:2623)
==23914== by 0xC14E7C: symbol_table::finalize_compilation_unit()
(cgraphunit.c:2716)
and alloc-pool.h:419 reads:
419 VALGRIND_DISCARD (VALGRIND_MAKE_MEM_UNDEFINED (header, size));
So somehow VALGRIND_DISCARD gets ignored with -O3.
Looks more like a valgrind bug.
More information about the Gcc-bugs
mailing list