This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: Bootstrap comparison failures on i586
- From: Eric Botcazou <ebotcazou at adacore dot com>
- To: Paolo Bonzini <bonzini at gnu dot org>
- Cc: gcc at gcc dot gnu dot org, Jan Hubicka <jh at suse dot cz>
- Date: Fri, 4 Apr 2008 22:54:07 +0200
- Subject: Re: Bootstrap comparison failures on i586
- References: <200804031515.42076.ebotcazou@adacore.com> <47F4E538.8080600@gnu.org>
> Have you tried running valgrind?
Thanks for the tip. Indeed something shows up:
Compiler executable checksum: 87aef5f5c9fba1ed8f2a556528fc3927
==3282== Conditional jump or move depends on uninitialised value(s)
==3282== at 0x904EFA6: aligned_operand_1 (predicates.md:820)
==3282== by 0x904F040: aligned_operand (predicates.md:837)
==3282== by 0x8F08ABF: insn_default_latency (i386.md:260)
==3282== by 0x94C9340: insn_cost (haifa-sched.c:623)
==3282==
==3282== Conditional jump or move depends on uninitialised value(s)
==3282== at 0x904EFA6: aligned_operand_1 (predicates.md:820)
==3282== by 0x904F040: aligned_operand (predicates.md:837)
==3282== by 0x8F5D18D: get_attr_imm_disp (i386.md:1147)
==3282== by 0x8F64880: get_attr_pent_pair (sse.md:1777)
==3282==
==3282== Conditional jump or move depends on uninitialised value(s)
==3282== at 0x904EFA6: aligned_operand_1 (predicates.md:820)
==3282== by 0x904F040: aligned_operand (predicates.md:837)
==3282== by 0x8F648AD: get_attr_pent_pair (i386.md:1781)
==3282== by 0x8F08B63: insn_default_latency (i386.md:1744)
[...]
if (parts.base)
{
if (REGNO_POINTER_ALIGN (REGNO (parts.base)) < 32) <-- 820
return 0;
}
I think parts.base is OK so it's probably REGNO_POINTER_ALIGN
function.h:#define REGNO_POINTER_ALIGN(REGNO)
(rtl.emit.regno_pointer_align[REGNO])
which makes some sense since it was touched very recently:
2008-03-31 Jan Hubicka <jh@suse.cz>
* builtins.c (expand_builtin_setjmp_receiver): Update call of
get_arg_pointer_save_area.
* expr.c (init_expr): Just clear out rtl.expr.
* function.c (free_after_compilation): Clear out whole RTL structure.
(get_func_frame_size): Merge into ...
(get_frame_size): ... this one.
(assign_stack_local_1): Merge into ...
(assign_stack_local): ... this one.
(expand_function_end): Update call of get_arg_pointer_save_area.
(get_art_pointer_save_area): Remove cfun argument.
* function.h (emit_status): regno_pointer_align does not need length
attribute. Move x_regno_reg_rtx to ...
(regno_reg_rtx): ... new global array.
(reg_rtx_no, seq_stack, REGNO_POINTER_ALIGN): Update accestors.
[...]
Jan, any idea as to what could be going on here?
--
Eric Botcazou