Changes

Summary

  1. !!!! Highly Experimental!!! (details)
  2. - implement some more methods that are needed CleanBlocks (found by (details)
Commit fc53a69f6aeb823edc5a93ec374f84f983aa3693 by marcus.denker
!!!! Highly Experimental!!!
This is disabled by default.
If you want to experiment, you can enable the #optionCleanBlockClosure
compiler option.
What does it do? For blocks that do not access anything outside
(#isClean is true), it statically creates a FullBlockClosure and pushes
it with #pushLiteral.
This avoids having to create the FullBlockClosure from the CompiledBlock
at runtime, which is much faster.
This is not yet complete, see the class CleanBlockClosure for more
comments and TODOs.

The file was modifiedsrc/OpalCompiler-Core/CompilationContext.class.st (diff)
The file was modifiedsrc/OpalCompiler-Core/IRBytecodeGenerator.class.st (diff)
The file was modifiedsrc/OpalCompiler-Tests/OpalCompilerTest.class.st (diff)
The file was modifiedsrc/OpalCompiler-Core/OCASTTranslator.class.st (diff)
The file was modifiedsrc/Kernel/CompiledBlock.class.st (diff)
The file was addedsrc/Kernel/CleanBlockClosure.class.st
The file was modifiedsrc/Kernel/CompiledCode.class.st (diff)
The file was modifiedsrc/Kernel/Object.class.st (diff)
The file was modifiedsrc/OpalCompiler-Tests/OCCleanBlockTest.class.st (diff)
Commit 3ed943cdfabc00a723c4df2bb87becebc6fa362c by marcus.denker
- implement some more methods that are needed CleanBlocks (found by
running tests)
The file was modifiedsrc/Kernel/CleanBlockClosure.class.st (diff)

Summary

  1. !!!! Highly Experimental!!! (details)
  2. - implement some more methods that are needed CleanBlocks (found by (details)
Commit fc53a69f6aeb823edc5a93ec374f84f983aa3693 by marcus.denker
!!!! Highly Experimental!!!
This is disabled by default.
If you want to experiment, you can enable the #optionCleanBlockClosure
compiler option.
What does it do? For blocks that do not access anything outside
(#isClean is true), it statically creates a FullBlockClosure and pushes
it with #pushLiteral.
This avoids having to create the FullBlockClosure from the CompiledBlock
at runtime, which is much faster.
This is not yet complete, see the class CleanBlockClosure for more
comments and TODOs.

The file was modifiedsrc/OpalCompiler-Core/CompilationContext.class.st (diff)
The file was addedsrc/Kernel/CleanBlockClosure.class.st
The file was modifiedsrc/OpalCompiler-Tests/OCCleanBlockTest.class.st (diff)
The file was modifiedsrc/OpalCompiler-Core/OCASTTranslator.class.st (diff)
The file was modifiedsrc/Kernel/CompiledBlock.class.st (diff)
The file was modifiedsrc/OpalCompiler-Tests/OpalCompilerTest.class.st (diff)
The file was modifiedsrc/Kernel/Object.class.st (diff)
The file was modifiedsrc/Kernel/CompiledCode.class.st (diff)
The file was modifiedsrc/OpalCompiler-Core/IRBytecodeGenerator.class.st (diff)
Commit 3ed943cdfabc00a723c4df2bb87becebc6fa362c by marcus.denker
- implement some more methods that are needed CleanBlocks (found by
running tests)
The file was modifiedsrc/Kernel/CleanBlockClosure.class.st (diff)