1tblgen - Description to C++ Code 2================================ 3 4.. program:: tblgen 5 6SYNOPSIS 7-------- 8 9:program:`clang-tblgen` [*options*] [*filename*] 10 11:program:`lldb-tblgen` [*options*] [*filename*] 12 13:program:`llvm-tblgen` [*options*] [*filename*] 14 15:program:`mlir-tblgen` [*options*] [*filename*] 16 17DESCRIPTION 18----------- 19 20:program:`*-tblgen` is a family of programs that translates target 21description (``.td``) files into C++ code and other output formats. Most 22users of LLVM will not need to use this program. It is used only for 23writing parts of the compiler, debugger, and LLVM target backends. 24 25The details of the input and output of the :program:`*-tblgen` programs is 26beyond the scope of this short introduction; please see the :doc:`TableGen 27Overview <../TableGen/index>` for an introduction and for references to 28additional TableGen documents. 29 30The *filename* argument specifies the name of the Target Description (``.td``) 31file that TableGen processes. 32 33OPTIONS 34------- 35 36General Options 37~~~~~~~~~~~~~~~ 38 39.. option:: -help 40 41 Print a description of the command line options. 42 43.. option:: -help-list 44 45 Print a description of the command line options in a simple list format. 46 47.. option:: -D=macroname 48 49 Specify the name of a macro to be defined. The name is defined, but it 50 has no particular value. 51 52.. option:: -d=filename 53 54 Specify the name of the dependency filename. 55 56.. option:: -debug 57 58 Enable debug output. 59 60.. option:: -dump-json 61 62 Print a JSON representation of all records, suitable for further 63 automated processing. 64 65.. option:: -I directory 66 67 Specify where to find other target description files for inclusion. The 68 ``directory`` value should be a full or partial path to a directory that 69 contains target description files. 70 71.. option:: -null-backend 72 73 Parse the source files and build the records, but do not run any 74 backend. This is useful for timing the frontend. 75 76.. option:: -o filename 77 78 Specify the output file name. If ``filename`` is ``-``, then 79 :program:`*-tblgen` sends its output to standard output. 80 81.. option:: -print-records 82 83 Print all classes and records to standard output (default backend option). 84 85.. option:: -print-detailed-records 86 87 Print a detailed report of all global variables, classes, and records 88 to standard output. 89 90.. option:: -stats 91 92 Print a report with any statistics collected by the backend. 93 94.. option:: -time-phases 95 96 Time the parser and backend phases and print a report. 97 98.. option:: -version 99 100 Show the version number of the program. 101 102.. option:: -write-if-changed 103 104 Write the output file only if it is new or has changed. 105 106 107clang-tblgen Options 108~~~~~~~~~~~~~~~~~~~~ 109 110.. option:: -gen-clang-attr-classes 111 112 Generate Clang attribute classes. 113 114.. option:: -gen-clang-attr-parser-string-switches 115 116 Generate all parser-related attribute string switches. 117 118.. option:: -gen-clang-attr-subject-match-rules-parser-string-switches 119 120 Generate all parser-related attribute subject match rule string switches. 121 122.. option:: -gen-clang-attr-impl 123 124 Generate Clang attribute implementations. 125 126.. option:: -gen-clang-attr-list" 127 128 Generate a Clang attribute list. 129 130.. option:: -gen-clang-attr-subject-match-rule-list 131 132 Generate a Clang attribute subject match rule list. 133 134.. option:: -gen-clang-attr-pch-read 135 136 Generate Clang PCH attribute reader. 137 138.. option:: -gen-clang-attr-pch-write 139 140 Generate Clang PCH attribute writer. 141 142.. option:: -gen-clang-attr-has-attribute-impl 143 144 Generate a Clang attribute spelling list. 145 146.. option:: -gen-clang-attr-spelling-index 147 148 Generate a Clang attribute spelling index. 149 150.. option:: -gen-clang-attr-ast-visitor 151 152 Generate a recursive AST visitor for Clang attributes. 153 154.. option:: -gen-clang-attr-template-instantiate 155 156 Generate a Clang template instantiate code. 157 158.. option:: -gen-clang-attr-parsed-attr-list 159 160 Generate a Clang parsed attribute list. 161 162.. option:: -gen-clang-attr-parsed-attr-impl 163 164 Generate the Clang parsed attribute helpers. 165 166.. option:: -gen-clang-attr-parsed-attr-kinds 167 168 Generate a Clang parsed attribute kinds. 169 170.. option:: -gen-clang-attr-text-node-dump 171 172 Generate Clang attribute text node dumper. 173 174.. option:: -gen-clang-attr-node-traverse 175 176 Generate Clang attribute traverser. 177 178.. option:: -gen-clang-diags-defs 179 180 Generate Clang diagnostics definitions. 181 182.. option:: -clang-component component 183 184 Only use warnings from specified component. 185 186.. option:: -gen-clang-diag-groups 187 188 Generate Clang diagnostic groups. 189 190.. option:: -gen-clang-diags-index-name 191 192 Generate Clang diagnostic name index. 193 194.. option:: -gen-clang-basic-reader 195 196 Generate Clang BasicReader classes. 197 198.. option:: -gen-clang-basic-writer 199 200 Generate Clang BasicWriter classes. 201 202.. option:: -gen-clang-comment-nodes 203 204 Generate Clang AST comment nodes. 205 206.. option:: -gen-clang-decl-nodes 207 208 Generate Clang AST declaration nodes. 209 210.. option:: -gen-clang-stmt-nodes 211 212 Generate Clang AST statement nodes. 213 214.. option:: -gen-clang-type-nodes 215 216 Generate Clang AST type nodes. 217 218.. option:: -gen-clang-type-reader 219 220 Generate Clang AbstractTypeReader class. 221 222.. option:: -gen-clang-type-writer 223 224 Generate Clang AbstractTypeWriter class. 225 226.. option:: -gen-clang-opcodes 227 228 Generate Clang constexpr interpreter opcodes. 229 230.. option:: -gen-clang-sa-checkers 231 232 Generate Clang static analyzer checkers. 233 234.. option:: -gen-clang-comment-html-tags 235 236 Generate efficient matchers for HTML tag names that are used in 237 documentation comments. 238 239.. option:: -gen-clang-comment-html-tags-properties 240 241 Generate efficient matchers for HTML tag properties. 242 243.. option:: -gen-clang-comment-html-named-character-references 244 245 Generate function to translate named character references to UTF-8 sequences. 246 247.. option:: -gen-clang-comment-command-info 248 249 Generate command properties for commands that are used in documentation comments. 250 251.. option:: -gen-clang-comment-command-list 252 253 Generate list of commands that are used in documentation comments. 254 255.. option:: -gen-clang-opencl-builtins 256 257 Generate OpenCL builtin declaration handlers. 258 259.. option:: -gen-arm-neon 260 261 Generate ``arm_neon.h`` for Clang. 262 263.. option:: -gen-arm-fp16 264 265 Generate ``arm_fp16.h`` for Clang. 266 267.. option:: -gen-arm-bf16 268 269 Generate ``arm_bf16.h`` for Clang. 270 271.. option:: -gen-arm-neon-sema 272 273 Generate ARM NEON sema support for Clang. 274 275.. option:: -gen-arm-neon-test 276 277 Generate ARM NEON tests for Clang. 278 279.. option:: -gen-arm-immcheck-types 280 281 Generate ``arm_immcheck_types.inc`` for Clang. 282 283.. option:: -gen-arm-sve-header 284 285 Generate ``arm_sve.h`` for Clang. 286 287.. option:: -gen-arm-sve-builtins 288 289 Generate ``arm_sve_builtins.inc`` for Clang. 290 291.. option:: -gen-arm-sve-builtin-codegen 292 293 Generate ``arm_sve_builtin_cg_map.inc`` for Clang. 294 295.. option:: -gen-arm-sve-typeflags 296 297 Generate ``arm_sve_typeflags.inc`` for Clang. 298 299.. option:: -gen-arm-sve-sema-rangechecks 300 301 Generate ``arm_sve_sema_rangechecks.inc`` for Clang. 302 303.. option:: -gen-arm-mve-header 304 305 Generate ``arm_mve.h`` for Clang. 306 307.. option:: -gen-arm-mve-builtin-def 308 309 Generate ARM MVE builtin definitions for Clang. 310 311.. option:: -gen-arm-mve-builtin-sema 312 313 Generate ARM MVE builtin sema checks for Clang. 314 315.. option:: -gen-arm-mve-builtin-codegen 316 317 Generate ARM MVE builtin code-generator for Clang. 318 319.. option:: -gen-arm-mve-builtin-aliases 320 321 Generate list of valid ARM MVE builtin aliases for Clang. 322 323.. option:: -gen-arm-cde-header 324 325 Generate ``arm_cde.h`` for Clang. 326 327.. option:: -gen-arm-cde-builtin-def 328 329 Generate ARM CDE builtin definitions for Clang. 330 331.. option:: -gen-arm-cde-builtin-sema 332 333 Generate ARM CDE builtin sema checks for Clang. 334 335.. option:: -gen-arm-cde-builtin-codegen 336 337 Generate ARM CDE builtin code-generator for Clang. 338 339.. option:: -gen-arm-cde-builtin-aliases 340 341 Generate list of valid ARM CDE builtin aliases for Clang. 342 343.. option:: -gen-riscv-vector-header 344 345 Generate ``riscv_vector.h`` for Clang. 346 347.. option:: -gen-riscv-vector-builtins 348 349 Generate ``riscv_vector_builtins.inc`` for Clang. 350 351.. option:: -gen-riscv-vector-builtin-codegen 352 353 Generate ``riscv_vector_builtin_cg.inc`` for Clang. 354 355.. option:: -gen-riscv-sifive-vector-builtins 356 357 Generate ``riscv_sifive_vector_builtins.inc`` for Clang. 358 359.. option:: -gen-riscv-sifive-vector-builtin-codegen 360 361 Generate ``riscv_sifive_vector_builtin_cg.inc`` for Clang. 362 363.. option:: -gen-attr-docs 364 365 Generate attribute documentation. 366 367.. option:: -gen-diag-docs 368 369 Generate diagnostic documentation. 370 371.. option:: -gen-opt-docs 372 373 Generate option documentation. 374 375.. option:: -gen-clang-data-collectors 376 377 Generate data collectors for AST nodes. 378 379.. option:: -gen-clang-test-pragma-attribute-supported-attributes 380 381 Generate a list of attributes supported by ``#pragma`` Clang attribute for 382 testing purposes. 383 384 385lldb-tblgen Options 386~~~~~~~~~~~~~~~~~~~ 387 388.. option:: gen-lldb-option-defs 389 390 Generate lldb OptionDefinition values. 391 392.. option:: gen-lldb-property-defs 393 394 Generate lldb PropertyDefinition values. 395 396.. option:: gen-lldb-property-enum-defs 397 398 Generate lldb PropertyDefinition enum values. 399 400 401llvm-tblgen Options 402~~~~~~~~~~~~~~~~~~~ 403 404.. option:: -gen-asm-matcher 405 406 Generate assembly instruction matcher. 407 408.. option:: -match-prefix=prefix 409 410 Make -gen-asm-matcher match only instructions with the given *prefix*. 411 412.. option:: -gen-asm-parser 413 414 Generate assembly instruction parser. 415 416.. option:: -asmparsernum=n 417 418 Make -gen-asm-parser emit assembly parser number *n*. 419 420.. option:: -gen-asm-writer 421 422 Generate assembly writer. 423 424.. option:: -asmwriternum=n 425 426 Make -gen-asm-writer emit assembly writer number *n*. 427 428.. option:: -gen-attrs 429 430 Generate attributes. 431 432.. option:: -gen-automata 433 434 Generate generic automata. 435 436.. option:: -gen-callingconv 437 438 Generate calling convention descriptions. 439 440.. option:: -gen-compress-inst-emitter 441 442 Generate RISC-V compressed instructions. 443 444.. option:: -gen-ctags 445 446 Generate ctags-compatible index. 447 448.. option:: -gen-dag-isel 449 450 Generate a DAG (directed acyclic graph) instruction selector. 451 452.. option:: -instrument-coverage 453 454 Make -gen-dag-isel generate tables to help identify the patterns matched. 455 456.. option:: -omit-comments 457 458 Make -gen-dag-isel omit comments. The default is false. 459 460.. option:: -gen-dfa-packetizer 461 462 Generate DFA Packetizer for VLIW targets. 463 464.. option:: -gen-directive-decl 465 466 Generate directive related declaration code (header file). 467 468.. option:: -gen-directive-gen 469 470 Generate directive related implementation code part. 471 472.. option:: -gen-directive-impl 473 474 Generate directive related implementation code. 475 476.. option:: -gen-disassembler 477 478 Generate disassembler. 479 480.. option:: -gen-emitter 481 482 Generate machine code emitter. 483 484.. option:: -gen-exegesis 485 486 Generate llvm-exegesis tables. 487 488.. option:: -gen-fast-isel 489 490 Generate a "fast" instruction selector. 491 492.. option:: -gen-global-isel 493 494 Generate GlobalISel selector. 495 496.. option:: -gisel-coverage-file=filename 497 498 Specify the file from which to retrieve coverage information. 499 500.. option:: -instrument-gisel-coverage 501 502 Make -gen-global-isel generate coverage instrumentation. 503 504.. option:: -optimize-match-table 505 506 Make -gen-global-isel generate an optimized version of the match table. 507 508.. option:: -warn-on-skipped-patterns 509 510 Make -gen-global-isel explain why a pattern was skipped for inclusion. 511 512.. option:: -gen-global-isel-combiner 513 514 Generate GlobalISel combiner. 515 516.. option:: -combiners=list 517 518 Make -gen-global-isel-combiner emit the specified combiners. 519 520.. option:: -gicombiner-debug-cxxpreds 521 522 Add debug comments to all C++ predicates emitted by -gen-global-isel-combiner 523 524.. option:: -gicombiner-stop-after-parse 525 526 Make -gen-global-isel-combiner stop processing after parsing rules and dump state. 527 528.. option:: -gen-instr-info 529 530 Generate instruction descriptions. 531 532.. option:: -gen-instr-docs 533 534 Generate instruction documentation. 535 536.. option:: -gen-intrinsic-enums 537 538 Generate intrinsic enums. 539 540.. option:: -intrinsic-prefix=prefix 541 542 Make -gen-intrinsic-enums generate intrinsics with this target *prefix*. 543 544.. option:: -gen-intrinsic-impl 545 546 Generate intrinsic information. 547 548.. option:: -gen-opt-parser-defs 549 550 Generate options definitions. 551 552.. option:: -gen-opt-rst 553 554 Generate option RST. 555 556.. option:: -gen-pseudo-lowering 557 558 Generate pseudo instruction lowering. 559 560.. option:: -gen-register-bank 561 562 Generate register bank descriptions. 563 564.. option:: -gen-register-info 565 566 Generate registers and register classes info. 567 568.. option:: -register-info-debug 569 570 Make -gen-register-info dump register information for debugging. 571 572.. option:: -gen-searchable-tables 573 574 Generate generic searchable tables. See :doc:`TableGen BackEnds <../TableGen/BackEnds>` 575 for a detailed description. 576 577.. option:: -gen-subtarget 578 579 Generate subtarget enumerations. 580 581.. option:: -gen-x86-EVEX2VEX-tables 582 583 Generate X86 EVEX to VEX compress tables. 584 585.. option:: -gen-x86-fold-tables 586 587 Generate X86 fold tables. 588 589.. option:: -long-string-literals 590 591 When emitting large string tables, prefer string literals over 592 comma-separated char literals. This can be a readability and 593 compile-time performance win, but upsets some compilers. 594 595.. option:: -print-enums 596 597 Print enumeration values for a class. 598 599.. option:: -class=classname 600 601 Make -print-enums print the enumeration list for the specified class. 602 603.. option:: -print-sets 604 605 Print expanded sets for testing DAG exprs. 606 607 608mlir-tblgen Options 609~~~~~~~~~~~~~~~~~~~ 610 611.. option:: -gen-avail-interface-decls 612 613 Generate availability interface declarations. 614 615.. option:: -gen-avail-interface-defs 616 617 Generate op interface definitions. 618 619.. option:: -gen-dialect-doc 620 621 Generate dialect documentation. 622 623.. option:: -dialect 624 625 The dialect to generate. 626 627.. option:: -gen-directive-decl 628 629 Generate declarations for directives (OpenMP, etc.). 630 631.. option:: -gen-enum-decls 632 633 Generate enum utility declarations. 634 635.. option:: -gen-enum-defs 636 637 Generate enum utility definitions. 638 639.. option:: -gen-enum-from-llvmir-conversions 640 641 Generate conversions of EnumAttrs from LLVM IR. 642 643.. option:: -gen-enum-to-llvmir-conversions 644 645 Generate conversions of EnumAttrs to LLVM IR. 646 647.. option:: -gen-llvmir-conversions 648 649 Generate LLVM IR conversions. 650 651.. option:: -gen-llvmir-intrinsics 652 653 Generate LLVM IR intrinsics. 654 655.. option:: -llvmir-intrinsics-filter 656 657 Only keep the intrinsics with the specified substring in their record name. 658 659.. option:: -dialect-opclass-base 660 661 The base class for the ops in the dialect we are to emit. 662 663.. option:: -gen-op-decls 664 665 Generate operation declarations. 666 667.. option:: -gen-op-defs 668 669 Generate operation definitions. 670 671.. option:: -asmformat-error-is-fatal 672 673 Emit a fatal error if format parsing fails. 674 675.. option:: -op-exclude-regex 676 677 Regular expression of name of ops to exclude (no filter if empty). 678 679.. option:: -op-include-regex 680 681 Regular expression of name of ops to include (no filter if empty). 682 683.. option:: -gen-op-doc 684 685 Generate operation documentation. 686 687.. option:: -gen-pass-decls 688 689 Generate operation documentation. 690 691.. option:: -name namestring 692 693 The name of this group of passes. 694 695.. option:: -gen-pass-doc 696 697 Generate pass documentation. 698 699.. option:: -gen-rewriters 700 701 Generate pattern rewriters. 702 703.. option:: -gen-spirv-avail-impls 704 705 Generate SPIR-V operation utility definitions. 706 707.. option:: -gen-spirv-capability-implication 708 709 Generate utility function to return implied capabilities for a given capability. 710 711.. option:: -gen-spirv-enum-avail-decls 712 713 Generate SPIR-V enum availability declarations. 714 715.. option:: -gen-spirv-enum-avail-defs 716 717 Generate SPIR-V enum availability definitions. 718 719.. option:: -gen-spirv-op-utils 720 721 Generate SPIR-V operation utility definitions. 722 723.. option:: -gen-spirv-serialization 724 725 Generate SPIR-V (de)serialization utilities and functions. 726 727.. option:: -gen-struct-attr-decls 728 729 Generate struct utility declarations. 730 731.. option:: -gen-struct-attr-defs 732 733 Generate struct utility definitions. 734 735.. option:: -gen-typedef-decls 736 737 Generate TypeDef declarations. 738 739.. option:: -gen-typedef-defs 740 741 Generate TypeDef definitions. 742 743.. option:: -typedefs-dialect name 744 745 Generate types for this dialect. 746 747EXIT STATUS 748----------- 749 750If :program:`*-tblgen` succeeds, it will exit with 0. Otherwise, if an error 751occurs, it will exit with a non-zero value. 752