Opened 9 years ago

Last modified 19 months ago

#609 new task (None)

Useful optimisation for set-cost-centre

Reported by: simonpj Owned by: simonmar
Priority: normal Milestone: 7.6.2
Component: Profiling Version: None
Keywords: Cc:
Operating System: Unknown/Multiple Architecture: Unknown/Multiple
Type of failure: None/Unknown Difficulty: Moderate (less than a day)
Test Case: Blocked By:
Blocking: Related Tickets:

Description (last modified by simonpj)

If you compile, for example, drvrun014 with -prof -auto-all, you'll see stuff like

    (scc "c" (dataToTag#)) y

This generates bad code, because we end up eta-expaning dataToTag, which allocates an extra function closure.

We think that in general

   (scc "c" e) y  = scc "c" (e y)

to within a small constant factor. So maybe the simplifier, or CorePrep, or both, should do this transformation.

Change History (11)

comment:1 Changed 8 years ago by simonmar

  • Architecture set to Unknown
  • Description modified (diff)
  • Difficulty set to Moderate (1 day)
  • Operating System set to Unknown

comment:2 Changed 8 years ago by igloo

  • Milestone set to 6.6.1

comment:3 Changed 7 years ago by simonmar

  • Priority changed from normal to low

comment:4 Changed 7 years ago by simonmar

  • Milestone changed from 6.6.1 to 6.8
  • Priority changed from low to normal

comment:5 Changed 6 years ago by simonpj

  • Description modified (diff)
  • Milestone changed from 6.8 branch to _|_

comment:6 Changed 6 years ago by simonmar

  • Architecture changed from Unknown to Unknown/Multiple

comment:7 Changed 6 years ago by simonmar

  • Operating System changed from Unknown to Unknown/Multiple

comment:8 Changed 4 years ago by simonmar

  • Difficulty changed from Moderate (1 day) to Moderate (less than a day)

comment:9 Changed 3 years ago by simonmar

  • Component changed from Compiler to Profiling
  • Milestone changed from _|_ to 7.4.1
  • Owner set to simonmar
  • Priority changed from normal to high
  • Type of failure set to None/Unknown

comment:10 Changed 2 years ago by simonmar

  • Milestone changed from 7.4.1 to 7.6.1
  • Priority changed from high to normal

Going to punt on this for the time being.

comment:11 Changed 19 months ago by igloo

  • Milestone changed from 7.6.1 to 7.6.2
Note: See TracTickets for help on using tickets.