diff mbox series

[PR,target/85401] initialize the move cost table before using it (in another place, too)

Message ID 20191004132321.GA20030@SDF.ORG
State New
Headers show
Series [PR,target/85401] initialize the move cost table before using it (in another place, too) | expand

Commit Message

Maya Rashish Oct. 4, 2019, 1:23 p.m. UTC
On Tue, Oct 01, 2019 at 01:26:16PM -0600, Jeff Law wrote:
> On 9/30/19 2:45 PM, coypu@sdf.org wrote:
> > On Mon, Sep 30, 2019 at 11:46:24AM -0400, Vladimir Makarov wrote:
> >> Yes, the patch is mostly ok.  You can commit it into the trunk after
> >> applying changes mentioned below. If you do not have a write access, let me
> >> know I'll commit the patch by myself.
> > 
> > I don't have commit access. It would be nice if you committed it :)
> I took care of the nits and committed the patch.
> 
> 
> > 
> >> It would be nice to add a small test too.  But it is not obligatory for this
> >> case as the patch is obvious and it might be hard to create a small test to
> >> reproduce the bug.
> > 
> > I have the C code that produces this failure. I can creduce it, but I'm
> > not sure there's a relationship between it and the bug.
> > Doing unrelated changes (adding instruction scheduling) to vax also hid it.
> > 
> > Is this kind of test still valuable?
> Often they are.
> 
> jeff

So it was. Here's another missed initialization, that running creduce
accidentally reached.



The mode might have changed, let's make sure the new mode is initialized
too.

2019-10-04	Maya Rashish <coypu@sdf.org>
	* ira-color.c (update_costs_from_allocno): Call
	ira_init_register_move_cost_if_necessary.

Comments

Jeff Law Oct. 4, 2019, 3:47 p.m. UTC | #1
On 10/4/19 7:23 AM, coypu@sdf.org wrote:
> On Tue, Oct 01, 2019 at 01:26:16PM -0600, Jeff Law wrote:
>> On 9/30/19 2:45 PM, coypu@sdf.org wrote:
>>> On Mon, Sep 30, 2019 at 11:46:24AM -0400, Vladimir Makarov wrote:
>>>> Yes, the patch is mostly ok.  You can commit it into the trunk after
>>>> applying changes mentioned below. If you do not have a write access, let me
>>>> know I'll commit the patch by myself.
>>> I don't have commit access. It would be nice if you committed it :)
>> I took care of the nits and committed the patch.
>>
>>
>>>> It would be nice to add a small test too.  But it is not obligatory for this
>>>> case as the patch is obvious and it might be hard to create a small test to
>>>> reproduce the bug.
>>> I have the C code that produces this failure. I can creduce it, but I'm
>>> not sure there's a relationship between it and the bug.
>>> Doing unrelated changes (adding instruction scheduling) to vax also hid it.
>>>
>>> Is this kind of test still valuable?
>> Often they are.
>>
>> jeff
> So it was. Here's another missed initialization, that running creduce
> accidentally reached.
> 
> 
> 
> The mode might have changed, let's make sure the new mode is initialized
> too.
> 
> 2019-10-04	Maya Rashish <coypu@sdf.org>
> 	* ira-color.c (update_costs_from_allocno): Call
> 	ira_init_register_move_cost_if_necessary.
THanks.  Installed
jeff

ps. You might want to read this from John Regehr.  It touches on how
reducers tend to also find independent bugs.

https://blog.regehr.org/archives/1284
diff mbox series

Patch

diff --git a/gcc/ira-color.c b/gcc/ira-color.c
index 505d5c8ffb3..fb8b4dbc652 100644
--- a/gcc/ira-color.c
+++ b/gcc/ira-color.c
@@ -1372,6 +1372,7 @@  update_costs_from_allocno (ira_allocno_t allocno, int hard_regno,
 	     e.g. DImode for AREG on x86.  For such cases the
 	     register move cost will be maximal.  */
 	  mode = narrower_subreg_mode (mode, ALLOCNO_MODE (cp->second));
+	  ira_init_register_move_cost_if_necessary (mode);
 	  
 	  cost = (cp->second == allocno
 		  ? ira_register_move_cost[mode][rclass][aclass]