Jan Hubicka <hubi...@ucw.cz> writes:

>> Hi,
>> 
>> I have already proposed this patch many months ago but it got
>> forgotten, for a number of reasons.  It does not change functionality,
>> it only cleans up the alignment lattices, which are currently a bit
>> clumsy.
>> 
>> I have refreshed the patch and made sure it still bootstraps and tests
>> fine on an x86_64-linux.  OK for trunk?
>> 
>> Thanks,
>> 
>> Martin
>> 
>> 
>> 2015-02-25  Martin Jambor  <mjam...@suse.cz>
>>          Jan Hubicka  <hubi...@ucw.cz>
>> 
>>      * ipa-cp.c (ipcp_alignment_lattice): New type.
>>      (ipcp_param_lattices): Use the above to represent alignment.
>>      (ipcp_alignment_lattice::print): New function.
>>      (print_all_lattices): Use it to print alignment information.
>>      (ipcp_alignment_lattice::top_p): New function.
>>      (ipcp_alignment_lattice::bottom_p): Likewise.
>>      (ipcp_alignment_lattice::set_to_bottom): Likewise.
>>      (ipcp_alignment_lattice::meet_with_1): Likewise.
>>      (ipcp_alignment_lattice::meet_with): Two new overloaded functions.
>>      (set_all_contains_variable): Use set_to_bottom of alignment lattice.
>>      (initialize_node_lattices): Likewise.
>>      (propagate_alignment_accross_jump_function): Work with the new class
>>      for alignment lattices.
>>      (propagate_constants_accross_call): Pass only the alignment lattice to
>>      propagate_alignment_accross_jump_function.
>>      (ipcp_store_alignment_results): Work with the new class for alignment
>>      lattices.
>> 
>> testsuite/
>>      * gcc.dg/ipa/propalign-4.c: New test.
>>      * gcc.dg/ipa/propalign-5.c: Likewise.
>
> OK,
> Honza

This patch broke Solaris bootstrap in stage 1 with g++ 4.9:

/vol/gcc/src/hg/trunk/solaris/gcc/ipa-cp.c: In member function 'bool 
ipcp_alignment_lattice::meet_with_1(unsigned int, unsigned int)':
/vol/gcc/src/hg/trunk/solaris/gcc/ipa-cp.c:855:56: error: call of overloaded 
'abs(unsigned int)' is ambiguous
       int diff = abs (misalign - (new_misalign % align));
                                                        ^
/vol/gcc/src/hg/trunk/solaris/gcc/ipa-cp.c:855:56: note: candidates are:
In file included from /usr/include/stdlib.h:12:0,
                 from /vol/gcc-4.9/include/c++/4.9.0/cstdlib:72,
                 from /vol/gcc-4.9/include/c++/4.9.0/bits/stl_algo.h:59,
                 from /vol/gcc-4.9/include/c++/4.9.0/algorithm:62,
                 from /vol/gcc/src/hg/trunk/solaris/gcc/system.h:218,
                 from /vol/gcc/src/hg/trunk/solaris/gcc/ipa-cp.c:104:
/usr/include/iso/stdlib_iso.h:225:16: note: long int std::abs(long int)
  inline long   abs(long _l) { return labs(_l); }
                ^
/usr/include/iso/stdlib_iso.h:180:12: note: int std::abs(int)
 extern int abs(int);
            ^

        Rainer

-- 
-----------------------------------------------------------------------------
Rainer Orth, Center for Biotechnology, Bielefeld University

Reply via email to