Opened 17 months ago

Last modified 9 months ago

#15069 new bug

Missed SpecConstr opportunity

Reported by: simonpj Owned by:
Priority: normal Milestone: 8.10.1
Component: Compiler Version: 8.2.2
Keywords: SpecConstr Cc:
Operating System: Unknown/Multiple Architecture: Unknown/Multiple
Type of failure: None/Unknown Test Case:
Blocked By: Blocking:
Related Tickets: Differential Rev(s):
Wiki Page:


If you look at the final Core for Csg.calc in nofib/real/fulsom you'll see missed opportunities for SpecConstr.

It has nested join points which look like this:

 join j (x :: Double) = Board (case x of { D# y -> ... })
 in ....(j (D# v))....

So the call to $j$ ends up with an explicit (D# v) argument, and SpecConstr should catch it. But alas it does not because this happends nestedly, and SpecConstr is worried about exponential blowup.

Change History (2)

comment:1 Changed 15 months ago by bgamari


These won't be addressed by GHC 8.6.

comment:2 Changed 9 months ago by osa1


Bumping milestones of low-priority tickets.

Note: See TracTickets for help on using tickets.