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