[PATCH] Add a case to LiveIntervalAnalysis::HandleMoveUp

Vincent Lejeune vljn at ovi.com
Wed Mar 6 14:01:43 PST 2013


Hi Jakob,

> 
> Did you read my previous mail about the problem with live-out values? You 
> didn't address the problem.

I actually don't understand what should be done for live out values.
For instance if I have the following LiveInterval :

[48r,64r:2)[64r,80r:3)[80r,96B:4)[96B,336r:0)[448B,640r:0)[640r,672r:1)[672r,688r:5)[688r,704r:6)[704r,816B:7)
With block boundaries :
[0B;80B][96B;240B][256B;432B][448B;800B]
My reasoning is the following :
LiveRange that represents live-out value in the first bloc is [80r;96B] ;
If I move 80r to 8B for instance, I'm expecting the the first three LiveRange to be :
[8r,48r:4)[48r,64r:2)[64r,96B:3)
ie val 3 is becoming the new live-out value, that ends where value 4 ended before.


> Andy said he is going to add a -verify-scheduler command line option that runs 

> the machine code verifier before and after the MI scheduler. You should have 
> some test cases that contains multiple basic blocks, and exercise this code with 
> -stress-scheduler and -verify-sceuduler.
> 
> You should also make sure that the LLVM nightly test suite still works for x86 
> with -enable-misched -verify-scheduler -stress-scheduler.
> 
> I would recommend that you read the code in LiveRangeCalc.cpp to better 
> understand how live intervals work.

Thank for pointing me this, I was looking at LiveIntervalAnalysis.cpp to infer the inner working
of LiveInterval untill now but LiveRangeCalc.cpp is more informative.

Vincent

> 
> /jakob
> 




More information about the llvm-commits mailing list