1# This file is licensed under the Apache License v2.0 with LLVM Exceptions. 2# See https://llvm.org/LICENSE.txt for license information. 3# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 4 5load("//llvm:tblgen.bzl", "gentbl") 6 7package( 8 default_visibility = ["//visibility:public"], 9 licenses = ["notice"], 10) 11 12cc_test( 13 name = "adt_tests", 14 size = "medium", 15 srcs = glob( 16 [ 17 "ADT/*.cpp", 18 "ADT/*.h", 19 ], 20 allow_empty = False, 21 ), 22 shard_count = 20, 23 deps = [ 24 "//llvm:Core", 25 "//llvm:Support", 26 "//llvm:TestingSupport", 27 "//llvm:gtest", 28 "//llvm:gtest_main", 29 ], 30) 31 32cc_test( 33 name = "analysis_tests", 34 size = "small", 35 srcs = glob( 36 ["Analysis/*.cpp"], 37 allow_empty = False, 38 exclude = [ 39 # TODO: Add this file to the build. 40 "Analysis/TFUtilsTest.cpp", 41 ], 42 ), 43 deps = [ 44 "//llvm:Analysis", 45 "//llvm:AsmParser", 46 "//llvm:Core", 47 "//llvm:Support", 48 "//llvm:TestingSupport", 49 "//llvm:TransformUtils", 50 "//llvm:gtest", 51 "//llvm:gtest_main", 52 ], 53) 54 55cc_test( 56 name = "asm_parser_tests", 57 size = "small", 58 srcs = glob( 59 ["AsmParser/*.cpp"], 60 allow_empty = False, 61 ), 62 deps = [ 63 "//llvm:AsmParser", 64 "//llvm:Core", 65 "//llvm:Support", 66 "//llvm:gtest", 67 "//llvm:gtest_main", 68 ], 69) 70 71cc_test( 72 name = "bitcode_tests", 73 size = "small", 74 srcs = glob( 75 ["Bitcode/*.cpp"], 76 allow_empty = False, 77 ), 78 deps = [ 79 "//llvm:AsmParser", 80 "//llvm:BitReader", 81 "//llvm:BitWriter", 82 "//llvm:Core", 83 "//llvm:Support", 84 "//llvm:gtest", 85 "//llvm:gtest_main", 86 ], 87) 88 89cc_test( 90 name = "bitstream_tests", 91 size = "small", 92 srcs = glob( 93 ["Bitstream/*.cpp"], 94 allow_empty = False, 95 ), 96 deps = [ 97 "//llvm:BitstreamReader", 98 "//llvm:BitstreamWriter", 99 "//llvm:Support", 100 "//llvm:gtest", 101 "//llvm:gtest_main", 102 ], 103) 104 105cc_library( 106 name = "codegen_tests_includes", 107 textual_hdrs = glob( 108 ["CodeGen/*.inc"], 109 allow_empty = False, 110 ), 111) 112 113cc_test( 114 name = "codegen_tests", 115 size = "small", 116 srcs = glob( 117 [ 118 "CodeGen/*.cpp", 119 "CodeGen/*.h", 120 ], 121 allow_empty = False, 122 ), 123 deps = [ 124 ":codegen_tests_includes", 125 "//llvm:AllTargetsAsmParsers", 126 "//llvm:AllTargetsCodeGens", 127 "//llvm:Analysis", 128 "//llvm:AsmParser", 129 "//llvm:BinaryFormat", 130 "//llvm:CodeGen", 131 "//llvm:Core", 132 "//llvm:MC", 133 "//llvm:Passes", 134 "//llvm:Support", 135 "//llvm:Target", 136 "//llvm:TestingSupport", 137 "//llvm:gtest", 138 "//llvm:gtest_main", 139 ], 140) 141 142cc_test( 143 name = "codegen_globalisel_tests", 144 size = "small", 145 srcs = glob( 146 [ 147 "CodeGen/GlobalISel/*.cpp", 148 "CodeGen/GlobalISel/*.h", 149 ], 150 allow_empty = False, 151 ), 152 copts = [ 153 "$(STACK_FRAME_UNLIMITED)", 154 ], 155 deps = [ 156 "//llvm:AllTargetsAsmParsers", 157 "//llvm:AllTargetsCodeGens", 158 "//llvm:CodeGen", 159 "//llvm:Core", 160 "//llvm:FileCheckLib", 161 "//llvm:Support", 162 "//llvm:Target", 163 "//llvm:gtest", 164 "//llvm:gtest_main", 165 ], 166) 167 168cc_test( 169 name = "debuginfo_tests", 170 size = "small", 171 srcs = glob( 172 [ 173 "DebugInfo/DWARF/*.cpp", 174 "DebugInfo/DWARF/*.h", 175 # TODO: Re-enable these when they stop crashing. 176 #"DebugInfo/PDB/*.cpp", 177 #"DebugInfo/PDB/*.h", 178 ], 179 allow_empty = False, 180 ), 181 args = [ 182 # Skip a test that relies on reading files in a way that doesn't easily 183 # work with Bazel. 184 "--gtest_filter=-NativeSymbolReuseTest.*", 185 ], 186 deps = [ 187 "//llvm:AllTargetsAsmParsers", 188 "//llvm:AllTargetsCodeGens", 189 "//llvm:CodeGen", 190 "//llvm:Core", 191 "//llvm:DebugInfoDWARF", 192 "//llvm:DebugInfoPDB", 193 "//llvm:ObjectYAML", 194 "//llvm:Support", 195 "//llvm:TestingSupport", 196 "//llvm:gtest", 197 "//llvm:gtest_main", 198 ], 199) 200 201cc_test( 202 name = "execution_engine_tests", 203 size = "small", 204 srcs = glob( 205 ["ExecutionEngine/*.cpp"], 206 allow_empty = False, 207 ), 208 deps = [ 209 "//llvm:AllTargetsCodeGens", 210 "//llvm:AsmParser", 211 "//llvm:Core", 212 "//llvm:ExecutionEngine", 213 "//llvm:Interpreter", 214 "//llvm:Support", 215 "//llvm:gtest", 216 "//llvm:gtest_main", 217 ], 218) 219 220cc_test( 221 name = "execution_engine_mcjit_tests", 222 size = "small", 223 srcs = glob( 224 [ 225 "ExecutionEngine/MCJIT/*.cpp", 226 "ExecutionEngine/MCJIT/*.h", 227 ], 228 allow_empty = False, 229 ), 230 copts = [ 231 "$(STACK_FRAME_UNLIMITED)", 232 ], 233 deps = [ 234 "//llvm:AllTargetsCodeGens", 235 "//llvm:AsmParser", 236 "//llvm:Core", 237 "//llvm:ExecutionEngine", 238 "//llvm:MCJIT", 239 "//llvm:Passes", 240 "//llvm:Support", 241 "//llvm:gtest", 242 "//llvm:gtest_main", 243 ], 244) 245 246cc_test( 247 name = "execution_engine_orc_tests", 248 size = "small", 249 srcs = glob( 250 [ 251 "ExecutionEngine/Orc/*.cpp", 252 "ExecutionEngine/Orc/*.h", 253 ], 254 allow_empty = False, 255 ), 256 args = ["--gtest_filter=-ObjectLinkingLayerTest.TestSetProcessAllSections"], 257 deps = [ 258 "//llvm:AllTargetsAsmParsers", 259 "//llvm:AllTargetsCodeGens", 260 "//llvm:AsmParser", 261 "//llvm:Core", 262 "//llvm:ExecutionEngine", 263 "//llvm:OrcJIT", 264 "//llvm:Support", 265 "//llvm:TestingSupport", 266 "//llvm:gtest", 267 "//llvm:gtest_main", 268 ], 269) 270 271cc_test( 272 name = "filecheck_tests", 273 size = "small", 274 srcs = glob( 275 ["FileCheck/*.cpp"], 276 allow_empty = False, 277 ), 278 deps = [ 279 "//llvm:FileCheckLib", 280 "//llvm:Support", 281 "//llvm:TestingSupport", 282 "//llvm:gtest", 283 "//llvm:gtest_main", 284 ], 285) 286 287cc_test( 288 name = "ir_tests", 289 size = "medium", # ConstantRangeTest cases may take several seconds each. 290 srcs = glob( 291 [ 292 "IR/*.cpp", 293 "IR/*.h", 294 "Support/KnownBitsTest.h", 295 ], 296 allow_empty = False, 297 ), 298 shard_count = 20, 299 deps = [ 300 "//llvm:Analysis", 301 "//llvm:AsmParser", 302 "//llvm:BinaryFormat", 303 "//llvm:Core", 304 "//llvm:Passes", 305 "//llvm:Scalar", 306 "//llvm:Support", 307 "//llvm:TestingSupport", 308 "//llvm:config", 309 "//llvm:gtest", 310 "//llvm:gtest_main", 311 ], 312) 313 314cc_test( 315 name = "line_editor_tests", 316 size = "small", 317 srcs = glob( 318 ["LineEditor/*.cpp"], 319 allow_empty = False, 320 ), 321 deps = [ 322 "//llvm:LineEditor", 323 "//llvm:Support", 324 "//llvm:gtest", 325 "//llvm:gtest_main", 326 ], 327) 328 329cc_test( 330 name = "frontend_tests", 331 size = "small", 332 srcs = glob( 333 ["Frontend/*.cpp"], 334 allow_empty = False, 335 ), 336 deps = [ 337 "//llvm:Analysis", 338 "//llvm:FrontendOpenACC", 339 "//llvm:FrontendOpenMP", 340 "//llvm:Passes", 341 "//llvm:Support", 342 "//llvm:gtest", 343 "//llvm:gtest_main", 344 ], 345) 346 347cc_test( 348 name = "linker_tests", 349 size = "small", 350 srcs = glob( 351 ["Linker/*.cpp"], 352 allow_empty = False, 353 ), 354 deps = [ 355 "//llvm:AsmParser", 356 "//llvm:Core", 357 "//llvm:Linker", 358 "//llvm:Support", 359 "//llvm:gtest", 360 "//llvm:gtest_main", 361 ], 362) 363 364cc_test( 365 name = "mc_tests", 366 size = "small", 367 srcs = glob( 368 ["MC/*.cpp"], 369 allow_empty = False, 370 ), 371 deps = [ 372 "//llvm:AllTargetsCodeGens", 373 "//llvm:AllTargetsDisassemblers", 374 "//llvm:MC", 375 "//llvm:MCDisassembler", 376 "//llvm:Support", 377 "//llvm:gtest", 378 "//llvm:gtest_main", 379 ], 380) 381 382cc_test( 383 name = "mi_tests", 384 size = "small", 385 srcs = glob( 386 ["MI/*.cpp"], 387 allow_empty = False, 388 ), 389 deps = [ 390 "//llvm:AllTargetsAsmParsers", 391 "//llvm:AllTargetsCodeGens", 392 "//llvm:CodeGen", 393 "//llvm:Core", 394 "//llvm:Support", 395 "//llvm:Target", 396 "//llvm:gtest", 397 "//llvm:gtest_main", 398 ], 399) 400 401cc_test( 402 name = "object_tests", 403 size = "small", 404 srcs = glob( 405 ["Object/*.cpp"], 406 allow_empty = False, 407 ), 408 deps = [ 409 "//llvm:Object", 410 "//llvm:ObjectYAML", 411 "//llvm:TestingSupport", 412 "//llvm:gtest", 413 "//llvm:gtest_main", 414 ], 415) 416 417cc_test( 418 name = "object_yaml_tests", 419 size = "small", 420 srcs = glob( 421 ["ObjectYAML/*.cpp"], 422 allow_empty = False, 423 ), 424 deps = [ 425 "//llvm:DebugInfoCodeView", 426 "//llvm:Object", 427 "//llvm:ObjectYAML", 428 "//llvm:Support", 429 "//llvm:TestingSupport", 430 "//llvm:gtest", 431 "//llvm:gtest_main", 432 ], 433) 434 435gentbl( 436 name = "option_tests_gen", 437 strip_include_prefix = "Option", 438 tbl_outs = [( 439 "-gen-opt-parser-defs", 440 "Option/Opts.inc", 441 )], 442 tblgen = "//llvm:llvm-tblgen", 443 td_file = "Option/Opts.td", 444 td_srcs = [ 445 "//llvm:include/llvm/Option/OptParser.td", 446 ], 447) 448 449gentbl( 450 name = "automata_automata_gen", 451 strip_include_prefix = "TableGen", 452 tbl_outs = [( 453 "-gen-automata", 454 "TableGen/AutomataAutomata.inc", 455 )], 456 tblgen = "//llvm:llvm-tblgen", 457 td_file = "TableGen/Automata.td", 458 td_srcs = ["//llvm:common_target_td_sources"] + [ 459 "TableGen/Automata.td", 460 ], 461) 462 463gentbl( 464 name = "automata_tables_gen", 465 strip_include_prefix = "TableGen", 466 tbl_outs = [( 467 "-gen-searchable-tables", 468 "TableGen/AutomataTables.inc", 469 )], 470 tblgen = "//llvm:llvm-tblgen", 471 td_file = "TableGen/Automata.td", 472 td_srcs = ["//llvm:common_target_td_sources"] + [ 473 "TableGen/Automata.td", 474 ], 475) 476 477cc_test( 478 name = "option_tests", 479 size = "small", 480 srcs = glob( 481 ["Option/*.cpp"], 482 allow_empty = False, 483 ), 484 deps = [ 485 ":option_tests_gen", 486 "//llvm:Option", 487 "//llvm:Support", 488 "//llvm:gtest", 489 "//llvm:gtest_main", 490 ], 491) 492 493cc_test( 494 name = "remarks_tests", 495 size = "small", 496 srcs = glob( 497 ["Remarks/*.cpp"], 498 allow_empty = False, 499 ), 500 deps = [ 501 "//llvm:BitReader", 502 "//llvm:Remarks", 503 "//llvm:Support", 504 "//llvm:gtest", 505 "//llvm:gtest_main", 506 "//llvm:remark_linker", 507 ], 508) 509 510cc_test( 511 name = "profile_data_tests", 512 size = "small", 513 srcs = glob( 514 ["ProfileData/*.cpp"], 515 allow_empty = False, 516 ), 517 deps = [ 518 "//llvm:Core", 519 "//llvm:Coverage", 520 "//llvm:ProfileData", 521 "//llvm:Support", 522 "//llvm:TestingSupport", 523 "//llvm:gtest", 524 "//llvm:gtest_main", 525 ], 526) 527 528cc_test( 529 name = "support_tests", 530 size = "small", 531 srcs = glob( 532 [ 533 "Support/*.cpp", 534 "Support/*.h", 535 ], 536 allow_empty = False, 537 exclude = [ 538 "Support/ParallelTest.cpp", 539 ], 540 ), 541 args = ["--gtest_filter=-ProgramTest.CreateProcessTrailingSlash"], 542 copts = [ 543 "$(STACK_FRAME_UNLIMITED)", 544 ], 545 linkstatic = 1, 546 tags = [ 547 "local", # Not compatible with the sandbox on MacOS 548 ], 549 deps = [ 550 "//llvm:AllTargetsCodeGens", 551 "//llvm:BinaryFormat", 552 "//llvm:Core", 553 "//llvm:Support", 554 "//llvm:TestingSupport", 555 "//llvm:config", 556 "//llvm:gtest", 557 "//llvm:gtest_main", 558 ], 559) 560 561cc_test( 562 name = "support_parallel_tests", 563 size = "small", 564 srcs = ["Support/ParallelTest.cpp"], 565 copts = [ 566 "$(STACK_FRAME_UNLIMITED)", 567 ], 568 linkstatic = 1, 569 deps = [ 570 "//llvm:AllTargetsCodeGens", 571 "//llvm:Support", 572 "//llvm:config", 573 "//llvm:gtest", 574 "//llvm:gtest_main", 575 ], 576) 577 578cc_test( 579 name = "tablegen_tests", 580 size = "small", 581 srcs = glob( 582 [ 583 "TableGen/*.cpp", 584 ], 585 allow_empty = False, 586 ), 587 deps = [ 588 ":automata_automata_gen", 589 ":automata_tables_gen", 590 "//llvm:Support", 591 "//llvm:TableGen", 592 "//llvm:gtest", 593 "//llvm:gtest_main", 594 "//llvm:tblgen", 595 ], 596) 597 598cc_test( 599 name = "target_aarch64_tests", 600 size = "small", 601 srcs = glob( 602 ["Target/AArch64/*.cpp"], 603 allow_empty = False, 604 ), 605 copts = [ 606 "$(STACK_FRAME_UNLIMITED)", 607 ], 608 deps = [ 609 "//llvm:AArch64CodeGen", 610 "//llvm:gtest", 611 "//llvm:gtest_main", 612 ], 613) 614 615cc_test( 616 name = "transforms_tests", 617 size = "small", 618 srcs = glob( 619 [ 620 "Transforms/IPO/*.cpp", 621 "Transforms/IPO/*.h", 622 "Transforms/Utils/*.cpp", 623 ], 624 allow_empty = False, 625 ), 626 deps = [ 627 "//llvm:Analysis", 628 "//llvm:AsmParser", 629 "//llvm:Core", 630 "//llvm:IPO", 631 "//llvm:Support", 632 "//llvm:TestingSupport", 633 "//llvm:TransformUtils", 634 "//llvm:gtest", 635 "//llvm:gtest_main", 636 ], 637) 638 639cc_test( 640 name = "llvm_exegesis_tests", 641 size = "small", 642 srcs = glob( 643 [ 644 "tools/llvm-exegesis/*.cpp", 645 "tools/llvm-exegesis/X86/*.cpp", 646 "tools/llvm-exegesis/X86/*.h", 647 ], 648 allow_empty = False, 649 ) + [ 650 "tools/llvm-exegesis/Common/AssemblerUtils.h", 651 ], 652 copts = ["-DHAVE_LIBPFM=1"], 653 linkopts = ["-lpfm"], 654 tags = [ 655 "manual", # External dependency (libpfm4) 656 "nobuildkite", # TODO(chandlerc): Add support for fetching and building libpfm4 and enable this. 657 ], 658 deps = [ 659 "//llvm:AllTargetsCodeGens", 660 "//llvm:AllTargetsDisassemblers", 661 "//llvm:Exegesis", 662 "//llvm:MC", 663 "//llvm:MCDisassembler", 664 "//llvm:Support", 665 "//llvm:TestingSupport", 666 "//llvm:gtest", 667 "//llvm:gtest_main", 668 ], 669) 670