Changes between Version 1 and Version 2 of Ticket #16335, comment 2


Ignore:
Timestamp:
Feb 18, 2019 5:19:59 PM (11 months ago)
Author:
sgraf
Comment:

Legend:

Unmodified
Added
Removed
Modified
  • Ticket #16335, comment 2

    v1 v2  
    33||=SpecConstr=||= CPR+WW =||
    44||Multiple specialisations||One specialisation||
    5 ||Looks at how much the definition scrutinises its arguments in ''any'' of its case expressions||Looks at how deep the constructed products are in ''all'' its return branches (mostly since we only do one specialisation)||
    6 ||Compares that to how the function is called and only allows matching specialisations (unless `-fspec-constr-keen`||Doesn't look at calls, but only provides the most conservative specialisation anyway||
     5||Looks at how much the definition scrutinises its arguments in ''any'' of its case expressions (unless `-fspec-constr-keen`))||Looks at how deep the constructed products are in ''all'' its return branches (mostly since we only do one specialisation)||
     6||Compares that to how the function is called and only allows matching specialisations||Doesn't look at calls, but only provides the most conservative specialisation anyway||
    77
    88Put another way: If we allowed multiple specialisations, we could have the following two specialisations, no reboxing happening (no promises made on correctness):