llvm.org GIT mirror llvm / 05d0265
docs: Use <Hn> as Heading elements instead of <DIV class="doc_foo">. H1 ... doc_title H2 ... doc_section H3 ... doc_subsection H4 ... doc_subsubsection git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@129736 91177308-0d34-0410-b5e6-96231b3b80d8 NAKAMURA Takumi 8 years ago
55 changed file(s) with 2604 addition(s) and 2467 deletion(s). Raw diff Collapse all Expand all
66
77
88
9 <div class="doc_title">
9 <h1>
1010 LLVM Alias Analysis Infrastructure
11 div>
11 h1>
1212
1313
1414
  • Introduction
  • 5858
    5959
    6060
    61 <div class="doc_section">
    61 <h2>
    6262 Introduction
    63 div>
    63 h2>
    6464
    6565
    6666
    9595
    9696
    9797
    98 <div class="doc_section">
    98 <h2>
    9999 AliasAnalysis Class Overview
    100 div>
    100 h2>
    101101
    102102
    103103
    124124
    125125
    126126
    127 <div class="doc_subsection">
    127 <h3>
    128128 Representation of Pointers
    129 div>
    129 h3>
    130130
    131131
    132132
    180180
    181181
    182182
    183 <div class="doc_subsection">
    183 <h3>
    184184 The alias method
    185 div>
    185 h3>
    186186
    187187
    188188

    The alias method is the primary interface used to determine whether

    196196
    197197
    198198
    199 <div class="doc_subsubsection">
    199 <h4>
    200200 Must, May, and No Alias Responses
    201 div>
    201 h4>
    202202
    203203
    204204

    The NoAlias response may be used when there is never an immediate dependence

    227227
    228228
    229229
    230 <div class="doc_subsection">
    230 <h3>
    231231 The getModRefInfo methods
    232 div>
    232 h3>
    233233
    234234
    235235
    249249
    250250
    251251
    252 <div class="doc_subsection">
    252 <h3>
    253253 Other useful AliasAnalysis methods
    254 div>
    254 h3>
    255255
    256256
    257257
    263263
    264264
    265265
    266 <div class="doc_subsubsection">
    266 <h4>
    267267 The pointsToConstantMemory method
    268 div>
    268 h4>
    269269
    270270
    271271
    278278
    279279
    280280
    281 <div class="doc_subsubsection">
    281 <h4>
    282282 The doesNotAccessMemory and
    283283 onlyReadsMemory methods
    284 div>
    284 h4>
    285285
    286286
    287287
    307307
    308308
    309309
    310 <div class="doc_section">
    310 <h2>
    311311 Writing a new AliasAnalysis Implementation
    312 div>
    312 h2>
    313313
    314314
    315315
    323323
    324324
    325325
    326 <div class="doc_subsection">
    326 <h3>
    327327 Different Pass styles
    328 div>
    328 h3>
    329329
    330330
    331331
    351351
    352352
    353353
    354 <div class="doc_subsection">
    354 <h3>
    355355 Required initialization calls
    356 div>
    356 h3>
    357357
    358358
    359359
    392392
    393393
    394394
    395 <div class="doc_subsection">
    395 <h3>
    396396 Interfaces which may be specified
    397 div>
    397 h3>
    398398
    399399
    400400
    411411
    412412
    413413
    414 <div class="doc_subsection">
    414 <h3>
    415415 AliasAnalysis chaining behavior
    416 div>
    416 h3>
    417417
    418418
    419419
    450450
    451451
    452452
    453 <div class="doc_subsection">
    453 <h3>
    454454 Updating analysis results for transformations
    455 div>
    455 h3>
    456456
    457457
    458458

    473473
    474474
    475475
    476 <div class="doc_subsubsection">The deleteValue method>
    476 <h4>The deleteValue method>
    477477
    478478
    479479 The deleteValue method is called by transformations when they remove an
    484484
    485485
    486486
    487 <div class="doc_subsubsection">The copyValue method>
    487 <h4>The copyValue method>
    488488
    489489
    490490 The copyValue method is used when a new value is introduced into the
    495495
    496496
    497497
    498 <div class="doc_subsubsection">The replaceWithNewValue method>
    498 <h4>The replaceWithNewValue method>
    499499
    500500
    501501 This method is a simple helper method that is provided to make clients easier to
    505505
    506506
    507507
    508 <div class="doc_subsubsection">The addEscapingUse method>
    508 <h4>The addEscapingUse method>
    509509
    510510
    511511

    The addEscapingUse method is used when the uses of a pointer

    527527
    528528
    529529
    530 <div class="doc_subsection">
    530 <h3>
    531531 Efficiency Issues
    532 div>
    532 h3>
    533533
    534534
    535535
    543543
    544544
    545545
    546 <div class="doc_subsection">
    546 <h3>
    547547 Limitations
    548 div>
    548 h3>
    549549
    550550
    551551
    616616
    617617
    618618
    619 <div class="doc_section">
    619 <h2>
    620620 Using alias analysis results
    621 div>
    621 h2>
    622622
    623623
    624624
    629629
    630630
    631631
    632 <div class="doc_subsection">
    632 <h3>
    633633 Using the MemoryDependenceAnalysis Pass
    634 div>
    634 h3>
    635635
    636636
    637637
    644644
    645645
    646646
    647 <div class="doc_subsection">
    647 <h3>
    648648 Using the AliasSetTracker class
    649 div>
    649 h3>
    650650
    651651
    652652
    680680
    681681
    682682
    683 <div class="doc_subsubsection">
    683 <h4>
    684684 The AliasSetTracker implementation
    685 div>
    685 h4>
    686686
    687687
    688688
    706706
    707707
    708708
    709 <div class="doc_subsection">
    709 <h3>
    710710 Using the AliasAnalysis interface directly
    711 div>
    711 h3>
    712712
    713713
    714714
    721721
    722722
    723723
    724 <div class="doc_section">
    724 <h2>
    725725 Existing alias analysis implementations and clients
    726 div>
    726 h2>
    727727
    728728
    729729
    737737
    738738
    739739
    740 <div class="doc_subsection">
    740 <h3>
    741741 Available AliasAnalysis implementations
    742 div>
    742 h3>
    743743
    744744
    745745
    751751
    752752
    753753
    754 <div class="doc_subsubsection">
    754 <h4>
    755755 The -no-aa pass
    756 div>
    756 h4>
    757757
    758758
    759759
    765765
    766766
    767767
    768 <div class="doc_subsubsection">
    768 <h4>
    769769 The -basicaa pass
    770 div>
    770 h4>
    771771
    772772
    773773
    793793
    794794
    795795
    796 <div class="doc_subsubsection">
    796 <h4>
    797797 The -globalsmodref-aa pass
    798 div>
    798 h4>
    799799
    800800
    801801
    817817
    818818
    819819
    820 <div class="doc_subsubsection">
    820 <h4>
    821821 The -steens-aa pass
    822 div>
    822 h4>
    823823
    824824
    825825
    840840
    841841
    842842
    843 <div class="doc_subsubsection">
    843 <h4>
    844844 The -ds-aa pass
    845 div>
    845 h4>
    846846
    847847
    848848
    863863
    864864
    865865
    866 <div class="doc_subsubsection">
    866 <h4>
    867867 The -scev-aa pass
    868 div>
    868 h4>
    869869
    870870
    871871
    877877
    878878
    879879
    880 <div class="doc_subsection">
    880 <h3>
    881881 Alias analysis driven transformations
    882 div>
    882 h3>
    883883
    884884
    885885 LLVM includes several alias-analysis driven transformations which can be used
    887887
    888888
    889889
    890 <div class="doc_subsubsection">
    890 <h4>
    891891 The -adce pass
    892 div>
    892 h4>
    893893
    894894
    895895
    901901
    902902
    903903
    904 <div class="doc_subsubsection">
    904 <h4>
    905905 The -licm pass
    906 div>
    906 h4>
    907907
    908908
    909909
    926926
    927927
    928928
    929 <div class="doc_subsubsection">
    929 <h4>
    930930 The -argpromotion pass
    931 div>
    931 h4>
    932932
    933933
    934934

    941941
    942942
    943943
    944 <div class="doc_subsubsection">
    944 <h4>
    945945 The -gvn, -memcpyopt, and -dse
    946946 passes
    947 div>
    947 h4>
    948948
    949949
    950950
    954954
    955955
    956956
    957 <div class="doc_subsection">
    957 <h3>
    958958 Clients for debugging and evaluation of
    959959 implementations
    960 div>
    960 h3>
    961961
    962962
    963963
    968968
    969969
    970970
    971 <div class="doc_subsubsection">
    971 <h4>
    972972 The -print-alias-sets pass
    973 div>
    973 h4>
    974974
    975975
    976976
    989989
    990990
    991991
    992 <div class="doc_subsubsection">
    992 <h4>
    993993 The -count-aa pass
    994 div>
    994 h4>
    995995
    996996
    997997
    10131013
    10141014
    10151015
    1016 <div class="doc_subsubsection">
    1016 <h4>
    10171017 The -aa-eval pass
    1018 div>
    1018 h4>
    10191019
    10201020
    10211021
    10281028
    10291029
    10301030
    1031 <div class="doc_section">
    1031 <h2>
    10321032 Memory Dependence Analysis
    1033 div>
    1033 h2>
    10341034
    10351035
    10361036
    66
    77
    88
    9 <div class="doc_title"> LLVM Bitcode File Format >
    9 <h1> LLVM Bitcode File Format>
    1010
    1111
  • Abstract
  • 1212
  • Overview
  • 4646
    4747
    4848
    49 <div class="doc_section"> Abstract>
    49 <h2>Abstract>
    5050
    5151
    5252
    5757
    5858
    5959
    60 <div class="doc_section"> Overview>
    60 <h2>Overview>
    6161
    6262
    6363
    8787
    8888
    8989
    90 <div class="doc_section"> Bitstream Format>
    90 <h2>Bitstream Format>
    9191
    9292
    9393
    116116
    117117
    118118
    119
    120 </div>
    119 <h3>
    120 Magic Numbers
    121
    121122
    122123
    123124
    129130
    130131
    131132
    132
    133 </div>
    133 <h3>
    134 Primitives
    135
    134136
    135137
    136138
    146148
    147149
    148150
    149
    150 </div>
    151 <h4>
    152 Fixed Width Integers
    153
    151154
    152155
    153156
    160163
    161164
    162165
    163
    164 Integers>
    166 >
    167 Variable Width Integers
    168
    165169
    166170
    167171
    181185
    182186
    183187
    184 <div class="doc_subsubsection"> 6-bit characters>
    188 <h4>6-bit characters>
    185189
    186190
    187191
    205209
    206210
    207211
    208 <div class="doc_subsubsection"> Word Alignment>
    212 <h4>Word Alignment>
    209213
    210214
    211215
    217221
    218222
    219223
    220
    221 </div>
    224 <h3>
    225 Abbreviation IDs
    226
    222227
    223228
    224229
    252257
    253258
    254259
    255
    256 </div>
    260 <h3>
    261 Blocks
    262
    257263
    258264
    259265
    299305
    300306
    301307
    302
    303 Encoding>
    308

    ENTER_SUBBLOCK Encoding>

    304309
    305310
    306311
    321326
    322327
    323328
    324
    325 Encoding>
    329

    END_BLOCK Encoding>

    326330
    327331
    328332
    339343
    340344
    341345
    342
    343 </div>
    346 <h3>
    347 Data Records
    348
    344349
    345350
    346351

    357362
    358363
    359364
    360
    361 Encoding>
    365

    UNABBREV_RECORD Encoding>

    362366
    363367
    364368
    384388
    385389
    386390
    387
    388 Encoding>
    391

    Abbreviated Record Encoding>

    389392
    390393
    391394
    409412
    410413
    411414
    412
    413 </div>
    415 <h3>
    416 Abbreviations
    417
    414418
    415419
    416420

    433437
    434438
    435439
    436
    437 Encoding>
    440

    DEFINE_ABBREV Encoding>

    438441
    439442
    440443
    552555
    553556
    554557
    555
    556 </div>
    558 <h3>
    559 Standard Blocks
    560
    557561
    558562
    559563
    567571
    568572
    569573
    570
    571 Block>
    574

    #0 - BLOCKINFO Block>

    572575
    573576
    574577
    620623
    621624
    622625
    623 <div class="doc_section"> Bitcode Wrapper Format>
    626 <h2>Bitcode Wrapper Format>
    624627
    625628
    626629
    651654
    652655
    653656
    654 <div class="doc_section"> LLVM IR Encoding>
    657 <h2>LLVM IR Encoding>
    655658
    656659
    657660
    668671
    669672
    670673
    671
    672
    673
    674
    675 <div class="doc_subsubsection">LLVM IR Magic Number>
    674 <h3>
    675 Basics
    676
    677
    678
    679

    LLVM IR Magic Number

    676680
    677681
    678682
    694698
    695699
    696700
    697 <div class="doc_subsubsection">Signed VBRs>
    701 <h4>Signed VBRs>
    698702
    699703
    700704
    727731
    728732
    729733
    730 <div class="doc_subsubsection">LLVM IR Blocks>
    734 <h4>LLVM IR Blocks>
    731735
    732736
    733737
    758762
    759763
    760764
    761
    762 </div>
    765 <h3>
    766 MODULE_BLOCK Contents
    767
    763768
    764769
    765770
    784789
    785790
    786791
    787
    788 </div>
    792 <h4>MODULE_CODE_VERSION Record>
    789793
    790794
    791795
    797801
    798802
    799803
    800
    801 </div>
    804 <h4>MODULE_CODE_TRIPLE Record>
    802805
    803806
    804807

    [TRIPLE, ...string...]

    809812
    810813
    811814
    812
    813 </div>
    815 <h4>MODULE_CODE_DATALAYOUT Record>
    814816
    815817
    816818

    [DATALAYOUT, ...string...]

    821823
    822824
    823825
    824
    825 </div>
    826 <h4>MODULE_CODE_ASM Record>
    826827
    827828
    828829

    [ASM, ...string...]

    833834
    834835
    835836
    836
    837 </div>
    837 <h4>MODULE_CODE_SECTIONNAME Record>
    838838
    839839
    840840

    [SECTIONNAME, ...string...]

    849849
    850850
    851851
    852
    853 </div>
    852 <h4>MODULE_CODE_DEPLIB Record>
    854853
    855854
    856855

    [DEPLIB, ...string...]

    863862
    864863
    865864
    866
    867 </div>
    865 <h4>MODULE_CODE_GLOBALVAR Record>
    868866
    869867
    870868

    [GLOBALVAR, pointer type, isconst, initid, linkage, alignment, section, visibility, threadlocal]

    928926
    929927
    930928
    931
    932 </div>
    929 <h4>MODULE_CODE_FUNCTION Record>
    933930
    934931
    935932
    985982
    986983
    987984
    988
    989 </div>
    985 <h4>MODULE_CODE_ALIAS Record>
    990986
    991987
    992988
    10101006
    10111007
    10121008
    1013
    1014 </div>
    1009 <h4>MODULE_CODE_PURGEVALS Record>
    10151010
    10161011
    10171012

    [PURGEVALS, numvals]

    10241019
    10251020
    10261021
    1027
    1028 </div>
    1022 <h4>MODULE_CODE_GCNAME Record>
    10291023
    10301024
    10311025

    [GCNAME, ...string...]

    10391033
    10401034
    10411035
    1042
    1043 </div>
    1036 <h3>
    1037 PARAMATTR_BLOCK Contents
    1038
    10441039
    10451040
    10461041
    10601055
    10611056
    10621057
    1063
    1064 </div>
    1058 <h4>PARAMATTR_CODE_ENTRY Record>
    10651059
    10661060
    10671061
    11051099
    11061100
    11071101
    1108
    1109 </div>
    1102 <h3>
    1103 TYPE_BLOCK Contents
    1104
    11101105
    11111106
    11121107
    11261121
    11271122
    11281123
    1129
    1130 </div>
    1124 <h4>TYPE_CODE_NUMENTRY Record>
    11311125
    11321126
    11331127
    11411135
    11421136
    11431137
    1144
    1145 </div>
    1138 <h4>TYPE_CODE_VOID Record>
    11461139
    11471140
    11481141
    11541147
    11551148
    11561149
    1157
    1158 </div>
    1150 <h4>TYPE_CODE_FLOAT Record>
    11591151
    11601152
    11611153
    11671159
    11681160
    11691161
    1170
    1171 </div>
    1162 <h4>TYPE_CODE_DOUBLE Record>
    11721163
    11731164
    11741165
    11801171
    11811172
    11821173
    1183
    1184 </div>
    1174 <h4>TYPE_CODE_LABEL Record>
    11851175
    11861176
    11871177
    11931183
    11941184
    11951185
    1196
    1197 </div>
    1186 <h4>TYPE_CODE_OPAQUE Record>
    11981187
    11991188
    12001189
    12071196
    12081197
    12091198
    1210
    1211 </div>
    1199 <h4>TYPE_CODE_INTEGER Record>
    12121200
    12131201
    12141202
    12211209
    12221210
    12231211
    1224
    1225 </div>
    1212 <h4>TYPE_CODE_POINTER Record>
    12261213
    12271214
    12281215
    12421229
    12431230
    12441231
    1245
    1246 </div>
    1232 <h4>TYPE_CODE_FUNCTION Record>
    12471233
    12481234
    12491235
    12671253
    12681254
    12691255
    1270
    1271 </div>
    1256 <h4>TYPE_CODE_STRUCT Record>
    12721257
    12731258
    12741259
    12861271
    12871272
    12881273
    1289
    1290 </div>
    1274 <h4>TYPE_CODE_ARRAY Record>
    12911275
    12921276
    12931277
    13041288
    13051289
    13061290
    1307
    1308 </div>
    1291 <h4>TYPE_CODE_VECTOR Record>
    13091292
    13101293
    13111294
    13221305
    13231306
    13241307
    1325
    1326 </div>
    1308 <h4>TYPE_CODE_X86_FP80 Record>
    13271309
    13281310
    13291311
    13351317
    13361318
    13371319
    1338
    1339 </div>
    1320 <h4>TYPE_CODE_FP128 Record>
    13401321
    13411322
    13421323
    13481329
    13491330
    13501331
    1351
    1352 </div>
    1332 <h4>TYPE_CODE_PPC_FP128 Record>
    13531333
    13541334
    13551335
    13611341
    13621342
    13631343
    1364
    1365 </div>
    1344 <h4>TYPE_CODE_METADATA Record>
    13661345
    13671346
    13681347
    13741353
    13751354
    13761355
    1377
    1378 </div>
    1356 <h3>
    1357 CONSTANTS_BLOCK Contents
    1358
    13791359
    13801360
    13811361
    13861366
    13871367
    13881368
    1389
    1390 </div>
    1369 <h3>
    1370 FUNCTION_BLOCK Contents
    1371
    13911372
    13921373
    13931374
    14081389
    14091390
    14101391
    1411
    1412 </div>
    1392 <h3>
    1393 TYPE_SYMTAB_BLOCK Contents
    1394
    14131395
    14141396
    14151397
    14211403
    14221404
    14231405
    1424
    1425 </div>
    1406 <h4>TST_CODE_ENTRY Record>
    14261407
    14271408
    14281409
    14371418
    14381419
    14391420
    1440
    1441 </div>
    1421 <h3>
    1422 VALUE_SYMTAB_BLOCK Contents
    1423
    14421424
    14431425
    14441426
    14491431
    14501432
    14511433
    1452
    1453 </div>
    1434 <h3>
    1435 METADATA_BLOCK Contents
    1436
    14541437
    14551438
    14561439
    14611444
    14621445
    14631446
    1464
    1465 </div>
    1447 <h3>
    1448 METADATA_ATTACHMENT Contents
    1449
    14661450
    14671451
    14681452
    55
    66
    77
    8 <div class="doc_title">
    8 <h1>
    99 LLVM bugpoint tool: design and usage
    10 div>
    10 h1>
    1111
    1212
    1313
  • Description
  • 2626
    2727
    2828
    29 <div class="doc_section">
    29 <h2>
    3030 Description
    31 div>
    31 h2>
    3232
    3333
    3434
    4949
    5050
    5151
    52 <div class="doc_section">
    52 <h2>
    5353 Design Philosophy
    54 div>
    54 h2>
    5555
    5656
    5757
    7070
    7171
    7272
    73 <div class="doc_subsection">
    73 <h3>
    7474 Automatic Debugger Selection
    75 div>
    75 h3>
    7676
    7777
    7878
    103103
    104104
    105105
    106 <div class="doc_subsection">
    106 <h3>
    107107 Crash debugger
    108 div>
    108 h3>
    109109
    110110
    111111
    128128
    129129
    130130
    131 <div class="doc_subsection">
    131 <h3>
    132132 Code generator debugger
    133 div>
    133 h3>
    134134
    135135
    136136
    149149
    150150
    151151
    152 <div class="doc_subsection">
    152 <h3>
    153153 Miscompilation debugger
    154 div>
    154 h3>
    155155
    156156
    157157
    166166
    167167
    168168
    169 <div class="doc_section">
    169 <h2>
    170170 Advice for using bugpoint
    171 div>
    171 h2>
    172172
    173173
    174174
    55
    66
    77
    8 <div class="doc_title">
    8 <h1>
    99 Building LLVM with CMake
    10 div>
    10 h1>
    1111
    1212
    1313
  • Introduction
  • 3535
    3636
    3737
    38 <div class="doc_section">
    38 <h2>
    3939 Introduction
    40 div>
    40 h2>
    4141
    4242
    4343
    5858
    5959
    6060
    61 <div class="doc_section">
    61 <h2>
    6262 Quick start
    63 div>
    63 h2>
    6464
    6565
    6666
    111111
    112112
    113113
    114 <div class="doc_section">
    114 <h2>
    115115 Basic CMake usage
    116 div>
    116 h2>
    117117
    118118
    119119
    159159
    160160
    161161
    162 <div class="doc_section">
    162 <h2>
    163163 Options and variables
    164 div>
    164 h2>
    165165
    166166
    167167
    196196
    197197
    198198
    199 <div class="doc_subsection">
    199 <h3>
    200200 Frequently-used CMake variables
    201 div>
    201 h3>
    202202
    203203
    204204
    239239
    240240
    241241
    242 <div class="doc_subsection">
    242 <h3>
    243243 LLVM-specific variables
    244 div>
    244 h3>
    245245
    246246
    247247
    357357
    358358
    359359
    360 <div class="doc_section">
    360 <h2>
    361361 Executing the test suite
    362 div>
    362 h2>
    363363
    364364
    365365
    377377
    378378
    379379
    380 <div class="doc_section">
    380 <h2>
    381381 Cross compiling
    382 div>
    382 h2>
    383383
    384384
    385385
    398398
    399399
    400400
    401 <div class="doc_section">
    401 <h2>
    402402 Embedding LLVM in your project
    403 div>
    403 h2>
    404404
    405405
    406406
    461461
    462462
    463463
    464 <div class="doc_subsection">
    464 <h3>
    465465 Developing LLVM pass out of source
    466 div>
    466 h3>
    467467
    468468
    469469
    518518
    519519
    520520
    521 <div class="doc_section">
    521 <h2>
    522522 Compiler/Platform specific topics
    523 div>
    523 h2>
    524524
    525525
    526526
    529529
    530530
    531531
    532 <div class="doc_subsection">
    532 <h3>
    533533 Microsoft Visual C++
    534 div>
    534 h3>
    535535
    536536
    537537
    1818
    1919
    2020
    21 <div class="doc_title">
    21 <h1>
    2222 The LLVM Target-Independent Code Generator
    23 div>
    23 h1>
    2424
    2525
    2626
  • Introduction
  • 126126
    127127
    128128
    129 <div class="doc_section">
    129 <h2>
    130130 Introduction
    131 div>
    131 h2>
    132132
    133133
    134134
    190190
    191191
    192192
    193 <div class="doc_subsection">
    193 <h3>
    194194 Required components in the code generator
    195 div>
    195 h3>
    196196
    197197
    198198
    222222
    223223
    224224
    225 <div class="doc_subsection">
    225 <h3>
    226226 The high-level design of the code generator
    227 div>
    227 h3>
    228228
    229229
    230230
    296296
    297297
    298298
    299 <div class="doc_subsection">
    299 <h3>
    300300 Using TableGen for target description
    301 div>
    301 h3>
    302302
    303303
    304304
    324324
    325325
    326326
    327 <div class="doc_section">
    327 <h2>
    328328 Target description classes
    329 div>
    329 h2>
    330330
    331331
    332332
    348348
    349349
    350350
    351 <div class="doc_subsection">
    351 <h3>
    352352 The TargetMachine class
    353 div>
    353 h3>
    354354
    355355
    356356
    368368
    369369
    370370
    371 <div class="doc_subsection">
    371 <h3>
    372372 The TargetData class
    373 div>
    373 h3>
    374374
    375375
    376376
    384384
    385385
    386386
    387 <div class="doc_subsection">
    387 <h3>
    388388 The TargetLowering class
    389 div>
    389 h3>
    390390
    391391
    392392
    410410
    411411
    412412
    413 <div class="doc_subsection">
    413 <h3>
    414414 The TargetRegisterInfo class
    415 div>
    415 h3>
    416416
    417417
    418418
    444444
    445445
    446446
    447 <div class="doc_subsection">
    447 <h3>
    448448 The TargetInstrInfo class
    449 div>
    449 h3>
    450450
    451451
    452452
    462462
    463463
    464464
    465 <div class="doc_subsection">
    465 <h3>
    466466 The TargetFrameInfo class
    467 div>
    467 h3>
    468468
    469469
    470470
    478478
    479479
    480480
    481 <div class="doc_subsection">
    481 <h3>
    482482 The TargetSubtarget class
    483 div>
    483 h3>
    484484
    485485
    486486
    494494
    495495
    496496
    497 <div class="doc_subsection">
    497 <h3>
    498498 The TargetJITInfo class
    499 div>
    499 h3>
    500500
    501501
    502502
    509509
    510510
    511511
    512 <div class="doc_section">
    512 <h2>
    513513 Machine code description classes
    514 div>
    514 h2>
    515515
    516516
    517517
    530530
    531531
    532532
    533 <div class="doc_subsection">
    533 <h3>
    534534 The MachineInstr class
    535 div>
    535 h3>
    536536
    537537
    538538
    578578
    579579
    580580
    581 <div class="doc_subsubsection">
    581 <h4>
    582582 Using the MachineInstrBuilder.h functions
    583 div>
    583 h4>
    584584
    585585
    586586
    629629
    630630
    631631
    632 <div class="doc_subsubsection">
    632 <h4>
    633633 Fixed (preassigned) registers
    634 div>
    634 h4>
    635635
    636636
    637637
    701701
    702702
    703703
    704 <div class="doc_subsubsection">
    704 <h4>
    705705 Machine code in SSA form
    706 div>
    706 h4>
    707707
    708708
    709709
    719719
    720720
    721721
    722 <div class="doc_subsection">
    722 <h3>
    723723 The MachineBasicBlock class
    724 div>
    724 h3>
    725725
    726726
    727727
    736736
    737737
    738738
    739 <div class="doc_subsection">
    739 <h3>
    740740 The MachineFunction class
    741 div>
    741 h3>
    742742
    743743
    744744
    755755
    756756
    757757
    758 <div class="doc_section">
    758 <h2>
    759759 The "MC" Layer
    760 div>
    760 h2>
    761761
    762762
    763763
    782782
    783783
    784784
    785 <div class="doc_subsection">
    785 <h3>
    786786 The MCStreamer API
    787 div>
    787 h3>
    788788
    789789
    790790
    816816
    817817
    818818
    819 <div class="doc_subsection">
    819 <h3>
    820820 The MCContext class
    821 div>
    821 h3>
    822822
    823823
    824824
    831831
    832832
    833833
    834 <div class="doc_subsection">
    834 <h3>
    835835 The MCSymbol class
    836 div>
    836 h3>
    837837
    838838
    839839
    863863
    864864
    865865
    866 <div class="doc_subsection">
    866 <h3>
    867867 The MCSection class
    868 div>
    868 h3>
    869869
    870870
    871871
    881881
    882882
    883883
    884 <div class="doc_subsection">
    884 <h3>
    885885 The MCInst class
    886 div>
    886 h3>
    887887
    888888
    889889
    905905
    906906
    907907
    908 <div class="doc_section">
    908 <h2>
    909909 Target-independent code generation algorithms
    910 div>
    910 h2>
    911911
    912912
    913913
    919919
    920920
    921921
    922 <div class="doc_subsection">
    922 <h3>
    923923 Instruction Selection
    924 div>
    924 h3>
    925925
    926926
    927927
    938938
    939939
    940940
    941 <div class="doc_subsubsection">
    941 <h4>
    942942 Introduction to SelectionDAGs
    943 div>
    943 h4>
    944944
    945945
    946946
    10001000
    10011001
    10021002
    1003 <div class="doc_subsubsection">
    1003 <h4>
    10041004 SelectionDAG Instruction Selection Process
    1005 div>
    1005 h4>
    10061006
    10071007
    10081008
    10811081
    10821082
    10831083
    1084 <div class="doc_subsubsection">
    1084 <h4>
    10851085 Initial SelectionDAG Construction
    1086 div>
    1086 h4>
    10871087
    10881088
    10891089
    11011101
    11021102
    11031103
    1104 <div class="doc_subsubsection">
    1104 <h4>
    11051105 SelectionDAG LegalizeTypes Phase
    1106 div>
    1106 h4>
    11071107
    11081108
    11091109
    11341134
    11351135
    11361136
    1137 <div class="doc_subsubsection">
    1137 <h4>
    11381138 SelectionDAG Legalize Phase
    1139 div>
    1139 h4>
    11401140
    11411141
    11421142
    11661166
    11671167
    11681168
    1169
    1170 SelectionDAG Optimization Phase: the DAG
    1171 Combiner
    1172 </div>
    1169 <h4>
    1170
    1171 SelectionDAG Optimization Phase: the DAG Combiner
    1172
    1173
    11731174
    11741175
    11751176
    12011202
    12021203
    12031204
    1204 <div class="doc_subsubsection">
    1205 <h4>
    12051206 SelectionDAG Select Phase
    1206 div>
    1207 h4>
    12071208
    12081209
    12091210
    13621363
    13631364
    13641365
    1365 <div class="doc_subsubsection">
    1366 <h4>
    13661367 SelectionDAG Scheduling and Formation Phase
    1367 div>
    1368 h4>
    13681369
    13691370
    13701371
    13831384
    13841385
    13851386
    1386 <div class="doc_subsubsection">
    1387 <h4>
    13871388 Future directions for the SelectionDAG
    1388 div>
    1389 h4>
    13891390
    13901391
    13911392
    13981399
    13991400
    14001401
    1401 <div class="doc_subsection">
    1402 <h3>
    14021403 SSA-based Machine Code Optimizations
    1403 div>
    1404 h3>
    14041405

    To Be Written

    14051406
    14061407
    1407 <div class="doc_subsection">
    1408 <h3>
    14081409 Live Intervals
    1409 div>
    1410 h3>
    14101411
    14111412
    14121413
    14191420
    14201421
    14211422
    1422 <div class="doc_subsubsection">
    1423 <h4>
    14231424 Live Variable Analysis
    1424 div>
    1425 h4>
    14251426
    14261427
    14271428
    14651466
    14661467
    14671468
    1468 <div class="doc_subsubsection">
    1469 <h4>
    14691470 Live Intervals Analysis
    1470 div>
    1471 h4>
    14711472
    14721473
    14731474
    14851486
    14861487
    14871488
    1488 <div class="doc_subsection">
    1489 <h3>
    14891490 Register Allocation
    1490 div>
    1491 h3>
    14911492
    14921493
    14931494
    15031504
    15041505
    15051506
    1506 <div class="doc_subsubsection">
    1507 <h4>
    15071508 How registers are represented in LLVM
    1508 div>
    1509 h4>
    15091510
    15101511
    15111512
    16161617
    16171618
    16181619
    1619 <div class="doc_subsubsection">
    1620 <h4>
    16201621 Mapping virtual registers to physical registers
    1621 div>
    1622 h4>
    16221623
    16231624
    16241625
    16661667
    16671668
    16681669
    1669 <div class="doc_subsubsection">
    1670 <h4>
    16701671 Handling two address instructions
    1671 div>
    1672 h4>
    16721673
    16731674
    16741675
    17021703
    17031704
    17041705
    1705 <div class="doc_subsubsection">
    1706 <h4>
    17061707 The SSA deconstruction phase
    1707 div>
    1708 h4>
    17081709
    17091710
    17101711
    17261727
    17271728
    17281729
    1729 <div class="doc_subsubsection">
    1730 <h4>
    17301731 Instruction folding
    1731 div>
    1732 h4>
    17321733
    17331734
    17341735
    17631764
    17641765
    17651766
    1766 <div class="doc_subsubsection">
    1767 <h4>
    17671768 Built in register allocators
    1768 div>
    1769 h4>
    17691770
    17701771
    17711772
    18051806
    18061807
    18071808
    1808 <div class="doc_subsection">
    1809 <h3>
    18091810 Prolog/Epilog Code Insertion
    1810 div>
    1811 h3>
    18111812

    To Be Written

    18121813
    1813 <div class="doc_subsection">
    1814 <h3>
    18141815 Late Machine Code Optimizations
    1815 div>
    1816 h3>
    18161817

    To Be Written

    18171818
    18181819
    1819 <div class="doc_subsection">
    1820 <h3>
    18201821 Code Emission
    1821 div>
    1822 h3>
    18221823
    18231824
    18241825
    18811882
    18821883
    18831884
    1884 <div class="doc_section">
    1885 <h2>
    18851886 Implementing a Native Assembler
    1886 div>
    1887 h2>
    18871888
    18881889
    18891890
    18981899
    18991900
    19001901
    1901 <div class="doc_subsection" id="na_instparsing">Instruction Parsing>
    1902 <h3 id="na_instparsing">Instruction Parsing>
    19021903
    19031904

    To Be Written

    19041905
    19051906
    19061907
    1907 <div class="doc_subsection" id="na_instaliases">
    1908 <h3 id="na_instaliases">
    19081909 Instruction Alias Processing
    1909 div>
    1910 h3>
    19101911
    19111912
    19121913

    Once the instruction is parsed, it enters the MatchInstructionImpl function.

    19241925
    19251926
    19261927
    1927 <div class="doc_subsubsection">Mnemonic Aliases>
    1928 <h4>Mnemonic Aliases>
    19281929
    19291930
    19301931
    19641965
    19651966
    19661967
    1967 <div class="doc_subsubsection">Instruction Aliases>
    1968 <h4>Instruction Aliases>
    19681969
    19691970
    19701971
    20302031
    20312032
    20322033
    2033 <div class="doc_subsection" id="na_matching">Instruction Matching>
    2034 <h3 id="na_matching">Instruction Matching>
    20342035
    20352036

    To Be Written

    20362037
    20382039
    20392040
    20402041
    2041 <div class="doc_section">
    2042 <h2>
    20422043 Target-specific Implementation Notes
    2043 div>
    2044 h2>
    20442045
    20452046
    20462047
    20522053
    20532054
    20542055
    2055 <div class="doc_subsection">
    2056 <h3>
    20562057 Target Feature Matrix
    2057 div>
    2058 h3>
    20582059
    20592060
    20602061
    22302231
    22312232
    22322233
    2233 <div class="doc_subsubsection" id="feat_reliable">Is Generally Reliable>
    2234 <h4 id="feat_reliable">Is Generally Reliable>
    22342235
    22352236
    22362237

    This box indicates whether the target is considered to be production quality.

    22402241
    22412242
    22422243
    2243 <div class="doc_subsubsection" id="feat_asmparser">Assembly Parser>
    2244 <h4 id="feat_asmparser">Assembly Parser>
    22442245
    22452246
    22462247

    This box indicates whether the target supports parsing target specific .s

    22522253
    22532254
    22542255
    2255 <div class="doc_subsubsection" id="feat_disassembler">Disassembler>
    2256 <h4 id="feat_disassembler">Disassembler>
    22562257
    22572258
    22582259

    This box indicates whether the target supports the MCDisassembler API for

    22612262
    22622263
    22632264
    2264 <div class="doc_subsubsection" id="feat_inlineasm">Inline Asm>
    2265 <h4 id="feat_inlineasm">Inline Asm>
    22652266
    22662267
    22672268

    This box indicates whether the target supports most popular inline assembly

    22732274
    22742275
    22752276
    2276 <div class="doc_subsubsection" id="feat_jit">JIT Support>
    2277 <h4 id="feat_jit">JIT Support>
    22772278
    22782279
    22792280

    This box indicates whether the target supports the JIT compiler through

    22852286
    22862287
    22872288
    2288 <div class="doc_subsubsection" id="feat_objectwrite">.o File Writing>
    2289 <h4 id="feat_objectwrite">.o File Writing>
    22892290
    22902291
    22912292
    23012302
    23022303
    23032304
    2304 <div class="doc_subsubsection" id="feat_tailcall">Tail Calls>
    2305 <h4 id="feat_tailcall">Tail Calls>
    23052306
    23062307
    23072308
    23162317
    23172318
    23182319
    2319 <div class="doc_subsection">
    2320 <h3>
    23202321 Tail call optimization
    2321 div>
    2322 h3>
    23222323
    23232324
    23242325
    23822383
    23832384
    23842385
    2385 <div class="doc_subsection">
    2386 <h3>
    23862387 Sibling call optimization
    2387 div>
    2388 h3>
    23882389
    23892390
    23902391
    24262427
    24272428
    24282429
    2429 <div class="doc_subsection">
    2430 <h3>
    24302431 The X86 backend
    2431 div>
    2432 h3>
    24322433
    24332434
    24342435
    24392440
    24402441
    24412442
    2442 <div class="doc_subsubsection">
    2443 <h4>
    24432444 X86 Target Triples supported
    2444 div>
    2445 h4>
    24452446
    24462447
    24472448
    24682469
    24692470
    24702471
    2471 <div class="doc_subsubsection">
    2472 <h4>
    24722473 X86 Calling Conventions supported
    2473 div>
    2474 h4>
    24742475
    24752476
    24762477
    24882489
    24892490
    24902491
    2491 <div class="doc_subsubsection">
    2492 <h4>
    24922493 Representing X86 addressing modes in MachineInstrs
    2493 div>
    2494 h4>
    24942495
    24952496
    24962497
    25252526
    25262527
    25272528
    2528 <div class="doc_subsubsection">
    2529 <h4>
    25292530 X86 address spaces supported
    2530 div>
    2531 h4>
    25312532
    25322533
    25332534
    25702571
    25712572
    25722573
    2573 <div class="doc_subsubsection">
    2574 <h4>
    25742575 Instruction naming
    2575 div>
    2576 h4>
    25762577
    25772578
    25782579
    25912592
    25922593
    25932594
    2594 <div class="doc_subsection">
    2595 <h3>
    25952596 The PowerPC backend
    2596 div>
    2597 h3>
    25972598
    25982599
    25992600
    26042605
    26052606
    26062607
    2607 <div class="doc_subsubsection">
    2608 <h4>
    26082609 LLVM PowerPC ABI
    2609 div>
    2610 h4>
    26102611
    26112612
    26122613
    26242625
    26252626
    26262627
    2627 <div class="doc_subsubsection">
    2628 <h4>
    26282629 Frame Layout
    2629 div>
    2630 h4>
    26302631
    26312632
    26322633
    27712772
    27722773
    27732774
    2774 <div class="doc_subsubsection">
    2775 <h4>
    27752776 Prolog/Epilog
    2776 div>
    2777 h4>
    27772778
    27782779
    27792780
    27882789
    27892790
    27902791
    2791 <div class="doc_subsubsection">
    2792 <h4>
    27922793 Dynamic Allocation
    2793 div>
    2794 h4>
    27942795
    27952796
    27962797
    66
    77
    88
    9 <div class="doc_title">
    9 <h1>
    1010 LLVM Coding Standards
    11 div>
    11 h1>
    1212
    1313
    1414
  • Introduction
  • 8282
    8383
    8484
    85 <div class="doc_section">
    85 <h2>
    8686 Introduction
    87 div>
    87 h2>
    8888
    8989
    9090
    116116
    117117
    118118
    119 <div class="doc_section">
    119 <h2>
    120120 Mechanical Source Issues
    121 div>
    121 h2>
    122122
    123123
    124124
    125 <div class="doc_subsection">
    125 <h3>
    126126 Source Code Formatting
    127
    128
    129
    130 <div class="doc_subsubsection">
    127 </h3>
    128
    129
    130

    131131 Commenting
    132 div>
    132 h4>
    133133
    134134
    135135
    207207
    208208
    209209
    210 <div class="doc_subsubsection">
    210 <h4>
    211211 Comment Formatting
    212 div>
    212 h4>
    213213
    214214
    215215
    232232
    233233
    234234
    235 <div class="doc_subsubsection">
    235 <h4>
    236236 #include Style
    237 div>
    237 h4>
    238238
    239239
    240240
    272272
    273273
    274274
    275 <div class="doc_subsubsection">
    275 <h4>
    276276 Source Code Width
    277 div>
    277 h4>
    278278
    279279
    280280
    297297
    298298
    299299
    300 <div class="doc_subsubsection">
    300 <h4>
    301301 Use Spaces Instead of Tabs
    302 div>
    302 h4>
    303303
    304304
    305305
    318318
    319319
    320320
    321 <div class="doc_subsubsection">
    321 <h4>
    322322 Indent Code Consistently
    323 div>
    323 h4>
    324324
    325325
    326326
    332332
    333333
    334334
    335 <div class="doc_subsection">
    335 <h3>
    336336 Compiler Issues
    337
    338
    339
    340
    341 <div class="doc_subsubsection">
    337 </h3>
    338
    339
    340
    341

    342342 Treat Compiler Warnings Like Errors
    343 div>
    343 h4>
    344344
    345345
    346346
    392392
    393393
    394394
    395 <div class="doc_subsubsection">
    395 <h4>
    396396 Write Portable Code
    397 div>
    397 h4>
    398398
    399399
    400400
    411411
    412412
    413413
    414 <div class="doc_subsubsection">
    414 <h4>
    415415 Do not use RTTI or Exceptions
    416 div>
    416 h4>
    417417
    418418
    419419

    In an effort to reduce code and executable size, LLVM does not use RTTI

    432432
    433433
    434434
    435 <div class="doc_subsubsection">
    435 <h4>
    436436 Use of class and struct Keywords
    437 div>
    437 h4>
    438438
    439439
    440440

    In C++, the class and struct keywords can be used almost

    454454
    455455
    456456
    457 <div class="doc_section">
    457 <h2>
    458458 Style Issues
    459 div>
    459 h2>
    460460
    461461
    462462
    463463
    464 <div class="doc_subsection">
    464 <h3>
    465465 The High-Level Issues
    466 div>
    466 h3>
    467467
    468468
    469469
    470470
    471 <div class="doc_subsubsection">
    471 <h4>
    472472 A Public Header File is a Module
    473 div>
    473 h4>
    474474
    475475
    476476
    498498
    499499
    500500
    501 <div class="doc_subsubsection">
    501 <h4>
    502502 #include as Little as Possible
    503 div>
    503 h4>
    504504
    505505
    506506
    527527
    528528
    529529
    530 <div class="doc_subsubsection">
    530 <h4>
    531531 Keep "Internal" Headers Private
    532 div>
    532 h4>
    533533
    534534
    535535
    548548
    549549
    550550
    551 <div class="doc_subsubsection">
    551 <h4>
    552552 Use Early Exits and continue to Simplify Code
    553 div>
    553 h4>
    554554
    555555
    556556
    657657
    658658
    659659
    660 <div class="doc_subsubsection">
    660 <h4>
    661661 Don't use else after a return
    662 div>
    662 h4>
    663663
    664664
    665665
    740740
    741741
    742742
    743 <div class="doc_subsubsection">
    743 <h4>
    744744 Turn Predicate Loops into Predicate Functions
    745 div>
    745 h4>
    746746
    747747
    748748
    803803
    804804
    805805
    806 <div class="doc_subsection">
    806 <h3>
    807807 The Low-Level Issues
    808 div>
    808 h3>
    809809
    810810
    811811
    812812
    813
    814 Name Types, Functions, Variables, and Enumerators Properly
    815 </div>
    813 <h4>
    814
    815 Name Types, Functions, Variables, and Enumerators Properly
    816
    817
    816818
    817819
    818820
    893895
    894896
    895897
    896 <div class="doc_subsubsection">
    898 <h4>
    897899 Assert Liberally
    898 div>
    900 h4>
    899901
    900902
    901903
    996998
    997999
    9981000
    999 <div class="doc_subsubsection">
    1001 <h4>
    10001002 Do Not Use 'using namespace std'
    1001 div>
    1003 h4>
    10021004
    10031005
    10041006
    10341036
    10351037
    10361038
    1037
    1038 Provide a Virtual Method Anchor for Classes
    1039 in Headers
    1040 </div>
    1039 <h4>
    1040
    1041 Provide a Virtual Method Anchor for Classes in Headers
    1042
    1043
    10411044
    10421045
    10431046
    10511054
    10521055
    10531056
    1054 <div class="doc_subsubsection">
    1057 <h4>
    10551058 Don't evaluate end() every time through a loop
    1056 div>
    1059 h4>
    10571060
    10581061
    10591062
    11131116
    11141117
    11151118
    1116 <div class="doc_subsubsection">
    1119 <h4>
    11171120 #include <iostream> is Forbidden
    1118 div>
    1121 h4>
    11191122
    11201123
    11211124
    11481151
    11491152
    11501153
    1151 <div class="doc_subsubsection">
    1154 <h4>
    11521155 Use raw_ostream
    1153 div>
    1156 h4>
    11541157
    11551158
    11561159
    11681171
    11691172
    11701173
    1171 <div class="doc_subsubsection">
    1174 <h4>
    11721175 Avoid std::endl
    1173 div>
    1176 h4>
    11741177
    11751178
    11761179
    11921195
    11931196
    11941197
    1195 <div class="doc_subsection">
    1198 <h3>
    11961199 Microscopic Details
    1197 div>
    1200 h3>
    11981201
    11991202
    12001203

    This section describes preferred low-level formatting guidelines along with

    12011204 reasoning on why we prefer them.

    12021205
    12031206
    1204 <div class="doc_subsubsection">
    1207 <h4>
    12051208 Spaces Before Parentheses
    1206 div>
    1209 h4>
    12071210
    12081211
    12091212
    12591262
    12601263
    12611264
    1262 <div class="doc_subsubsection">
    1265 <h4>
    12631266 Prefer Preincrement
    1264 div>
    1267 h4>
    12651268
    12661269
    12671270
    12791282
    12801283
    12811284
    1282 <div class="doc_subsubsection">
    1285 <h4>
    12831286 Namespace Indentation
    1284 div>
    1287 h4>
    12851288
    12861289
    12871290
    13671370
    13681371
    13691372
    1370 <div class="doc_subsubsection">
    1373 <h4>
    13711374 Anonymous Namespaces
    1372 div>
    1375 h4>
    13731376
    13741377
    13751378
    14541457
    14551458
    14561459
    1457 <div class="doc_section">
    1460 <h2>
    14581461 See Also
    1459 div>
    1462 h2>
    14601463
    14611464
    14621465
    66
    77
    88
    9 <div class="doc_title">
    9 <h1>
    1010 LLVM Command Guide
    11 div>
    11 h1>
    1212
    1313
    1414
    2222
    2323
    2424
    25 <div class="doc_section">
    25 <h2>
    2626 Basic Commands
    27 div>
    27 h2>
    2828
    2929
    3030
    7979
    8080
    8181
    82 <div class="doc_section">
    82 <h2>
    8383 C and C++ Front-end Commands
    84 div>
    84 h2>
    8585
    8686
    8787
    9898
    9999
    100100
    101 <div class="doc_section">
    101 <h2>
    102102 Debugging Tools
    103 div>
    103 h2>
    104104
    105105
    106106
    122122
    123123
    124124
    125 <div class="doc_section">
    125 <h2>
    126126 Internal Tools
    127 div>
    127 h2>
    128128
    129129
    130130
    77
    88
    99
    10 <div class="doc_title">
    10 <h1>
    1111 CommandLine 2.0 Library Manual
    12 div>
    12 h1>
    1313
    1414
    1515
  • Introduction
  • 9999
    100100
    101101
    102 <div class="doc_section">
    102 <h2>
    103103 Introduction
    104 div>
    104 h2>
    105105
    106106
    107107
    183183
    184184
    185185
    186 <div class="doc_section">
    186 <h2>
    187187 Quick Start Guide
    188 div>
    188 h2>
    189189
    190190
    191191
    323323
    324324
    325325
    326 <div class="doc_subsection">
    326 <h3>
    327327 Boolean Arguments
    328 div>
    328 h3>
    329329
    330330
    331331
    405405
    406406
    407407
    408 <div class="doc_subsection">
    408 <h3>
    409409 Argument Aliases
    410 div>
    410 h3>
    411411
    412412
    413413
    455455
    456456
    457457
    458 <div class="doc_subsection">
    458 <h3>
    459459 Selecting an alternative from a set of
    460460 possibilities
    461 div>
    461 h3>
    462462
    463463
    464464
    566566
    567567
    568568
    569 <div class="doc_subsection">
    569 <h3>
    570570 Named Alternatives
    571 div>
    571 h3>
    572572
    573573
    574574
    628628
    629629
    630630
    631 <div class="doc_subsection">
    631 <h3>
    632632 Parsing a list of options
    633 div>
    633 h3>
    634634
    635635
    636636
    698698
    699699
    700700
    701 <div class="doc_subsection">
    701 <h3>
    702702 Collecting options as a set of flags
    703 div>
    703 h3>
    704704
    705705
    706706
    757757
    758758
    759759
    760 <div class="doc_subsection">
    760 <h3>
    761761 Adding freeform text to help output
    762 div>
    762 h3>
    763763
    764764
    765765
    801801
    802802
    803803
    804 <div class="doc_section">
    804 <h2>
    805805 Reference Guide
    806 div>
    806 h2>
    807807
    808808
    809809
    816816
    817817
    818818
    819 <div class="doc_subsection">
    819 <h3>
    820820 Positional Arguments
    821 div>
    821 h3>
    822822
    823823
    824824
    857857
    858858
    859859
    860 <div class="doc_subsubsection">
    860 <h4>
    861861 Specifying positional options with hyphens
    862 div>
    862 h4>
    863863
    864864
    865865
    894894
    895895
    896896
    897 <div class="doc_subsubsection">
    897 <h4>
    898898 Determining absolute position with getPosition()
    899 div>
    899 h4>
    900900
    901901

    Sometimes an option can affect or modify the meaning of another option. For

    902902 example, consider gcc's -x LANG option. This tells
    953953
    954954
    955955
    956 <div class="doc_subsubsection">
    956 <h4>
    957957 The cl::ConsumeAfter modifier
    958 div>
    958 h4>
    959959
    960960
    961961
    10061006
    10071007
    10081008
    1009 <div class="doc_subsection">
    1009 <h3>
    10101010 Internal vs External Storage
    1011 div>
    1011 h3>
    10121012
    10131013
    10141014
    10751075
    10761076
    10771077
    1078 <div class="doc_subsection">
    1078 <h3>
    10791079 Option Attributes
    1080 div>
    1080 h3>
    10811081
    10821082
    10831083
    11651165
    11661166
    11671167
    1168 <div class="doc_subsection">
    1168 <h3>
    11691169 Option Modifiers
    1170 div>
    1170 h3>
    11711171
    11721172
    11731173
    11981198
    11991199
    12001200
    1201 <div class="doc_subsubsection">
    1201 <h4>
    12021202 Hiding an option from -help output
    1203 div>
    1203 h4>
    12041204
    12051205
    12061206
    12291229
    12301230
    12311231
    1232 <div class="doc_subsubsection">
    1232 <h4>
    12331233 Controlling the number of occurrences required and
    12341234 allowed
    1235 div>
    1235 h4>
    12361236
    12371237
    12381238
    12781278
    12791279
    12801280
    1281 <div class="doc_subsubsection">
    1281 <h4>
    12821282 Controlling whether or not a value must be specified
    1283 div>
    1283 h4>
    12841284
    12851285
    12861286
    13271327
    13281328
    13291329
    1330 <div class="doc_subsubsection">
    1330 <h4>
    13311331 Controlling other formatting options
    1332 div>
    1332 h4>
    13331333
    13341334
    13351335
    14081408
    14091409
    14101410
    1411 <div class="doc_subsubsection">
    1411 <h4>
    14121412 Miscellaneous option modifiers
    1413 div>
    1413 h4>
    14141414
    14151415
    14161416
    14521452
    14531453
    14541454
    1455 <div class="doc_subsubsection">
    1455 <h4>
    14561456 Response files
    1457 div>
    1457 h4>
    14581458
    14591459
    14601460
    14751475
    14761476
    14771477
    1478 <div class="doc_subsection">
    1478 <h3>
    14791479 Top-Level Classes and Functions
    1480 div>
    1480 h3>
    14811481
    14821482
    14831483
    14921492
    14931493
    14941494
    1495 <div class="doc_subsubsection">
    1495 <h4>
    14961496 The cl::ParseCommandLineOptions
    14971497 function
    1498 div>
    1498 h4>
    14991499
    15001500
    15011501
    15131513
    15141514
    15151515
    1516 <div class="doc_subsubsection">
    1516 <h4>
    15171517 The cl::ParseEnvironmentOptions
    15181518 function
    1519 div>
    1519 h4>
    15201520
    15211521
    15221522
    15501550
    15511551
    15521552
    1553 <div class="doc_subsubsection">
    1553 <h4>
    15541554 The cl::SetVersionPrinter
    15551555 function
    1556 div>
    1556 h4>
    15571557
    15581558
    15591559
    15711571
    15721572
    15731573
    1574 <div class="doc_subsubsection">
    1574 <h4>
    15751575 The cl::opt class
    1576 div>
    1576 h4>
    15771577
    15781578
    15791579
    16061606
    16071607
    16081608
    1609 <div class="doc_subsubsection">
    1609 <h4>
    16101610 The cl::list class
    1611 div>
    1611 h4>
    16121612
    16131613
    16141614
    16331633
    16341634
    16351635
    1636 <div class="doc_subsubsection">
    1636 <h4>
    16371637 The cl::bits class
    1638 div>
    1638 h4>
    16391639
    16401640
    16411641
    16581658
    16591659
    16601660
    1661 <div class="doc_subsubsection">
    1661 <h4>
    16621662 The cl::alias class
    1663 div>
    1663 h4>
    16641664
    16651665
    16661666
    16811681
    16821682
    16831683
    1684 <div class="doc_subsubsection">
    1684 <h4>
    16851685 The cl::extrahelp class
    1686 div>
    1686 h4>
    16871687
    16881688
    16891689
    17091709
    17101710
    17111711
    1712 <div class="doc_subsection">
    1712 <h3>
    17131713 Builtin parsers
    1714 div>
    1714 h3>
    17151715
    17161716
    17171717
    17731773
    17741774
    17751775
    1776 <div class="doc_section">
    1776 <h2>
    17771777 Extension Guide
    1778 div>
    1778 h2>
    17791779
    17801780
    17811781
    17881788
    17891789
    17901790
    1791 <div class="doc_subsection">
    1791 <h3>
    17921792 Writing a custom parser
    1793 div>
    1793 h3>
    17941794
    17951795
    17961796
    19311931
    19321932
    19331933
    1934 <div class="doc_subsection">
    1934 <h3>
    19351935 Exploiting external storage
    1936 div>
    1936 h3>
    19371937
    19381938
    19391939

    Several of the LLVM libraries define static cl::opt instances that

    19501950
    19511951
    19521952
    1953 <div class="doc_subsection">
    1953 <h3>
    19541954 Dynamically adding command line options
    1955 div>
    1955 h3>
    19561956
    19571957
    19581958
    88
    99
    1010
    11 <div class="doc_title">
    11 <h1>
    1212 Architecture/platform information for compiler writers
    13 div>
    13 h1>
    1414
    1515
    1616

    Note: This document is a work-in-progress. Additions and clarifications

    4242
    4343
    4444
    45
    46
    47
    48
    49 <div class="doc_subsection">Alpha>
    45 <h2>Hardware>
    46
    47
    48
    49

    Alpha

    5050
    5151
    5252
    5757
    5858
    5959
    60 <div class="doc_subsection">ARM>
    60 <h3>ARM>
    6161
    6262
    6363
    6969
    7070
    7171
    72 <div class="doc_subsection">Itanium (ia64)>
    72 <h3>Itanium (ia64)>
    7373
    7474
    7575
    8080
    8181
    8282
    83 <div class="doc_subsection">MIPS>
    83 <h3>MIPS>
    8484
    8585
    8686
    9191
    9292
    9393
    94
    95
    96