<div dir="ltr"><div><div><div><div><div><div><div><div><div><div><div><div><div><div><div>Hello all,<br> <br></div>  I am trying to use the LLVM libraries to do register allocation on LLVM IR code -- and output IR as the result.<br></div>There are two problems that arise when we try this : <br><br></div>a. The LLVM backend requires that one goes through all the steps sequentially namely<br> <br></div>     -- Instruction selection<br></div>     -- Scheduling and Formation<br></div>     -- SSA-based machine code optimizations<br></div>     -- Register allocations <br><br><br>       ...<br><br><br></div>      -- Code emission<br><br></div>Is it possible to emit IR from the 1st 3 stages and then do register allocation on it ?<br></div>Normally, we would emit assembly based on the machine/ISA specifications during<br></div>instruction selection.<br><br></div>b. I have llvm IR in the form of a DAG already. This was obtained by using the llvm;;parseIRFile<br></div>function. I am not sure how to provide this ISA as an input to the backend phases as they<br></div>seem to accept all kinds of other objects. <br><br></div><div>Are there any llvm functions that accept a DAG as input so that we can do register allocation on it <br></div><div>subsequently ? <br><br><br></div><div>Note : This might look like a weird thing to do, but I want to do simulations on IR and getting a <br></div><div>register-allocated IR is useful for that purpose.<br></div></div>


        
        
        
<br/><hr align="left" width="300" />
View this message in context: <a href="https://urldefense.proofpoint.com/v2/url?u=http-3A__llvm.1065342.n5.nabble.com_Register-2DAllocation-2Don-2DIR-2Dtp82414.html&d=AwMFaQ&c=8hUWFZcy2Z-Za5rBPlktOQ&r=Mfk2qtn1LTDThVkh6-oGglNfMADXfJdty4_bhmuhMHA&m=2OblNhBarTDXhb_DrXgPBErQpK4kzZPCqObSAYnWrNw&s=tieOG_IuhO0b9Eri02OVFdSWvkr0zlhF0WFyiUI1zkc&e=">Register Allocation on IR</a><br/>
Sent from the <a href="https://urldefense.proofpoint.com/v2/url?u=http-3A__llvm.1065342.n5.nabble.com_LLVM-2DDev-2Df3.html&d=AwMFaQ&c=8hUWFZcy2Z-Za5rBPlktOQ&r=Mfk2qtn1LTDThVkh6-oGglNfMADXfJdty4_bhmuhMHA&m=2OblNhBarTDXhb_DrXgPBErQpK4kzZPCqObSAYnWrNw&s=Juy7RgBEqqIruJdLOsZMOwtOx_WfBU0iRbkQOe9TEOM&e=">LLVM - Dev mailing list archive</a> at Nabble.com.<br/>