<div dir="ltr">Hi all,<div><br></div><div>Currently in the llvm middle-end, we disable some optimizations because we worry about the register pressure, (e.g. GVNHoist and ArgumentPromotion). </div><div><br></div><div>However, in the architecture that are register-rich, e.g. FPGAs, we do not need to worry about the register pressure at all. For these architecures, we may want to optimization the LLVM IR without worrying about the register pressure.</div><div><br></div><div>I suggest that we introduce a hook in the TargetTransformInfo to tell if the current target architecture is register-rich or not. With this hook, we can enable the optimizations that increase register pressure in case the current architecture is register-rich.</div><div><br></div><div>One problem for introducing this hook: we are not able to test it (in the public buildbot) without an register-rich target architecture in LLVM trunk, and unfortunately, we do not have one today. </div><div><br></div><div>To address this problem, I propose to add a command line option to enable the register-rich mode such that we can test the corresponding code path as well.</div><div><br></div><div><br></div><div>I put a patch here: <a href="https://reviews.llvm.org/D42191">https://reviews.llvm.org/D42191</a></div><div><br></div><div>Feel free to add yourselves as reviewer/subscriber if you are interested. </div><div><br></div><div>Thanks</div><div>Hongbin</div><div><br></div><div><br><div><br><div><br></div><div><br></div></div></div></div>