> On 08/13/14 16:10, DJ Delorie wrote:
> > The purpose of this set of changes is to remove assumptions in GCC
> > about type sizes.  Previous to this patch, GCC assumed that all types
> > were powers-of-two in size, and used naive math accordingly.
> >
> > Old:
> >     POINTER_SIZE / BITS_PER_UNIT
> >     TYPE_SIZE
> >     GET_MODE_BITSIZE
> >
> > New:
> >     POINTER_SIZE_UNITS  (ceil, not floor)
> >     TYPE_PRECISION
> >     GET_MODE_PRECISION
> >
> > gcc/
> >     * cppbuiltin.c (define_builtin_macros_for_type_sizes): Round
> >     pointer size up to a power of two.
> >     * defaults.h (DWARF2_ADDR_SIZE): Round up.
> >     (POINTER_SIZE_UNITS): New, rounded up value.
> >     * dwarf2asm.c (size_of_encoded_value): Use it.
> >     (dw2_output_indirect_constant_1): Likewise.
> >     * expmed.c (init_expmed_one_conv): We now know the sizes of
> >     partial int modes.
> >     * loop-iv.c (iv_number_of_iterations): Use precision, not size.
> >     * optabs.c (expand_float): Use precision, not size.
> >     (expand_fix): Likewise.
> >     * simplify-rtx (simplify_unary_operation_1): Likewise.
> >     * tree-dfa.c (get_ref_base_and_extent): Likewise.
> >     * varasm.c (assemble_addr_to_section): Round up pointer sizes.
> >     (default_assemble_integer) Likewise.
> >     (dump_tm_clone_pairs): Likewise.
> >     * dwarf2out.c (mem_loc_descriptor): Allow partial-int modes also.
> >     * var-tracking.c (adjust_mems): Allow partial-int modes also.
> >     (prepare_call_arguments): Likewise.
> >     * stor-layout.c (finalize_type_size): Preserve precision.
> >     (layout_type): Use precision, not size.

> Didn't see a note if this had been boostrapped/regression tested 
> independently or not, but it's still good to go in my mind.

I didn't test this one independently because it doesn't really *do*
anything if you don't have a non-power-of-two type.  I did test the
whole set of patches with full bootstrap-regression though, both on
x86_64 and msp430.

> I strongly suspect we'll find other places which need conversion
> and we can fault in those fixes if/when we find them.

I suspect that also, despite grepping and reviewing the whole source
tree.

> I wonder if this will fix a long standing h8 dwarf2out bug...  I guess 
> I'll have the chance to check relatively soon.

:-)

Reply via email to