Quantcast
Channel: SharpDevelop Community
Viewing all articles
Browse latest Browse all 1764

Can someone tell me why you have both ILBlock AND ILBasicBlock?

$
0
0

I am using some of the ILSpy code to make a decompiler for Game Maker.  While I have some great success (Cut and pasting LoopAndConditions more or less fixed ALOT of issues) I am having trouble understanding why you have both types of blocks.

I understand why the optimizing pass breaks them up into ILBasicBlock as it makes it MUCH easyer to figure out diffrent code paterns, whatI don't understand is why you can't just use the ILBlock instead.  Wouldn't it be easyer to have just one block type and have the optimizer use that?  Heck, you could even have the block's label info in a seperate property so you don't keep having to patern match for it?

Just fair warning I am not asking ot rewrite anything, it all works:P  I am just new to graph theory and was wondering if my lack of understanding was more an issue

As a side note, I havn't gone to the ILExpression to Ast part of the code so I don't know what trasforms happen there.


Viewing all articles
Browse latest Browse all 1764

Trending Articles