> 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  <[EMAIL PROTECTED]>

        * 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

Reply via email to