Displaying 3 results from an estimated 3 matches for "jumpmap_0".
Did you mean:
jumpmap
2017 Feb 13
5
(RFC) JumpMaps: switch statement optimization
...e example:
switch(x) {
case 0x6851: {BB1}
case 0x1383: {BB2}
case 0x2224: {BB3}
default: {defaultBB}
}
Without Jump Maps:
if(x==0x6851) {
goto BB1
}
else if(x==0x1383) {
goto BB2
}
else if(x==0x2224){
goto BB3
}
else{
goto defaultBB
}
With Jump Maps:
jumpmap_0 = {
keys = {3, 0x6851, 0x1383, 0x2224}
vals = {defaultBB, BB1, BB2, BB3}
}
addr dst = __jumpmap_find(&jumpmap_0, x)
goto dst;
On our target Jump Maps produce both smaller and faster code even for
quite small switch statements. We believe other architectures would
benefit as well,...
2017 Feb 14
2
(RFC) JumpMaps: switch statement optimization
...efault: {defaultBB}
> }
>
> Without Jump Maps:
> if(x==0x6851) {
> goto BB1
> }
> else if(x==0x1383) {
> goto BB2
> }
> else if(x==0x2224){
> goto BB3
> }
> else{
> goto defaultBB
> }
>
> With Jump Maps:
> jumpmap_0 = {
> keys = {3, 0x6851, 0x1383, 0x2224}
> vals = {defaultBB, BB1, BB2, BB3}
> }
> addr dst = __jumpmap_find(&jumpmap_0, x)
> goto dst;
>
> On our target Jump Maps produce both smaller and faster code even for quite small switch statements. We believe other a...
2017 Feb 14
3
(RFC) JumpMaps: switch statement optimization
...gt;>> }
>>> else if(x==0x1383) {
>>> goto BB2
>>> }
>>> else if(x==0x2224){
>>> goto BB3
>>> }
>>> else{
>>> goto defaultBB
>>> }
>>>
>>> With Jump Maps:
>>> jumpmap_0 = {
>>> keys = {3, 0x6851, 0x1383, 0x2224}
>>> vals = {defaultBB, BB1, BB2, BB3}
>>> }
>>> addr dst = __jumpmap_find(&jumpmap_0, x)
>>> goto dst;
>>>
>>> On our target Jump Maps produce both smaller and faster code eve...