This is the mail archive of the gcc@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]

Problem with reg_equiv_alt_mem


In a private port I had the problem that reg_equiv_alt_mem_list did
contain the
same RTL as reg_equiv_memory_loc. This caused an assert in
delete_output_reload,
where these are compared with equal_rtx_p.
The list is build with push_reg_equiv_alt_mem, but only when "tem !=
orig". The
value tem is build with find_reloads_address. Within that function we
have some
code which simply unshares the RTL. The return value will be the new
RTL, even
in some cases where the RTL did not change.

I think the test in front of push_reg_equiv_alt_mem should be done via
rtx_equal_p. This would match the assert in delete_output_reload.

My private port is based on GCC 4.1.0, but the code looks the same in
4.3.

I do not have papers on file so someone else should prepare a patch.

	Erwin



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