tfpt review "/shelveset:InstructionRefactoring;REDMOND\tomat"

DLR, Python Ruby:

Makes all instruction classes internal except for the base Instruction class. 
Adds InstructionList class that represents incomplete instruction stream and 
provides Emit* instructions (like ILGenerator). The class is converted to 
InstructionArray when finished. Both implement a debug view so that it is easy 
to see what instructions are being emitted/interpreted.

Implements cache for LoadObject instruction - instead of allocating a new 
instruction per object constant we store the constants into an array and have 
specialized pre-generated instructions to load them.
Adds caching of branch instructions.
Adds debug cookies to instruction list in DEBUG builds - each instruction can 
be associates with one or more debug cookies. LocalAccess instructions use this 
to store the variable names. The cookies are used in debug view.

Groups related instructions into separate files.
Implements AddInstuction for all primitive arithmetic types.

Adds -X:CompilationThreshold option that sets the number of iterations before 
we start compiling code.
Obsoletes InterpretedMode, NoAdaptiveCompilation and PerfStats properties on 
LanguageSetup. The options can still be set via dictionary.

Reduces the number of instruction instances that are executed at least once 
during the run of "mspec ci core" from 1,274,454 to 280,684.

Tomas

Attachment: InstructionRefactoring.diff
Description: InstructionRefactoring.diff

_______________________________________________
Ironruby-core mailing list
Ironruby-core@rubyforge.org
http://rubyforge.org/mailman/listinfo/ironruby-core

Reply via email to