search for: jumpmap_0

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...