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: [RFA] Fix Ada bootstrap (was: 16: EH redirection)


On Thu, Apr 30, 2009 at 1:21 PM, Eric Botcazou <ebotcazou@adacore.com> wrote:
>> I do not know how to fix this properly. ?I can either make DCE to not
>> remove unreachable blocks and remove them somewhere later, or simply
>> drop DCE flag on DSE df_analyze or declare that it is up to caller to
>> cleanup CFG after calling df_analyze with DCE flag when df_analyze
>> somehow signalizes that it removed some throwing instructions or make
>> DCE to update the bitmap?
>
> Why not simply punt? ?The same problem happens within CSE for c41401a.adb:

Indeed.  This patch is ok if it passes a bootstrap & regtest cycle.

Thanks,
Richard.

> Index: dce.c
> ===================================================================
> --- dce.c ? ? ? (revision 146985)
> +++ dce.c ? ? ? (working copy)
> @@ -27,6 +27,7 @@ along with GCC; see the file COPYING3.
> ?#include "regs.h"
> ?#include "hard-reg-set.h"
> ?#include "flags.h"
> +#include "except.h"
> ?#include "df.h"
> ?#include "cselib.h"
> ?#include "dce.h"
> @@ -35,9 +36,6 @@ along with GCC; see the file COPYING3.
> ?#include "dbgcnt.h"
> ?#include "tm_p.h"
>
> -DEF_VEC_I(int);
> -DEF_VEC_ALLOC_I(int,heap);
> -
>
> ?/* -------------------------------------------------------------------------
> ? ?Core mark/delete routines
> @@ -118,6 +116,13 @@ deletable_insn_p (rtx insn, bool fast, b
> ? if (!NONJUMP_INSN_P (insn))
> ? ? return false;
>
> + ?/* Similarly, we cannot delete other insns that can throw inside of
> + ? ? the recursive dce. ?*/
> + ?if (flag_non_call_exceptions
> + ? ? ?&& df_in_progress
> + ? ? ?&& can_throw_internal (insn))
> + ? ?return false;
> +
> ? body = PATTERN (insn);
> ? switch (GET_CODE (body))
> ? ? {
>
>
>
> --
> Eric Botcazou
>


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