[llvm-dev] Can we get interprocedural register allocation work across module boundary?

vivek pandya via llvm-dev llvm-dev at lists.llvm.org
Tue Jul 5 09:28:52 PDT 2016


Hello Mentors,

I have a very naive idea to get IPRA woking at link time and thus extending
its scope to intermodule. I seek some help if it seems to be a feasible
idea.

So idea is to take advantage of LTO's capability to work with bit code
files. LTO can optimize number of bitcode files and combine them into a big
module. LTO then generates native code for the big module.

So does it seem feasible to have clang generates bit code files for the
source code and then combine then with LTO and LTOCodeGenerater will use
current IPRA infrastructure, so IPRA will be improved as now it can
propagate actual regmask for procedures define in other modules (not
system/external library calls).  If this is possible then one problem I can
sense is requirement of huge memory to hold a big module for large
projects.

If this idea seems feasible please help me to shape a concrete work plan on
this.

Sincerely,
Vivek
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20160705/865cb29a/attachment.html>


More information about the llvm-dev mailing list