SharpDevelop Community

Get your problems solved!
Welcome to SharpDevelop Community Sign in | Join | Help
in Search

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

Last post 12-05-2016 6:14 PM by WarlockD. 2 replies.
Page 1 of 1 (3 items)
Sort Posts: Previous Next
  • 04-13-2016 3:19 PM

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

    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.

  • 12-03-2016 10:23 PM In reply to

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

    Not sure why we had those in the old decompiler engine. There's a new engine on the newdecompiler branch; and we only have one block type there.

    Some information: https://github.com/icsharpcode/ILSpy/wiki/newdecompiler

  • 12-05-2016 6:14 PM In reply to

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

    Ohhh this is nice.  I wish I knew about it a few months back.  I was building a decompiler for Undertale that uses the GameMaker engine.  I use ISpy alot  and thought I would use some of the code in there.  

    It took a while to figure out what code was opterational and what code was just left in there.  

    Thanks, I am checking it out:)

Page 1 of 1 (3 items)
Powered by Community Server (Commercial Edition), by Telligent Systems
Don't contact us via this (fleischfalle@alphasierrapapa.com) email address.