[foreign-memaccess+abi] Withdrawn: Prevent maxAlign virtual calls for polluted accesses

Radoslaw Smogura duke at openjdk.org
Tue Dec 5 08:08:05 UTC 2023


On Sat, 6 Aug 2022 08:46:03 GMT, Radoslaw Smogura <duke at openjdk.org> wrote:

> In case of polluted accesses (when different kinds of segments are accessed
> from same code), `maxAlign()` can get virtual call which would prevent
> effective inlining and loop optimizations.
> 
> This patch moves `maxAlign` to `AbstractMemorySegmentImpl` field, and makes method
> final. The value of align is passed as constructor argument.
> 
> _Note: This patch can cause slightly bigger memory usage, as memory segment will carry `maxAlign` value, this can optimizaed by using smaller container for value i. e. `byte` or `short`_
> 
> After
> 
> Benchmark                                  (size)  Mode  Cnt       Score     Error  Units
> MixedAccessBenchmarks.directCopy          1048576  avgt   10   16410.733 ±  79.901  ns/op
> MixedAccessBenchmarks.pollutedAccessCopy  1048576  avgt   10  168497.502 ± 632.578  ns/op
> 
> 
> Before
> 
> Benchmark                                  (size)  Mode  Cnt        Score        Error  Units
> MixedAccessBenchmarks.directCopy          1048576  avgt   10    18336.054 ±     63.133  ns/op
> MixedAccessBenchmarks.pollutedAccessCopy  1048576  avgt   10  2069032.456 ± 167512.633  ns/op

This pull request has been closed without being integrated.

-------------

PR: https://git.openjdk.org/panama-foreign/pull/700


More information about the panama-dev mailing list