https://bugs.kde.org/show_bug.cgi?id=387766
Bug ID: 387766
Summary: asm shifts cause false positive "Conditional jump or
move depends on uninitialised value"
Product: valgrind
Version: 3.14 SVN
Platform: Other
OS: Linux
Status: UNCONFIRMED
Severity: normal
Priority: NOR
Component: memcheck
Assignee: [email protected]
Reporter: [email protected]
Target Milestone: ---
Running gcc trunk under valgrind produces many false positives, e.g.:
==20511== Conditional jump or move depends on uninitialised value(s)
==20511== at 0xBBA16D: update_costs_from_copies(ira_allocno*, bool, bool)
(in /home/trippels/gcc_build_dir_/gcc/cc1)
==20511== by 0xBBB0ED: assign_hard_reg(ira_allocno*, bool) (in
/home/trippels/gcc_build_dir_/gcc/cc1)
==20511== by 0xBBF527: color_allocnos() (in
/home/trippels/gcc_build_dir_/gcc/cc1)
==20511== by 0xBC011B: color_pass(ira_loop_tree_node*) (in
/home/trippels/gcc_build_dir_/gcc/cc1)
==20511== by 0xBA7EAE: ira_traverse_loop_tree(bool, ira_loop_tree_node*,
void (*)(ira_loop_tree_node*), void (*)(ira_loop_tree_node*))
(ira-build.c:1781)
==20511== by 0xBB91C2: ira_color() (in
/home/trippels/gcc_build_dir_/gcc/cc1)
==20511== by 0xBA33B4: ira (ira.c:5286)
==20511== by 0xBA33B4: (anonymous namespace)::pass_ira::execute(function*)
(ira.c:5584)
==20511== by 0xC5FD98: execute_one_pass(opt_pass*) (passes.c:2497)
==20511== by 0xC60574: execute_pass_list_1(opt_pass*) (passes.c:2586)
==20511== by 0xC60586: execute_pass_list_1(opt_pass*) (passes.c:2587)
==20511== by 0xC605B8: execute_pass_list(function*, opt_pass*)
(passes.c:2597)
==20511== by 0x9A2DC2: cgraph_node::expand() (cgraphunit.c:2139)
==20511== Uninitialised value was created by a client request
==20511== at 0x8F411D: base_pool_allocator<memory_block_pool>::allocate()
(alloc-pool.h:419)
==20511== by 0xBAA640: allocate (alloc-pool.h:502)
==20511== by 0xBAA640: ira_create_allocno(int, bool, ira_loop_tree_node*)
(ira-build.c:486)
==20511== by 0xBAAB33: create_insn_allocnos(rtx_def*, rtx_def*, bool)
(ira-build.c:1852)
==20511== by 0xBAAF74: create_bb_allocnos (ira-build.c:1918)
==20511== by 0xBAAF74: create_loop_tree_node_allocnos(ira_loop_tree_node*)
(ira-build.c:1964)
==20511== by 0xBA81AB: ira_traverse_loop_tree(bool, ira_loop_tree_node*,
void (*)(ira_loop_tree_node*), void (*)(ira_loop_tree_node*))
(ira-build.c:1799)
==20511== by 0xBACD38: create_allocnos (ira-build.c:2060)
==20511== by 0xBACD38: ira_build() (ira-build.c:3420)
==20511== by 0xBA331F: ira (ira.c:5273)
==20511== by 0xBA331F: (anonymous namespace)::pass_ira::execute(function*)
(ira.c:5584)
==20511== by 0xC5FD98: execute_one_pass(opt_pass*) (passes.c:2497)
==20511== by 0xC60574: execute_pass_list_1(opt_pass*) (passes.c:2586)
==20511== by 0xC60586: execute_pass_list_1(opt_pass*) (passes.c:2587)
==20511== by 0xC605B8: execute_pass_list(function*, opt_pass*)
(passes.c:2597)
==20511== by 0x9A2DC2: cgraph_node::expand() (cgraphunit.c:2139)
(gcc was configured with --enable-valgrind-annotations)
alloc-pool.h:419 reads:
419 VALGRIND_DISCARD (VALGRIND_MAKE_MEM_UNDEFINED (header, size));
On x86 gcc trunk doesn't tune for partial_flag_reg_stall anymore.
This causes redundant test instructions after shifts to be removed.
Asm diff of update_costs_from_copies():
@@ -7464,7 +7461,6 @@
movl 12(%rbp), %edx
sall $10, %edx
sarl $16, %edx
- testl %edx, %edx
js .L1438
movq 40(%rsp), %r9
movq 72(%rsp), %r11
--
You are receiving this mail because:
You are watching all bug changes.