breakage with "[PATCH 1/6] Add FOR_EACH_INSN{_INFO}_{DEFS,USES,EQ_USES}"
Andreas Schwab
schwab@suse.de
Mon Jun 16 08:04:00 GMT 2014
Hans-Peter Nilsson <hp@bitrange.com> writes:
> On Sun, 15 Jun 2014, Hans-Peter Nilsson wrote:
>
>> On Sun, 15 Jun 2014, Hans-Peter Nilsson wrote:
>> > On Sun, 15 Jun 2014, Steven Bosscher wrote:
>> > > Can you please try:
>> > >
>> > > [...]
>> >
>> > Thanks. Looks pretty obvious. I was heading for the door with
>> > just enough time to report the issue, so I didn't actually look
>> > at the code before. I'll commit this on your behalf once build
>> > has passed the point of failure.
>>
>> ...which includes not just compiling auto-inc-dec.c but also
>> compiling e.g. libgcc with the compiled compiler. No such luck,
>> segv in that function (must be from Richard's code, not from the
>> patch as no dumps are output at that time). Bah.
>
> Ok, I'm out; I don't know why the insn_info is invalid here.
> Hopefully obvious to you or Richard. PR61516 for this.
Please try this:
diff --git a/gcc/auto-inc-dec.c b/gcc/auto-inc-dec.c
index 64a3706..d84e097 100644
--- a/gcc/auto-inc-dec.c
+++ b/gcc/auto-inc-dec.c
@@ -1341,6 +1341,7 @@ merge_in_block (int max_reg, basic_block bb)
FOR_BB_INSNS_REVERSE_SAFE (bb, insn, curr)
{
+ unsigned int uid = INSN_UID (insn);
df_insn_info *insn_info = DF_INSN_INFO_GET (insn);
bool insn_is_add_or_inc = true;
@@ -1417,7 +1418,7 @@ merge_in_block (int max_reg, basic_block bb)
/* If the inc insn was merged with a mem, the inc insn is gone
and there is noting to update. */
- if (insn_info)
+ if (DF_INSN_UID_GET (uid))
{
df_ref def, use;
Andreas.
--
Andreas Schwab, SUSE Labs, schwab@suse.de
GPG Key fingerprint = 0196 BAD8 1CE9 1970 F4BE 1748 E4D4 88E3 0EEA B9D7
"And now for something completely different."
More information about the Gcc-patches
mailing list