Inline expansion and interprocedural register allocation are two general approaches used for interprocedural optimization. However, there are certain situations which prevent either of them from being applied smoothly to procedure calls. This paper describes a method of integrating interprocedural register allocation and inlining in order to reduce the procedure call overhead. The method uses profile information to identify the heavy called procedures regions and optimises the placement of the register save/restore code. This method also takes full advantage of free-use registers at each procedure cell site. The average performance improvement is 1.21 compared with the previous schemes that performed either of them independently
Published in:
Computer Languages, 1994., Proceedings of the 1994 International Conference on
Date of Conference: 16-19 May 1994