Last update: Thu Apr 12 03:37:15 MDT 2012
Top |
Symbols |
Numbers |
Math |
A |
B |
C |
D |
E |
F |
G |
H |
I |
J |
K |
L |
M |
N |
O |
P |
Q |
R |
S |
T |
U |
V |
W |
X |
Y |
Z
BibTeX entry
@Article{Ball:1993:BPF,
author = "Thomas Ball and James R. Larus",
title = "Branch prediction for free",
journal = j-SIGPLAN,
volume = "28",
number = "6",
pages = "300--313",
month = jun,
year = "1993",
CODEN = "SINODQ",
ISBN = "0-89791-598-4",
ISBN-13 = "978-0-89791-598-4",
ISSN = "0362-1340 (print), 1523-2867 (print), 1558-1160 (electronic)",
ISSN-L = "0362-1340",
bibdate = "Sun Dec 14 09:16:37 MST 2003",
bibsource = "http://portal.acm.org/;
http://www.acm.org/pubs/contents/proceedings/pldi/155090/index.html",
URL = "http://www.acm.org:80/pubs/citations/proceedings/pldi/155090/p300-ball/",
abstract = "Many compilers rely on branch prediction to improve
program performance by identifying frequently executed
regions and by aiding in scheduling instructions.{\em
Profile-based\/} predictors require a time-consuming
and inconvenient compile-profile-compile cycle in order
to make predictions. We present a {\em program-based\/}
branch predictor that performs well for a large and
diverse set of programs written in C and Fortran. In
addition to using natural loop analysis to predict
branches that control the iteration of loops, we focus
on heuristics for predicting non-loop branches, which
dominate the dynamic branch count of many programs. The
heuristics are simple and require little program
analysis, yet they are effective in terms of coverage
and miss rate. Although program-based prediction does
not equal the accuracy of profile-based prediction, we
believe it reaches a sufficiently high level to be
useful. Additional type and semantic information
available to a compiler would enhance our heuristics.",
acknowledgement = ack-nhfb,
affiliation = "Dept. of Comput. Sci., Wisconsin Univ., Madison, WI,
USA",
annote = "Published as part of the Proceedings of PLDI'93.",
classification = "C6110 (Systems analysis and programming); C6120
(File organisation); C6150C (Compilers, interpreters
and other processors)",
confdate = "23-25 June 1993",
conflocation = "Albuquerque, NM, USA",
confsponsor = "ACM",
keywords = "Branch prediction; C; Compile-profile-compile cycle;
Dynamic branch count; Fortran; Frequently executed
regions; Heuristics; languages; Miss rate; Natural loop
analysis; Non-loop branches; performance; Program
performance; Program-based branch predictor; Scheduling
instructions; Semantic information",
subject = "{\bf G.2.2} Mathematics of Computing, DISCRETE
MATHEMATICS, Graph Theory. {\bf D.3.2} Software,
PROGRAMMING LANGUAGES, Language Classifications,
FORTRAN. {\bf D.3.4} Software, PROGRAMMING LANGUAGES,
Processors, Optimization. {\bf D.3.4} Software,
PROGRAMMING LANGUAGES, Processors, Compilers.",
thesaurus = "Program compilers; Programming; Tree data structures",
}
Related entries
- accuracy,
25(6)112,
26(7)133,
27(9)76,
28(12)43,
29(6)85,
29(6)97,
29(6)337,
29(6)337-1,
29(11)132-1,
29(11)232,
30(6)196,
30(11)1
- addition,
25(6)53,
25(6)272,
25(6)283,
25(6)296,
27(7)200,
27(9)285,
28(3)149,
28(3)343,
28(3)363,
28(6)26,
28(6)227,
28(6)290,
28(7)102,
29(6)266,
29(6)349,
29(6)349-1,
29(8)13,
29(8)119,
29(11)183,
29(11)328,
30(3)71,
30(6)139,
30(6)186,
30(8)48,
30(8)102,
30(11)70,
30(11)99,
31(8)84,
31(8)84-1
- additional,
25(6)66,
27(7)1,
28(6)207-1,
28(7)64,
29(6)266,
29(6)302,
29(11)297,
29(11)328,
30(6)103,
30(6)196
- although,
25(1)59,
25(6)137,
25(6)283,
26(1)14,
26(4)290,
28(3)97,
28(6)237,
28(12)169,
29(6)230,
29(6)349,
29(6)349-1,
29(11)61,
29(11)158,
30(3)119,
30(6)205,
30(8)68,
33(7)51
- available,
25(6)127-1,
25(6)174,
25(6)209,
27(7)200,
27(7)249,
28(3)209,
28(3)343,
28(3)359,
28(3)367,
28(6)1,
28(6)100,
29(6)13,
29(6)97,
29(6)186,
29(11)183,
30(6)103,
30(6)151,
30(6)186,
30(6)218,
30(8)58,
30(8)134,
30(11)60,
30(11)134,
31(2)6,
33(7)67
- Ball, Thomas,
32(5)85,
34(2)21,
34(2)21-1
- based, profile-,
29(11)232
- based, Program-,
30(6)79-1
- based, program-,
30(6)79-1
- believe,
27(7)140,
27(7)311,
27(9)262,
27(9)285,
29(11)2
- C6110,
25(6)102,
26(1)14,
26(6)145,
26(6)219,
27(1)95,
27(6)54,
27(12)61,
28(6)1,
28(6)13,
28(6)26,
28(6)36,
28(6)46,
28(6)56,
28(6)78-1,
28(6)90,
28(6)147,
28(6)156,
28(6)197,
28(6)207-1,
28(6)227,
28(6)237,
28(6)268,
29(1)20,
29(1)53,
29(2)13,
29(2)33,
29(2)44,
29(3)18,
29(3)23,
29(3)28,
29(3)33,
29(4)15,
29(4)23,
29(4)49,
29(6)1,
29(6)13,
29(6)24,
29(6)49,
29(6)61,
29(6)85,
29(6)159,
29(6)206,
29(6)290,
29(6)313,
29(9)22,
29(9)29,
29(9)44,
29(9)51,
29(9)72,
29(9)81,
29(9)91,
29(9)125,
29(10)259,
29(10)388,
30(3)1,
30(3)13,
30(3)62,
30(3)94,
30(4)13,
30(6)13,
30(6)23,
30(6)32,
30(6)47,
30(6)233,
30(6)246,
30(8)92,
30(11)41,
30(11)108,
30(11)117,
30(11)125
- consuming, time-,
27(7)82,
29(6)196,
30(6)291
- count,
25(6)78,
25(12)85,
26(4)290,
27(9)248,
29(6)85,
29(6)121,
29(9)38,
29(11)232,
33(7)75,
34(3)49
- coverage,
29(6)290,
29(9)77
- cycle,
27(9)248,
29(6)36,
29(7)43,
29(10)287,
29(11)86,
29(12)73,
29(12)78,
30(6)196,
30(11)31,
33(5)85,
33(5)85-1,
33(11)252
- DISCRETE,
25(6)16,
25(6)40,
25(6)85-1,
25(6)223,
25(6)234,
25(6)246,
25(6)272,
25(6)283,
25(6)296,
25(6)337,
26(6)130,
26(6)177-1,
26(6)192,
26(6)204,
26(6)241,
26(6)256,
27(7)162,
27(7)300,
27(7)311,
27(7)331,
28(6)78-1,
28(6)112,
28(6)126,
28(6)248,
28(6)268,
28(6)278,
28(6)290,
29(6)135,
29(6)266,
30(3)1,
30(3)23,
30(3)35,
30(3)50,
30(6)32,
30(6)47,
30(6)163-1,
30(6)186,
30(6)246,
30(11)70,
31(5)54,
31(5)278,
31(5)291,
31(9)222-1,
31(9)234,
32(5)85,
32(5)171,
32(5)235,
32(5)249,
32(5)261,
32(5)287,
32(5)296-1,
33(5)15,
33(5)26-1,
33(5)60,
33(5)85-1,
33(5)97,
33(5)142,
33(11)218,
34(3)57
- diverse,
25(1)59,
25(5)39,
29(6)196,
29(9)29
- do,
24(3)34,
25(6)66,
25(6)92,
25(6)112,
25(6)127-1,
25(6)137,
25(12)85,
26(4)290,
27(7)300,
27(7)331,
28(3)347,
28(7)83,
28(8)57,
29(2)44,
29(6)49,
29(6)349,
29(6)349-1,
29(8)74,
29(11)12,
29(11)51,
30(6)79-1,
30(6)130,
30(6)139,
30(6)246,
30(6)279,
30(11)88,
32(9)15,
32(9)15-1,
32(10)253,
32(10)345-1,
32(10)345-5,
33(7)35,
33(10)45,
33(10)45-1
- dominate,
29(11)51
- effective,
25(6)53,
26(6)177,
26(6)177-1,
26(6)219,
27(9)238,
28(7)229,
28(8)90,
29(6)159,
29(6)337,
29(6)337-1,
29(11)12,
29(11)76-1,
29(11)252,
29(11)328,
30(6)79-1,
30(6)103,
30(6)130,
30(6)270,
30(6)301,
30(8)166,
31(5)149,
31(10)292,
31(11)28,
32(5)71,
32(5)320,
32(5)320-1,
32(7)112,
32(7)112,
32(7)264,
33(5)280,
34(7)10
- enhance,
29(2)44,
30(6)233,
34(5)150
- executed,
25(6)337,
26(6)145,
27(7)44,
27(7)128,
27(7)322,
29(6)85,
29(6)121,
29(6)266,
29(11)252,
30(6)56,
30(6)103,
30(6)246,
30(6)315,
30(8)179
- focus,
27(7)55,
27(7)311,
28(3)149,
28(3)271,
28(4)7,
28(7)13,
29(11)286,
29(11)297,
30(8)29,
30(8)58,
30(8)207,
30(11)60,
33(7)43
- FORTRAN,
25(6)53,
25(6)257,
26(6)145,
27(2)75,
27(7)1,
27(7)94,
27(7)152,
27(7)188-1,
27(7)200,
28(3)149,
28(3)355,
28(6)100,
28(6)258,
28(6)268,
29(4)41,
29(6)107,
29(6)159,
29(12)31,
30(6)270,
31(9)186,
33(5)186
- Fortran,
25(1)52,
25(6)257,
26(2)83,
26(6)145,
26(6)145-1,
27(4)11,
27(7)94,
27(7)200,
28(1)1,
28(1)72,
28(3)361,
28(6)278,
28(7)13,
28(7)33,
28(7)92,
28(7)149,
29(6)107,
29(7)54,
29(11)196,
29(12)31,
30(4)61,
30(6)79-1,
30(6)218,
30(7)5,
30(8)58,
30(8)102,
30(8)112,
30(8)134,
31(4)20,
31(4)20-1,
32(3)57,
32(7)13,
33(3)57,
33(8)34,
34(12)24,
34(12)24-1
- free,
25(6)102,
27(4)77,
28(3)177,
28(3)347,
28(6)177,
28(7)208,
29(6)121,
29(6)257,
29(6)257-1,
31(1)22,
31(5)108,
34(5)281
- frequently,
28(3)361,
28(7)64,
29(6)85,
29(11)25,
30(6)56,
30(6)218,
30(6)246
- G.2.2,
25(6)16,
25(6)40,
25(6)85-1,
25(6)223,
25(6)234,
25(6)246,
25(6)272,
25(6)283,
25(6)296,
25(6)337,
26(6)130,
26(6)177-1,
26(6)192,
26(6)204,
26(6)241,
26(6)256,
27(7)162,
27(7)300,
27(7)311,
27(7)331,
28(6)78-1,
28(6)112,
28(6)126,
28(6)248,
28(6)268,
28(6)278,
28(6)290,
29(6)135,
29(6)266,
30(3)1,
30(3)23,
30(3)35,
30(3)50,
30(6)32,
30(6)47,
30(6)163-1,
30(6)186,
30(6)246,
31(5)54,
31(5)278,
31(5)291,
31(9)222-1,
31(9)234,
32(5)85,
33(5)15,
33(5)26-1,
33(5)60,
33(5)85-1,
33(5)97,
33(5)142
- heuristic,
25(6)85-1,
28(6)248,
29(6)36,
29(6)85,
29(9)72,
29(11)232,
30(6)67,
30(6)79-1,
30(6)186,
30(8)29,
30(8)134,
31(5)1,
31(7)12,
31(7)12-1,
32(5)134,
33(7)83
- identifying,
25(6)234,
28(6)26,
28(7)129,
30(11)31,
33(7)27,
33(7)75
- improve,
25(6)53,
25(6)337,
26(6)145,
26(6)177,
26(6)177-1,
27(7)106,
27(7)116,
27(7)162,
27(7)188-1,
27(7)249,
27(9)223,
28(3)201,
28(6)100,
28(6)187,
28(6)268,
29(6)36,
29(6)49,
29(6)97,
29(6)159,
29(6)206,
29(6)257,
29(6)257-1,
29(11)171,
29(11)208,
29(11)219,
29(11)232,
29(11)242,
29(11)252,
30(6)13,
30(6)56,
30(6)93,
30(6)116,
30(6)151,
30(6)174,
30(6)186,
30(6)196,
30(6)205,
30(6)279,
30(8)29,
30(8)80-1,
30(8)166,
30(8)189,
30(8)199,
33(5)97,
33(7)51,
34(5)215
- iteration,
17(9)18,
25(6)189,
25(6)311,
27(7)175,
27(7)188-1,
27(7)283,
28(3)355,
28(6)68,
28(7)83,
29(6)36,
29(6)121,
29(9)51,
30(1)20,
30(6)218,
30(8)1,
30(11)134,
34(9)102,
34(11)73
- large,
6(4)191,
6(4)213,
26(7)167,
26(8)86,
27(7)82,
27(7)200,
27(7)212,
27(7)341,
27(10)178,
28(3)69,
28(3)299,
28(3)343,
28(6)100,
28(6)126,
28(6)177,
28(6)278,
28(7)44,
28(7)112,
28(7)218,
28(10)374,
28(10)374-1,
29(5)31,
29(6)1,
29(6)36,
29(6)49,
29(6)73,
29(6)326,
29(8)22,
29(8)35,
29(8)94,
29(8)101,
29(8)119,
29(10)205,
29(11)86,
29(11)158,
29(11)171,
29(11)252,
29(11)274,
29(11)308,
30(6)93,
30(6)279,
30(8)199,
30(8)217,
30(11)88,
31(9)26,
31(9)37,
32(7)264,
33(7)27,
33(7)43,
33(7)51,
33(7)59,
34(3)138,
34(8)151,
34(11)1
- Larus, James R.,
27(9)262,
28(7)73,
29(11)61,
29(11)208,
29(11)297,
29(11)297-1,
30(6)291,
30(6)291-1,
30(8)68,
31(5)237,
32(5)85,
32(7)100,
32(7)240,
32(7)240,
33(5)72,
33(11)283,
34(3)37,
34(5)1,
34(5)13,
34(5)259
- little,
25(6)78,
26(4)28,
27(9)262,
28(6)177,
28(7)64,
28(7)149,
29(6)186,
29(6)230,
29(11)297,
30(3)111,
30(6)13
- loop, non-,
25(6)322
- make,
25(1)59,
25(6)78,
25(6)85-1,
25(6)150,
25(6)246,
26(8)145,
27(7)1,
27(7)82,
27(7)152,
27(7)249,
27(9)285,
27(12)61,
28(3)69,
28(3)97,
28(3)231,
28(3)347,
28(6)156,
28(7)64,
28(7)239,
29(6)24,
29(6)73,
29(6)257,
29(6)257-1,
29(6)349,
29(6)349-1,
29(8)35,
29(11)171,
29(11)196,
29(11)308,
30(3)62,
30(3)94,
30(6)93,
30(6)103,
30(6)130,
30(6)174,
30(8)1,
30(8)58,
30(8)68,
30(8)80-1,
32(10)253
- many,
25(1)59,
25(6)112,
25(6)137,
25(6)189,
25(6)283,
27(1)95,
27(5)z,
27(7)68,
27(7)82,
27(7)116,
27(7)188-1,
27(9)285,
28(3)69,
28(3)343,
28(3)345,
28(3)347,
28(6)100,
28(6)187,
28(6)237,
28(6)258,
28(7)13,
28(7)33,
28(7)54-1,
29(6)1,
29(6)36,
29(6)49,
29(6)73,
29(6)85,
29(6)171,
29(6)206,
29(6)302,
29(8)94,
29(8)101,
29(11)145,
29(11)171,
29(11)196,
29(11)219,
29(11)252,
29(11)328,
30(3)13,
30(3)94,
30(3)119,
30(6)1,
30(6)67,
30(6)103,
30(6)291,
30(8)68,
30(8)134,
30(8)217,
30(11)20-1,
30(11)134,
33(7)19,
33(7)27
- MATHEMATICS,
25(6)16,
25(6)40,
25(6)85-1,
25(6)223,
25(6)234,
25(6)246,
25(6)272,
25(6)283,
25(6)296,
25(6)337,
26(6)130,
26(6)177-1,
26(6)192,
26(6)204,
26(6)241,
26(6)256,
27(7)162,
27(7)300,
27(7)311,
27(7)331,
28(6)78-1,
28(6)112,
28(6)126,
28(6)248,
28(6)268,
28(6)278,
28(6)290,
29(6)135,
29(6)266,
30(3)1,
30(3)23,
30(3)35,
30(3)50,
30(6)32,
30(6)47,
30(6)163-1,
30(6)186,
30(6)246,
30(11)70,
31(5)54,
31(5)278,
31(5)291,
31(9)222-1,
31(9)234,
32(5)85,
32(5)171,
32(5)235,
32(5)249,
32(5)261,
32(5)287,
32(5)296-1,
33(5)15,
33(5)26-1,
33(5)60,
33(5)85-1,
33(5)97,
33(5)142,
33(11)218,
34(3)57
- miss,
28(6)177,
28(6)278,
29(11)12,
29(11)145,
29(11)158,
29(11)274,
29(11)328,
30(6)79-1,
30(6)151,
30(6)279,
30(8)179,
30(8)189,
33(5)38,
33(11)228
- natural,
25(4)73,
25(5)95,
25(6)223,
26(9)234,
27(7)249,
28(3)37,
28(7)33,
29(1)54,
29(6)230,
29(10)191,
29(10)212,
29(11)308,
29(12)58,
30(8)19,
33(9)108
- non-loop,
25(6)322
- order,
25(6)1,
25(6)16,
27(7)12,
27(7)116,
27(7)152,
28(3)299,
28(3)361,
28(6)156,
28(6)237,
28(6)278,
28(7)119,
29(6)147,
29(6)349,
29(6)349-1,
29(7)15,
29(8)1,
29(8)35,
29(8)59,
29(11)51,
29(11)86,
29(11)263,
30(3)71,
30(3)94,
30(6)116,
30(6)151,
30(6)174,
30(6)205,
30(6)233,
30(6)246,
30(8)1,
30(8)144,
30(8)189,
30(8)199,
30(11)20-1,
33(7)51
- perform,
26(6)219,
27(7)12,
27(7)32,
27(7)82,
27(7)200,
28(6)156,
28(6)177,
28(6)237,
28(8)90,
29(6)49,
29(6)206,
29(11)25,
29(11)145,
29(11)158,
29(11)171,
29(11)319,
30(3)94,
30(6)151,
30(6)163-1,
30(6)186,
30(6)205,
30(8)48,
30(8)80-1,
30(8)123,
30(8)217,
30(11)7,
30(11)20-1
- PLDI'93.,
28(6)1,
28(6)13,
28(6)26,
28(6)36,
28(6)46,
28(6)56,
28(6)68,
28(6)78-1,
28(6)90,
28(6)100,
28(6)112,
28(6)126,
28(6)139-1,
28(6)147,
28(6)156,
28(6)166,
28(6)177,
28(6)187,
28(6)197,
28(6)207-1,
28(6)217,
28(6)227,
28(6)237,
28(6)248,
28(6)258,
28(6)268,
28(6)278,
28(6)290
- predict,
28(6)187,
29(6)73,
30(3)94,
30(6)67,
30(6)79-1,
30(8)134
- predicting,
26(6)59,
27(9)85,
28(6)187,
29(6)85,
30(6)79-1,
30(11)1,
32(4)19
- prediction,
25(3)109,
27(9)76,
28(6)187,
29(6)73,
29(6)97,
29(6)196,
29(11)122,
29(11)132-1,
29(11)232,
29(11)242,
30(6)67,
30(6)79,
30(6)79-1,
30(10)108,
30(10)108-1,
30(11)1,
31(9)128,
31(9)138,
31(10)83,
33(11)170,
34(7)35,
34(8)151
- predictor,
28(6)187,
29(11)145,
30(6)79-1,
31(9)116,
31(9)116-1
- profile-based,
29(11)232
- program-based,
30(6)79-1
- rate,
27(9)248,
28(6)177,
29(6)97,
29(11)38,
29(11)86,
29(11)98,
29(11)145,
29(11)252,
29(11)274,
30(6)79-1,
30(6)279
- reach,
27(9)248
- region,
28(7)229,
29(6)85,
29(6)107,
29(6)171,
29(11)171,
29(11)297,
30(6)174,
32(5)287,
33(5)313,
33(7)75,
34(3)186
- rely,
25(6)311,
25(6)322,
27(7)55,
27(9)223,
28(6)26,
28(6)290,
29(6)1,
30(6)79-1,
30(6)246,
30(8)189,
30(11)88
- require,
25(1)59,
25(6)66,
25(6)85-1,
25(6)92,
25(6)102,
25(10)237,
27(7)1,
27(7)12,
27(7)32,
27(7)140,
27(7)311,
27(7)331,
28(3)69,
28(6)156,
28(6)227,
28(7)13,
28(7)149,
29(6)24,
29(6)36,
29(6)49,
29(6)61,
29(6)196,
29(6)218,
29(6)302,
29(6)337,
29(6)337-1,
29(8)35,
29(11)51,
29(11)297,
30(3)1,
30(3)13,
30(6)196,
30(6)233,
30(11)88,
30(11)146-1,
33(7)35,
33(7)51,
33(7)59,
33(7)83,
33(11)252
- sufficiently,
27(7)116
- term,
25(4)73,
27(7)55,
27(7)188-1,
28(6)237,
29(6)1,
29(6)121,
30(11)50,
34(1)347
- time-consuming,
27(7)82,
29(6)196,
30(6)291
- useful,
25(1)59,
25(4)51,
25(6)102,
25(6)246,
25(6)322,
25(6)337,
25(10)237,
27(7)140,
27(7)188-1,
28(6)90,
28(7)129,
28(8)90,
29(6)1,
29(6)13,
29(6)147,
29(11)12,
29(11)171,
29(11)219,
29(11)252,
30(3)13,
30(8)123,
32(3)38,
32(9)68,
33(7)19
- well,
25(6)28,
25(6)40,
27(1)95,
27(7)22,
27(9)285,
28(3)359,
28(6)36,
28(6)46,
28(6)166,
28(6)177,
28(6)187,
28(6)227,
28(7)13,
28(7)102,
29(6)186,
29(6)206,
29(6)218,
29(6)266,
29(11)2,
29(11)122,
29(11)145,
29(11)158,
29(11)308,
30(6)32,
30(8)39,
30(8)48,
30(8)80-1,
30(8)123,
30(8)217,
30(11)60,
33(7)1,
33(7)35,
33(7)75
- would,
25(6)78,
25(6)85-1,
25(6)311,
26(1)14,
27(7)212,
28(3)69,
28(3)361,
29(6)1,
29(6)85,
29(6)257,
29(6)257-1,
29(6)278,
30(8)68,
30(11)79,
33(11)252
- written,
25(6)223,
25(6)311,
27(7)200,
27(9)262,
27(12)61,
28(3)353,
28(6)100,
28(7)208,
29(6)206,
29(8)94,
30(8)207,
32(10)318
- yet,
28(6)156,
28(6)177,
29(6)186,
29(11)252,
30(3)71,
30(3)111,
30(6)13,
30(8)217,
32(10)345-3,
33(6)24,
33(6)24,
33(7)19,
33(7)27,
34(1)117