This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [wide-int] int_traits <tree>


Kenneth Zadeck <zadeck@naturalbridge.com> writes:
>> it avoids a 2nd copy though, which shows nicely what was rummaging in
>> my head for the last two days - that the int_trais <> abstraction
>> was somehow at the wrong level - it should have been traits that
>> are specific to the storage model?  or the above should use
>> int_traits<>::decompose manually with it always doing the
>> copy (that would also optimize away one copy and eventually
>> would make the extra zeros not necessary).
> this came in with richard's storage manager patch.    In my older code, 
> we tried and succeeded many times to just borrow the underlying rep.    
> I think that richard needs to work this out.

Hmm, you mean the patch to introduce all the wi:: stuff?  Which cases
do you mean?

That patch didn't change the HWI representation (and therefore when a
copy was needed by the to_shwi*/decompose routines).  And it got rid of
quite a few *_wide_int constructions, things like:

-                 wide_int wi = (max_wide_int (prev_value)
-                                .add (1, sgn, &overflowed));
+                 wide_int wi = wi::add (prev_value, 1, sgn, &overflowed);

Thanks,
Richard


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]