RFR: JDK-8320368: Per-CPU optimization of Klass range reservation [v2]

Thomas Stuefe stuefe at openjdk.org
Wed Nov 22 13:40:08 UTC 2023


On Wed, 22 Nov 2023 11:15:45 GMT, Andrew Haley <aph at openjdk.org> wrote:

>> Oh, you are right. Okay, I will add that. Being able to do CPU-specific stuff without ifdef is like a breath of fresh air.
>
> The coding scheme is rather weird, making it a little bit tricky to find valid XOR encodings.  I don't think we cover all of the single-instruction possibilities.
> 
> They are:
> 
> 0x000100000000, 0x000200000000, 0x000300000000, 0x000400000000, 0x000600000000, 0x000700000000, 
> 0x000800000000, 0x000c00000000, 0x000e00000000, 0x000f00000000, 0x001000000000, 0x001800000000, 
> 0x001c00000000, 0x001e00000000, 0x001f00000000, 0x002000000000, 0x003000000000, 0x003800000000, 
> 0x003c00000000, 0x003e00000000, 0x003f00000000, 0x004000000000, 0x006000000000, 0x007000000000, 
> 0x007800000000, 0x007c00000000, 0x007e00000000, 0x007f00000000, 0x008000000000, 0x00c000000000, 
> 0x00e000000000, 0x00f000000000, 0x00f800000000, 0x00fc00000000, 0x00fe00000000, 0x00ff00000000, 
> 0x010000000000, 0x018000000000, 0x01c000000000, 0x01e000000000, 0x01f000000000, 0x01f800000000, 
> 0x01fc00000000, 0x01fe00000000, 0x01ff00000000, 0x020000000000, 0x030000000000, 0x038000000000, 
> 0x03c000000000, 0x03e000000000, 0x03f000000000, 0x03f800000000, 0x03fc00000000, 0x03fe00000000, 
> 0x03ff00000000, 0x040000000000, 0x060000000000, 0x070000000000, 0x078000000000, 0x07c000000000, 
> 0x07e000000000, 0x07f000000000, 0x07f800000000, 0x07fc00000000, 0x07fe00000000, 0x07ff00000000, 
> 0x080000000000, 0x0c0000000000, 0x0e0000000000, 0x0f0000000000, 0x0f8000000000, 0x0fc000000000, 
> 0x0fe000000000, 0x0ff000000000, 0x0ff800000000, 0x0ffc00000000, 0x0ffe00000000, 0x0fff00000000, 
> 0x100000000000, 0x180000000000, 0x1c0000000000, 0x1e0000000000, 0x1f0000000000, 0x1f8000000000, 
> 0x1fc000000000, 0x1fe000000000, 0x1ff000000000, 0x1ff800000000, 0x1ffc00000000, 0x1ffe00000000, 
> 0x1fff00000000, 0x200000000000, 0x300000000000, 0x380000000000, 0x3c0000000000, 0x3e0000000000, 
> 0x3f0000000000, 0x3f8000000000, 0x3fc000000000, 0x3fe000000000, 0x3ff000000000, 0x3ff800000000, 
> 0x3ffc00000000, 0x3ffe00000000, 0x3fff00000000, 0x400000000000, 0x600000000000, 0x700000000000, 
> 0x780000000000, 0x7c0000000000, 0x7e0000000000, 0x7f0000000000, 0x7f8000000000, 0x7fc000000000, 
> 0x7fe000000000, 0x7ff000000000, 0x7ff800000000, 0x7ffc00000000, 0x7ffe00000000, 0x7fff00000000, 
> 0x800000000000, 0xc00000000000, 0xe00000000000, 0xf00000000000, 0xf80000000000, 0xfc0000000000, 
> 0xfe0000000000, 0xff0000000000, 0xff8000000000, 0xffc000000000, 0xffe000000000, 0xfff000000000, 
> 0xfff800000000, 0xfffc00000000, 0xfffe00000000, 0xffff00000000

Thanks! I already have a solution with a hard coded table. 

I think by now everyone has a copy of this table as a gist somewhere :) https://gist.github.com/tstuefe/f6022e5973b0f262a30b23702842331a

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

PR Review Comment: https://git.openjdk.org/jdk/pull/16743#discussion_r1402060956


More information about the hotspot-dev mailing list