[LLVMdev] [PATCH] handleMoveIntoBundle assertion

Ivan Llopard ivanllopard at gmail.com
Tue May 29 06:50:00 PDT 2012


Hi again,

Just forgot to add PATCH prefix to my message! Could you please review it ?

Ivan

Le 26/05/2012 00:52, Ivan Llopard a écrit :
> Hi,
>
> I have a custom scheduler/bundler running just after coalescing as 
> proposed by the current infrastructure of machine schedulers. Btw, 
> great thanks for this cool stuff !
> I'm running into problems when I want to update the LI information of 
> an instruction. I call handleMoveIntoBundle() to make its LI begins 
> from the packet header but the following assertion is raised:
>
> "Can't have two defs for the same variable exiting a bundle." in 
> moveExitingFromInto()
>
> IIUC, handleMoveIntoBundle collects entering, internal and exiting 
> live ranges from the bundle and group all this information into 
> BundleRanges. Then it collects the same information for the incoming 
> instruction and add it to the current BundleRanges while updating its 
> live ranges.
> I found that entering, internal and exiting live ranges of the packet 
> are not cleared before collecting the same information for the 
> incoming instruction. The attached patch fix it.
> Unfortunately, I can't provide a test case but it can be easily tested 
> by calling handleMoveIntoBundle() with 2 arbitrary MI's where the 
> packet contains a register def.
>
> Ivan



More information about the llvm-dev mailing list