<div dir="ltr"><div>Hello LLVM Developers,</div><div><br></div><div>I need help to clear my understanding on register allocation.</div><div><br></div><div>For architecture like x86 LLVM does not add registers designated<br></div><div>for parameter passing to reserved registers.</div><div><br></div><div>For the function arguments</div><div>register allocation happens during ISel phase based on register usage conventions.</div><div><br></div><div>Now for each virtual register there is one assigned register class for</div><div>when it is created.</div><div><br></div><div>So AllocationOrder class can provide as a hint register which could have beenĀ </div><div>used for parameter passing. But register allocators should be able to use them</div><div>when they are free i.e not used for conventional usage.</div><div><br></div><div>So how does LLVM register allocators take care of such situations?</div><div>Please also suggest the location of the code which is responsible for such logic</div><div>if any.</div><div><br></div><div>Please correct my understanding if I am wrong.</div><div>Sincerely,</div><div>VivekĀ </div></div>