Wednesday, January 15, 2014

Target 0.0.2: Status 6

Bugfix update:

Switch instruction is fixed and well optimized if you use it with constants.

The code like this:
            
           var case_val = 3;
            switch (case_val)
            {
                case 1:
                    Console.WriteLine(1);
                    break;
                case 2:
                    Console.WriteLine(2);
                    break;
                case 3:
                    Console.WriteLine(3);
                    break;   
            }

Was not optimized correctly to Console.WriteLine(3); (the rest of code should be removed as dead). Right now the generated C++ code is correct and equivalent with the optimum code.

Escape analysis will allocate also arrays on stack (not the array content but the smart-pointer is not allocated at all). In the past was generated bad code for it.

No comments:

Post a Comment