This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: RFA: Change D30V port to use init/mark/free machine_status
- To: Nick Clifton <nickc at redhat dot com>
- Subject: Re: RFA: Change D30V port to use init/mark/free machine_status
- From: Michael Meissner <meissner at cygnus dot com>
- Date: Wed, 10 Jan 2001 20:45:45 -0500
- Cc: meissner at cygnus dot com, gcc-patches at gcc dot gnu dot org
- References: <200101110012.QAA19959@elmo.cygnus.com>
On Wed, Jan 10, 2001 at 04:12:55PM -0800, Nick Clifton wrote:
> Hi Mike,
>
> : No, it causes a segfault in building _muldi:
>
> Darn - I made missed the fact that the code silently relies upon
> eh_epilogue_sp_ofs being initialised to NULL_RTX. The patch below
> fixes this by changing the call to xmalloc into a call to xcalloc.
>
> With this patch applied _muldi builds but the build of libgcc2.a still
> fails, this time in dp-bit.c. This is due to another of those
> problems with verify_local_live_at_start (). Is this a known problem
> with the current d30v sources or something that my patch could have
> caused ?
>
> dp-bit.c: In function `__unpack_d':
> dp-bit.c:393: Internal compiler error in print_rtl_and_abort, at flow.c:6514
>
This is a known problem (at least on the d30v with conditional execution). The
problem is if you have:
if (cond) {
tmp = ...;
....
}
where tmp is a register that is not live, flow wants tmp to be live when the
THEN block is converted to COND_EXEC format, and complains. I would say, check
in the patch.....
--
Michael Meissner, Red Hat, Inc. (GCC group)
PMB 198, 174 Littleton Road #3, Westford, Massachusetts 01886, USA
Work: meissner@redhat.com phone: +1 978-486-9304
Non-work: meissner@spectacle-pond.org fax: +1 978-692-4482