ML和Haskell的编译器在安排多个参数可以有效地传递给过程时通常会遇到很多麻烦。出于某种原因,在确保多个结果也能有效返回方面投入的精力似乎较少。在惰性函数语言Haskell的上下文中,我们描述了一个分析,构造产品结果(CPR)分析,确定函数何时可以在寄存器中返回多个结果。分析仅基于函数的定义,而不基于其用途(因此很容易支持单独编译),并且分析结果可以单独通过函数定义的转换来表达。我们讨论了在我们的实现中解决的各种设计问题,并在大量基准集上对我们的方法的有效性进行了度量。总的来说,性价比很好:总的来说好处不大(虽然有时会很明显),但复杂性和编译时间方面的成本都很低。