| author | |
| committer | |
| log | 6148ec9f438e38c94ce95d5802103c7c078acff0 |
| tree | 098598c0323c1244904e088cae984a1e5c0458b6 |
| parent | 3cc4f2f0dc660ff505ad35ee68b8f66484648530 |
The IR tests should be run on the same target matrix anyway.25 files changed, 1204 insertions(+), 933 deletions(-)
build.zig+3-7| ... | ... | @@ -816,13 +816,9 @@ pub fn build(b: *std.Build) !void { |
| 816 | 816 | try tests.addRunnerTests(b, runner, test_incremental_step, "test/incremental", @import("test/incremental/matrix.zon"), runner_opts); |
| 817 | 817 | test_step.dependOn(test_incremental_step); |
| 818 | 818 | |
| 819 | const test_llvm_ir_step = b.step("test-llvm-ir", "Run the LLVM IR tests"); | |
| 820 | try tests.addRunnerTests(b, runner, test_llvm_ir_step, "test/llvm-ir", @import("test/llvm-ir/matrix.zon"), runner_opts); | |
| 821 | test_step.dependOn(test_llvm_ir_step); | |
| 822 | ||
| 823 | const test_llvm_targets_step = b.step("test-llvm-targets", "Run the LLVM targets tests"); | |
| 824 | try tests.addRunnerTests(b, runner, test_llvm_targets_step, "test/llvm-targets", @import("test/llvm-targets/matrix.zon"), runner_opts); | |
| 825 | test_step.dependOn(test_llvm_targets_step); | |
| 819 | const test_llvm_step = b.step("test-llvm", "Run the LLVM IR tests"); | |
| 820 | try tests.addRunnerTests(b, runner, test_llvm_step, "test/llvm", @import("test/llvm/matrix.zon"), runner_opts); | |
| 821 | test_step.dependOn(test_llvm_step); | |
| 826 | 822 | } |
| 827 | 823 | |
| 828 | 824 | fn addWasiUpdateStep(b: *std.Build, version: [:0]const u8) !void { |
lib/compiler/Maker/Step/Run.zig+7-1| ... | ... | @@ -795,6 +795,7 @@ fn waitZigTest( |
| 795 | 795 | multi_reader: *Io.File.MultiReader, |
| 796 | 796 | opt_metadata: *?TestMetadata, |
| 797 | 797 | results: *Step.TestResults, |
| 798 | eb_wip: *std.zig.ErrorBundle.Wip, | |
| 798 | 799 | ) !union(enum) { |
| 799 | 800 | write_failed: anyerror, |
| 800 | 801 | no_poll: struct { |
| ... | ... | @@ -885,7 +886,7 @@ fn waitZigTest( |
| 885 | 886 | .{ builtin.zig_version_string, body }, |
| 886 | 887 | ); |
| 887 | 888 | }, |
| 888 | .error_bundle => step.result_error_bundle = try std.zig.Server.allocErrorBundle(gpa, body), | |
| 889 | .error_bundle => try eb_wip.addBundleAsRoots(try std.zig.Server.allocErrorBundle(arena, body)), | |
| 889 | 890 | .test_metadata => { |
| 890 | 891 | // `metadata` would only be populated if we'd already seen a `test_metadata`, but we |
| 891 | 892 | // only request it once (and importantly, we don't re-request it if we kill and |
| ... | ... | @@ -1573,6 +1574,9 @@ fn evalZigTest( |
| 1573 | 1574 | }; |
| 1574 | 1575 | var test_metadata: ?TestMetadata = null; |
| 1575 | 1576 | |
| 1577 | var eb_wip: std.zig.ErrorBundle.Wip = try .init(gpa); | |
| 1578 | defer eb_wip.deinit(); | |
| 1579 | ||
| 1576 | 1580 | while (true) { |
| 1577 | 1581 | var child = try process.spawn(io, spawn_options); |
| 1578 | 1582 | var multi_reader_buffer: Io.File.MultiReader.Buffer(2) = undefined; |
| ... | ... | @@ -1602,6 +1606,7 @@ fn evalZigTest( |
| 1602 | 1606 | &multi_reader, |
| 1603 | 1607 | &test_metadata, |
| 1604 | 1608 | &test_results, |
| 1609 | &eb_wip, | |
| 1605 | 1610 | )) { |
| 1606 | 1611 | .write_failed => |err| { |
| 1607 | 1612 | // The runner unexpectedly closed a stdio pipe, which means a crash. Make sure we've captured |
| ... | ... | @@ -1687,6 +1692,7 @@ fn evalZigTest( |
| 1687 | 1692 | } |
| 1688 | 1693 | } |
| 1689 | 1694 | } |
| 1695 | step.result_error_bundle = try eb_wip.toOwnedBundle(""); | |
| 1690 | 1696 | return; |
| 1691 | 1697 | }, |
| 1692 | 1698 | .timeout => |timeout| { |
src/main.zig+1-1| ... | ... | @@ -3368,7 +3368,7 @@ fn buildOutputType( |
| 3368 | 3368 | const target = &main_mod.resolved_target.result; |
| 3369 | 3369 | |
| 3370 | 3370 | if (target.cpu.arch == .arc or target.cpu.arch.isNvptx()) { |
| 3371 | if (emit_bin != .no and create_module.resolved_options.use_llvm) { | |
| 3371 | if (emit_bin != .no and target.ofmt != .llvmbc and target.ofmt != .llvmir and create_module.resolved_options.use_llvm) { | |
| 3372 | 3372 | fatal("cannot emit {s} binary with the LLVM backend; only '-femit-asm' is supported", .{ |
| 3373 | 3373 | @tagName(target.cpu.arch), |
| 3374 | 3374 | }); |
test/Runner.zig+146-99| ... | ... | @@ -17,7 +17,7 @@ pub const Target = struct { |
| 17 | 17 | dynamic_linker: DynamicLinker = .default, |
| 18 | 18 | |
| 19 | 19 | cache_mode: enum { whole, incremental }, |
| 20 | backend: enum { selfhosted, llvm, llvmir, cbe }, | |
| 20 | backend: enum { selfhosted, llvm, cbe }, | |
| 21 | 21 | linker: enum { lld, old, new }, |
| 22 | 22 | pic: enum { nopic, pic, pie }, |
| 23 | 23 | |
| ... | ... | @@ -942,6 +942,7 @@ fn testOne(runner: *Runner, test_index: u32) (error{ServerWriteFailed} || TestEr |
| 942 | 942 | }; |
| 943 | 943 | defer { |
| 944 | 944 | update.manifest_sr.deinit(); |
| 945 | if (update.compiler) |*comp| comp.deinit(); | |
| 945 | 946 | update.src_dir.close(runner.io); |
| 946 | 947 | update.prog_node.end(); |
| 947 | 948 | } |
| ... | ... | @@ -1161,11 +1162,12 @@ fn handleCommand( |
| 1161 | 1162 | const triple_cpu = component_it.rest(); |
| 1162 | 1163 | var triple_len: usize = 0; |
| 1163 | 1164 | for (0..3) |_| { |
| 1165 | const component_start = triple_len; | |
| 1164 | 1166 | triple_len = if (std.mem.findScalarPos(u8, triple_cpu, triple_len, '-')) |dash_pos| |
| 1165 | 1167 | dash_pos + 1 |
| 1166 | 1168 | else |
| 1167 | 1169 | return update.fail("target {q} missing cpu", .{update.target_query}); |
| 1168 | if (std.mem.eql(u8, triple_cpu[0..triple_len], "native-")) break; | |
| 1170 | if (std.mem.eql(u8, triple_cpu[component_start..triple_len], "native-")) break; | |
| 1169 | 1171 | } |
| 1170 | 1172 | const triple = triple_cpu[0 .. triple_len - 1]; |
| 1171 | 1173 | const cpu = triple_cpu[triple_len..]; |
| ... | ... | @@ -1179,7 +1181,6 @@ fn handleCommand( |
| 1179 | 1181 | .cpu_features = cpu, |
| 1180 | 1182 | .object_format = switch (backend) { |
| 1181 | 1183 | .sema, .selfhosted, .llvm => null, |
| 1182 | .llvmir => "llvmir", | |
| 1183 | 1184 | .cbe => "c", |
| 1184 | 1185 | }, |
| 1185 | 1186 | .diagnostics = &query_parse_diags, |
| ... | ... | @@ -1393,7 +1394,6 @@ fn handleCommand( |
| 1393 | 1394 | } else return update.fail("unexpected stderr:\n{s}", .{stderr_buffered}); |
| 1394 | 1395 | } |
| 1395 | 1396 | |
| 1396 | try comp.exit(); | |
| 1397 | 1397 | return update.fail("compiler failed to send terminating error_bundle", .{}); |
| 1398 | 1398 | }, |
| 1399 | 1399 | } |
| ... | ... | @@ -1417,9 +1417,27 @@ fn spawnCompiler( |
| 1417 | 1417 | const gpa = runner.gpa; |
| 1418 | 1418 | const arena = runner.arena.allocator(); |
| 1419 | 1419 | if (compiler.*) |*comp| { |
| 1420 | try comp.exit(); | |
| 1420 | comp.deinit(); | |
| 1421 | 1421 | compiler.* = null; |
| 1422 | 1422 | } |
| 1423 | errdefer compiler.* = null; | |
| 1424 | ||
| 1425 | compiler.* = .{ | |
| 1426 | .runner = runner, | |
| 1427 | .allow_compiler_stderr = true, | |
| 1428 | .output_mode = output_mode, | |
| 1429 | .state = .idle, | |
| 1430 | .child = undefined, | |
| 1431 | .fw = undefined, | |
| 1432 | .mr_buffer = undefined, | |
| 1433 | .mr = undefined, | |
| 1434 | .client = undefined, | |
| 1435 | .target = target, | |
| 1436 | .emit_name = null, | |
| 1437 | .prog_node = .none, | |
| 1438 | .config = null, | |
| 1439 | }; | |
| 1440 | const comp = &compiler.*.?; | |
| 1423 | 1441 | |
| 1424 | 1442 | var argv: std.ArrayList([]const u8) = .empty; |
| 1425 | 1443 | defer argv.deinit(gpa); |
| ... | ... | @@ -1431,20 +1449,19 @@ fn spawnCompiler( |
| 1431 | 1449 | .Lib => "build-lib", |
| 1432 | 1450 | }, |
| 1433 | 1451 | "-target", |
| 1434 | target.triple, | |
| 1452 | comp.target.triple, | |
| 1435 | 1453 | "--cache-dir", |
| 1436 | 1454 | ".zig-cache", |
| 1437 | 1455 | }); |
| 1438 | switch (target.cache_mode) { | |
| 1456 | switch (comp.target.cache_mode) { | |
| 1439 | 1457 | .whole => {}, |
| 1440 | 1458 | .incremental => try argv.append(gpa, "-fincremental"), |
| 1441 | 1459 | } |
| 1442 | 1460 | var path_buffer: [std.Io.Dir.max_path_bytes]u8 = undefined; |
| 1443 | if (target.backend) |b| switch (b) { | |
| 1461 | if (comp.target.backend) |b| switch (b) { | |
| 1444 | 1462 | .sema => try argv.append(gpa, "-fno-emit-bin"), |
| 1445 | 1463 | .selfhosted => try argv.append(gpa, "-fno-llvm"), |
| 1446 | 1464 | .llvm => try argv.append(gpa, "-fllvm"), |
| 1447 | .llvmir => try argv.append(gpa, "-ofmt=llvmir"), | |
| 1448 | 1465 | .cbe => try argv.append(gpa, "-ofmt=c"), |
| 1449 | 1466 | } else try argv.appendSlice(gpa, &.{ "-I", path_buffer[0 .. (runner.args.lib_dir orelse |
| 1450 | 1467 | return runner.fail("\"--lib=path/to/lib\" arg required with cbe", .{})) |
| ... | ... | @@ -1452,12 +1469,12 @@ fn spawnCompiler( |
| 1452 | 1469 | error.Canceled => |e| return e, |
| 1453 | 1470 | else => |e| return runner.fail("unable to get lib path: {t}", .{e}), |
| 1454 | 1471 | }] }); |
| 1455 | switch (target.linker) { | |
| 1472 | switch (comp.target.linker) { | |
| 1456 | 1473 | .lld => try argv.appendSlice(gpa, &.{ "-flld", "-fno-new-linker" }), |
| 1457 | 1474 | .old => try argv.appendSlice(gpa, &.{ "-fno-lld", "-fno-new-linker" }), |
| 1458 | 1475 | .new => try argv.appendSlice(gpa, &.{ "-fno-lld", "-fnew-linker" }), |
| 1459 | 1476 | } |
| 1460 | switch (target.pic) { | |
| 1477 | switch (comp.target.pic) { | |
| 1461 | 1478 | .nopic => try argv.appendSlice(gpa, &.{ "-fno-PIC", "-fno-PIE" }), |
| 1462 | 1479 | .pic => try argv.appendSlice(gpa, &.{ "-fPIC", "-fno-PIE" }), |
| 1463 | 1480 | .pie => try argv.appendSlice(gpa, &.{ "-fPIC", "-fPIE" }), |
| ... | ... | @@ -1466,6 +1483,7 @@ fn spawnCompiler( |
| 1466 | 1483 | var need: usize = 1; |
| 1467 | 1484 | var state: enum { positional, @"--name" } = .positional; |
| 1468 | 1485 | var root_name: ?[]const u8 = null; |
| 1486 | var emit: ?std.zig.EmitArtifact = .bin; | |
| 1469 | 1487 | while (true) { |
| 1470 | 1488 | const done = if (args_r.fill(need)) false else |err| switch (err) { |
| 1471 | 1489 | error.ReadFailed => |e| return e, |
| ... | ... | @@ -1479,10 +1497,42 @@ fn spawnCompiler( |
| 1479 | 1497 | switch (state) { |
| 1480 | 1498 | .positional => if (std.mem.eql(u8, arg, "--name")) { |
| 1481 | 1499 | state = .@"--name"; |
| 1500 | } else if (std.mem.cutPrefix(u8, arg, "-ofmt=")) |ofmt| { | |
| 1501 | comp.target.resolved.ofmt = | |
| 1502 | std.meta.stringToEnum(std.Target.ObjectFormat, ofmt) orelse | |
| 1503 | return runner.fail("invalid object format {q}", .{ofmt}); | |
| 1482 | 1504 | } else if (std.mem.cutPrefix(u8, arg, "-M")) |module| { |
| 1483 | 1505 | var module_name_it = std.mem.splitScalar(u8, module, '='); |
| 1484 | 1506 | const module_name = module_name_it.next().?; |
| 1485 | 1507 | root_name = root_name orelse module_name; |
| 1508 | } else if (std.mem.eql(u8, arg, "-femit-asm")) { | |
| 1509 | emit = .@"asm"; | |
| 1510 | } else if (std.mem.eql(u8, arg, "-femit-bin")) { | |
| 1511 | emit = .bin; | |
| 1512 | } else if (std.mem.eql(u8, arg, "-femit-docs")) { | |
| 1513 | emit = .docs; | |
| 1514 | } else if (std.mem.eql(u8, arg, "-femit-h")) { | |
| 1515 | emit = .h; | |
| 1516 | } else if (std.mem.eql(u8, arg, "-femit-implib")) { | |
| 1517 | emit = .implib; | |
| 1518 | } else if (std.mem.eql(u8, arg, "-femit-llvm-bc")) { | |
| 1519 | emit = .llvm_bc; | |
| 1520 | } else if (std.mem.eql(u8, arg, "-femit-llvm-ir")) { | |
| 1521 | emit = .llvm_ir; | |
| 1522 | } else if (std.mem.eql(u8, arg, "-fno-emit-asm")) { | |
| 1523 | if (emit == .@"asm") emit = null; | |
| 1524 | } else if (std.mem.eql(u8, arg, "-fno-emit-bin")) { | |
| 1525 | if (emit == .bin) emit = null; | |
| 1526 | } else if (std.mem.eql(u8, arg, "-fno-emit-docs")) { | |
| 1527 | if (emit == .docs) emit = null; | |
| 1528 | } else if (std.mem.eql(u8, arg, "-fno-emit-h")) { | |
| 1529 | if (emit == .h) emit = null; | |
| 1530 | } else if (std.mem.eql(u8, arg, "-fno-emit-implib")) { | |
| 1531 | if (emit == .implib) emit = null; | |
| 1532 | } else if (std.mem.eql(u8, arg, "-fno-emit-llvm-bc")) { | |
| 1533 | if (emit == .llvm_bc) emit = null; | |
| 1534 | } else if (std.mem.eql(u8, arg, "-fno-emit-llvm-ir")) { | |
| 1535 | if (emit == .llvm_ir) emit = null; | |
| 1486 | 1536 | }, |
| 1487 | 1537 | .@"--name" => { |
| 1488 | 1538 | root_name = arg; |
| ... | ... | @@ -1500,27 +1550,27 @@ fn spawnCompiler( |
| 1500 | 1550 | } |
| 1501 | 1551 | try argv.append(gpa, "--listen=-"); |
| 1502 | 1552 | |
| 1503 | const out_name = try std.zig.EmitArtifact.bin.cacheName(arena, .{ | |
| 1553 | comp.emit_name = if (emit) |e| try e.cacheName(arena, .{ | |
| 1504 | 1554 | .root_name = root_name orelse "root", |
| 1505 | .cpu_arch = target.resolved.cpu.arch, | |
| 1506 | .os_tag = target.resolved.os.tag, | |
| 1507 | .ofmt = target.resolved.ofmt, | |
| 1508 | .abi = target.resolved.abi, | |
| 1555 | .cpu_arch = comp.target.resolved.cpu.arch, | |
| 1556 | .os_tag = comp.target.resolved.os.tag, | |
| 1557 | .ofmt = comp.target.resolved.ofmt, | |
| 1558 | .abi = comp.target.resolved.abi, | |
| 1509 | 1559 | .output_mode = output_mode, |
| 1510 | }); | |
| 1560 | }) else null; | |
| 1511 | 1561 | |
| 1512 | 1562 | var name_buffer: [std.Progress.Node.max_name_len]u8 = undefined; |
| 1513 | const comp_prog_node = runner.prog_node.start(std.mem.print(&name_buffer, "compile {s}", .{ | |
| 1514 | out_name, | |
| 1563 | comp.prog_node = runner.prog_node.start(std.mem.print(&name_buffer, "compile {s}", .{ | |
| 1564 | comp.emit_name orelse root_name orelse "root", | |
| 1515 | 1565 | }) catch &name_buffer, 0); |
| 1516 | errdefer comp_prog_node.end(); | |
| 1566 | errdefer comp.prog_node.end(); | |
| 1517 | 1567 | |
| 1518 | const child = std.process.spawn(runner.io, .{ | |
| 1568 | comp.child = std.process.spawn(runner.io, .{ | |
| 1519 | 1569 | .exe = .{ .file = runner.args.zig_exe orelse |
| 1520 | 1570 | return runner.fail("missing \"--zig=path/to/zig\" arg", .{}) }, |
| 1521 | 1571 | .argv = argv.items, |
| 1522 | 1572 | .cwd = .{ .dir = src_dir }, |
| 1523 | .progress_node = comp_prog_node, | |
| 1573 | .progress_node = comp.prog_node, | |
| 1524 | 1574 | .stdin = .pipe, |
| 1525 | 1575 | .stdout = .pipe, |
| 1526 | 1576 | .stderr = .pipe, |
| ... | ... | @@ -1529,31 +1579,14 @@ fn spawnCompiler( |
| 1529 | 1579 | error.OperationUnsupported => return error.SkipTest, |
| 1530 | 1580 | else => |e| return runner.fail("unable to spawn compiler: {t}", .{e}), |
| 1531 | 1581 | }; |
| 1532 | compiler.* = .{ | |
| 1533 | .runner = runner, | |
| 1534 | .prog_node = comp_prog_node, | |
| 1535 | .allow_compiler_stderr = true, | |
| 1536 | .output_mode = output_mode, | |
| 1537 | .state = .idle, | |
| 1538 | .child = child, | |
| 1539 | .fw = undefined, | |
| 1540 | .mr_buffer = undefined, | |
| 1541 | .mr = undefined, | |
| 1542 | .client = undefined, | |
| 1543 | .target = target, | |
| 1544 | .out_name = out_name, | |
| 1545 | .config = null, | |
| 1546 | }; | |
| 1547 | const comp = &compiler.*.?; | |
| 1548 | comp.fw = child.stdin.?.writerStreaming(runner.io, &.{}); | |
| 1582 | comp.fw = comp.child.stdin.?.writerStreaming(runner.io, &.{}); | |
| 1549 | 1583 | comp.mr.init(gpa, runner.io, comp.mr_buffer.toStreams(), &.{ |
| 1550 | child.stdout.?, child.stderr.?, | |
| 1584 | comp.child.stdout.?, comp.child.stderr.?, | |
| 1551 | 1585 | }); |
| 1552 | 1586 | comp.client = .{ .in = comp.mr.reader(0), .out = &comp.fw.interface }; |
| 1553 | 1587 | } |
| 1554 | 1588 | const Compiler = struct { |
| 1555 | 1589 | runner: *Runner, |
| 1556 | prog_node: std.Progress.Node, | |
| 1557 | 1590 | allow_compiler_stderr: bool, |
| 1558 | 1591 | output_mode: std.lang.OutputMode, |
| 1559 | 1592 | state: enum { idle, update }, |
| ... | ... | @@ -1563,7 +1596,8 @@ const Compiler = struct { |
| 1563 | 1596 | mr: std.Io.File.MultiReader, |
| 1564 | 1597 | client: std.zig.Client, |
| 1565 | 1598 | target: Compiler.Target, |
| 1566 | out_name: []const u8, | |
| 1599 | emit_name: ?[]const u8, | |
| 1600 | prog_node: std.Progress.Node, | |
| 1567 | 1601 | config: ?std.zig.Server.Message.Config, |
| 1568 | 1602 | |
| 1569 | 1603 | const Target = struct { |
| ... | ... | @@ -1586,8 +1620,6 @@ const Compiler = struct { |
| 1586 | 1620 | /// Use the LLVM backend. |
| 1587 | 1621 | /// Corresponds to `-fllvm -flld`. |
| 1588 | 1622 | llvm, |
| 1589 | /// Use the LLVM backend without libLLVM. | |
| 1590 | llvmir, | |
| 1591 | 1623 | /// Use the C backend. The output is compiled with `zig cc`. |
| 1592 | 1624 | /// Corresponds to `-ofmt=c`. |
| 1593 | 1625 | cbe, |
| ... | ... | @@ -1598,6 +1630,12 @@ const Compiler = struct { |
| 1598 | 1630 | const Pic = enum { nopic, pic, pie }; |
| 1599 | 1631 | }; |
| 1600 | 1632 | |
| 1633 | fn deinit(comp: *Compiler) void { | |
| 1634 | comp.child.kill(comp.runner.io); | |
| 1635 | comp.prog_node.end(); | |
| 1636 | comp.prog_node = .none; | |
| 1637 | } | |
| 1638 | ||
| 1601 | 1639 | fn receiveMessage(comp: *Compiler) FailError!?struct { |
| 1602 | 1640 | tag: std.zig.Server.Message.Tag, |
| 1603 | 1641 | body: []const u8, |
| ... | ... | @@ -1639,6 +1677,11 @@ const Compiler = struct { |
| 1639 | 1677 | const arena = runner.arena.allocator(); |
| 1640 | 1678 | const io = runner.io; |
| 1641 | 1679 | const target = &comp.target.resolved; |
| 1680 | const emit_name = switch (check) { | |
| 1681 | else => comp.emit_name orelse | |
| 1682 | return update.fail("unable to perform {t} check without emitted file", .{check}), | |
| 1683 | .errors => return, // expect no emitted file | |
| 1684 | }; | |
| 1642 | 1685 | const config = &comp.config.?; |
| 1643 | 1686 | var path_buffer: [std.Io.Dir.max_path_bytes]u8 = undefined; |
| 1644 | 1687 | |
| ... | ... | @@ -1655,14 +1698,49 @@ const Compiler = struct { |
| 1655 | 1698 | }), |
| 1656 | 1699 | }; |
| 1657 | 1700 | |
| 1658 | var argv: std.ArrayList([]const u8) = .initBuffer(try arena.alloc([]const u8, 5 + 4)); | |
| 1701 | const emit_path = emit_path: { | |
| 1702 | const emit_dir_path = ".zig-cache" ++ std.Io.Dir.path.sep_str ++ | |
| 1703 | "o" ++ std.Io.Dir.path.sep_str ++ std.Build.Cache.binToHex(digest.*); | |
| 1704 | const emit_path = | |
| 1705 | try std.Io.Dir.path.join(arena, &.{ emit_dir_path, emit_name }); | |
| 1706 | break :emit_path switch (comp.target.backend.?) { | |
| 1707 | .sema => return, | |
| 1708 | .selfhosted, .llvm => emit_path, | |
| 1709 | .cbe => try comp.compileC(update.src_dir, emit_path), | |
| 1710 | }; | |
| 1711 | }; | |
| 1712 | ||
| 1713 | const emit_file = update.src_dir.openFile(io, emit_path, .{}) catch |err| switch (err) { | |
| 1714 | error.Canceled => |e| return e, | |
| 1715 | else => |e| return update.fail("unable to open {q}: {t}", .{ emit_path, e }), | |
| 1716 | }; | |
| 1717 | defer emit_file.close(io); | |
| 1718 | ||
| 1719 | var argv: std.ArrayList([]const u8) = try .initCapacity(arena, 5 + 4); | |
| 1659 | 1720 | var environ_map: std.process.Environ.Map = .init(gpa); |
| 1660 | 1721 | defer environ_map.deinit(); |
| 1661 | 1722 | try environ_map.putAll(&runner.environ_map); |
| 1662 | 1723 | var script_buffer: [512]u8 = undefined; |
| 1663 | 1724 | const script_path, const script_file, var script_fw = script: switch (check) { |
| 1664 | .errors => return, | |
| 1665 | .stdout, .exit, .llvm => .{ undefined, null, undefined }, | |
| 1725 | .errors => unreachable, | |
| 1726 | .stdout, .exit => .{ undefined, null, undefined }, | |
| 1727 | .llvm => { | |
| 1728 | var emit_fr = emit_file.reader(io, &.{}); | |
| 1729 | const actual = emit_fr.interface.readAllocAll(arena, @intCast( | |
| 1730 | emit_fr.getSize() catch |err| switch (err) { | |
| 1731 | error.Canceled => |e| return e, | |
| 1732 | else => |e| return runner.fail("unable to get size of {q}: {t}", .{ emit_path, e }), | |
| 1733 | }, | |
| 1734 | )) catch |err| switch (switch (err) { | |
| 1735 | error.OutOfMemory => |e| return e, | |
| 1736 | error.EndOfStream => |e| e, | |
| 1737 | error.ReadFailed => emit_fr.err.?, | |
| 1738 | }) { | |
| 1739 | error.Canceled => |e| return e, | |
| 1740 | else => |e| return runner.fail("unable to read {q}: {t}", .{ emit_path, e }), | |
| 1741 | }; | |
| 1742 | return update.checkMatches("LLVM IR", expected, actual); | |
| 1743 | }, | |
| 1666 | 1744 | .gdb => { |
| 1667 | 1745 | const script_path = tmp_dir_path ++ std.Io.Dir.path.sep_str ++ "gdb"; |
| 1668 | 1746 | argv.appendSliceAssumeCapacity(&.{ "gdb", "--batch", "--command", script_path, "--args" }); |
| ... | ... | @@ -1721,15 +1799,6 @@ const Compiler = struct { |
| 1721 | 1799 | }; |
| 1722 | 1800 | defer if (script_file) |file| file.close(io); |
| 1723 | 1801 | |
| 1724 | const out_dir_path = ".zig-cache" ++ std.Io.Dir.path.sep_str ++ | |
| 1725 | "o" ++ std.Io.Dir.path.sep_str ++ std.Build.Cache.binToHex(digest.*); | |
| 1726 | const out_path = try std.Io.Dir.path.join(arena, &.{ out_dir_path, comp.out_name }); | |
| 1727 | const bin_path = switch (comp.target.backend.?) { | |
| 1728 | .sema => return, | |
| 1729 | .selfhosted, .llvm, .llvmir => out_path, | |
| 1730 | .cbe => try comp.compileC(update.src_dir, out_path), | |
| 1731 | }; | |
| 1732 | ||
| 1733 | 1802 | const need_cross_libc = |
| 1734 | 1803 | target.os.tag == .linux and config.flags.link_libc and config.flags.link_mode == .dynamic; |
| 1735 | 1804 | const use_executor = use_executor: switch (std.zig.system.getExternalExecutor(io, target, .{ |
| ... | ... | @@ -1796,7 +1865,7 @@ const Compiler = struct { |
| 1796 | 1865 | break :use_executor true; |
| 1797 | 1866 | } else continue :use_executor .bad_os_or_cpu, |
| 1798 | 1867 | }; |
| 1799 | argv.appendAssumeCapacity(bin_path); | |
| 1868 | argv.appendAssumeCapacity(emit_path); | |
| 1800 | 1869 | |
| 1801 | 1870 | if (!runner.args.quiet) std.log.info("{f}", .{std.zig.SubprocessCommand{ |
| 1802 | 1871 | .argv = argv.items, |
| ... | ... | @@ -1815,41 +1884,19 @@ const Compiler = struct { |
| 1815 | 1884 | |
| 1816 | 1885 | var name_buffer: [std.Progress.Node.max_name_len]u8 = undefined; |
| 1817 | 1886 | const run_prog_node = runner.prog_node.start(std.mem.print(&name_buffer, "run {s}", .{ |
| 1818 | comp.out_name, | |
| 1887 | emit_name, | |
| 1819 | 1888 | }) catch &name_buffer, 0); |
| 1820 | 1889 | defer run_prog_node.end(); |
| 1821 | 1890 | |
| 1822 | const bin_file = update.src_dir.openFile(io, bin_path, .{}) catch |err| switch (err) { | |
| 1823 | error.Canceled => |e| return e, | |
| 1824 | else => |e| return update.fail("unable to open {q}: {t}", .{ bin_path, e }), | |
| 1825 | }; | |
| 1826 | defer bin_file.close(io); | |
| 1827 | 1891 | const result = std.process.run(gpa, io, .{ |
| 1828 | 1892 | .exe = exe: switch (check) { |
| 1829 | .errors => unreachable, | |
| 1830 | .stdout, .exit => if (use_executor) .search else .{ .file = bin_file }, | |
| 1831 | .llvm => { | |
| 1832 | var bin_fr = bin_file.reader(io, &.{}); | |
| 1833 | const actual = bin_fr.interface.readAllocAll(arena, @intCast( | |
| 1834 | bin_fr.getSize() catch |err| switch (err) { | |
| 1835 | error.Canceled => |e| return e, | |
| 1836 | else => |e| return runner.fail("unable to get size of {q}: {t}", .{ bin_path, e }), | |
| 1837 | }, | |
| 1838 | )) catch |err| switch (switch (err) { | |
| 1839 | error.OutOfMemory => |e| return e, | |
| 1840 | error.EndOfStream => |e| e, | |
| 1841 | error.ReadFailed => bin_fr.err.?, | |
| 1842 | }) { | |
| 1843 | error.Canceled => |e| return e, | |
| 1844 | else => |e| return runner.fail("unable to read {q}: {t}", .{ bin_path, e }), | |
| 1845 | }; | |
| 1846 | return update.checkMatches("LLVM IR", expected, actual); | |
| 1847 | }, | |
| 1893 | .errors, .llvm => unreachable, | |
| 1894 | .stdout, .exit => if (use_executor) .search else .{ .file = emit_file }, | |
| 1848 | 1895 | .gdb, .lldb => { |
| 1849 | 1896 | if (use_executor) { |
| 1850 | 1897 | if (!runner.args.quiet) std.log.warn( |
| 1851 | 1898 | "skipping debugging of {q} via executor for foreign target {q}", |
| 1852 | .{ bin_path, comp.target.triple }, | |
| 1899 | .{ emit_path, comp.target.triple }, | |
| 1853 | 1900 | ); |
| 1854 | 1901 | return; |
| 1855 | 1902 | } |
| ... | ... | @@ -1895,7 +1942,7 @@ const Compiler = struct { |
| 1895 | 1942 | } orelse { |
| 1896 | 1943 | if (!runner.args.quiet) std.log.warn( |
| 1897 | 1944 | "skipping debugging of {q} because of missing \"--{t}=path/to/{[1]t}\" arg", |
| 1898 | .{ bin_path, check }, | |
| 1945 | .{ emit_path, check }, | |
| 1899 | 1946 | ); |
| 1900 | 1947 | return; |
| 1901 | 1948 | } }; |
| ... | ... | @@ -1909,11 +1956,11 @@ const Compiler = struct { |
| 1909 | 1956 | // Chances are the foreign executor isn't available. Skip this evaluation. |
| 1910 | 1957 | if (!runner.args.quiet) std.log.warn( |
| 1911 | 1958 | "skipping execution of {q} via executor for foreign target {q}: {t}", |
| 1912 | .{ bin_path, comp.target.triple, err }, | |
| 1959 | .{ emit_path, comp.target.triple, err }, | |
| 1913 | 1960 | ); |
| 1914 | 1961 | return; |
| 1915 | 1962 | } else return update.fail("unable to run the generated executable {q}: {t}", .{ |
| 1916 | bin_path, err, | |
| 1963 | emit_path, err, | |
| 1917 | 1964 | }); |
| 1918 | 1965 | defer { |
| 1919 | 1966 | gpa.free(result.stdout); |
| ... | ... | @@ -1925,7 +1972,7 @@ const Compiler = struct { |
| 1925 | 1972 | .stdout => { |
| 1926 | 1973 | if (code != 0) return update.fail( |
| 1927 | 1974 | "generated executable {q} failed with code {d}", |
| 1928 | .{ bin_path, code }, | |
| 1975 | .{ emit_path, code }, | |
| 1929 | 1976 | ); |
| 1930 | 1977 | std.testing.expectEqualStrings( |
| 1931 | 1978 | expected, |
| ... | ... | @@ -1953,27 +2000,27 @@ const Compiler = struct { |
| 1953 | 2000 | .gdb, .lldb => { |
| 1954 | 2001 | if (code != debug_success) return update.fail( |
| 1955 | 2002 | "debugging {q} failed with code {d}", |
| 1956 | .{ bin_path, code }, | |
| 2003 | .{ emit_path, code }, | |
| 1957 | 2004 | ); |
| 1958 | 2005 | try update.checkMatches("stdout", expected, result.stdout); |
| 1959 | 2006 | }, |
| 1960 | 2007 | }, |
| 1961 | 2008 | .signal => |sig| return update.fail( |
| 1962 | 2009 | "generated executable {q} terminated with signal {t}", |
| 1963 | .{ bin_path, sig }, | |
| 2010 | .{ emit_path, sig }, | |
| 1964 | 2011 | ), |
| 1965 | 2012 | .stopped => |sig| return update.fail( |
| 1966 | 2013 | "generated executable {q} stopped with signal {t}", |
| 1967 | .{ bin_path, sig }, | |
| 2014 | .{ emit_path, sig }, | |
| 1968 | 2015 | ), |
| 1969 | 2016 | .unknown => return update.fail( |
| 1970 | 2017 | "generated executable {q} terminated unexpectedly", |
| 1971 | .{bin_path}, | |
| 2018 | .{emit_path}, | |
| 1972 | 2019 | ), |
| 1973 | 2020 | } |
| 1974 | 2021 | if (!use_executor and result.stderr.len > 0) { |
| 1975 | 2022 | std.log.err("#update {q} generated executable {q} had unexpected stderr:\n{s}", .{ |
| 1976 | update.name, bin_path, result.stderr, | |
| 2023 | update.name, emit_path, result.stderr, | |
| 1977 | 2024 | }); |
| 1978 | 2025 | } |
| 1979 | 2026 | } |
| ... | ... | @@ -1999,6 +2046,7 @@ const Compiler = struct { |
| 1999 | 2046 | error.ReadFailed => unreachable, // .fixed |
| 2000 | 2047 | }; |
| 2001 | 2048 | const comp = &compiler.?; |
| 2049 | defer comp.deinit(); | |
| 2002 | 2050 | comp.client.serveBodylessMessage(.update) catch |err| switch (err) { |
| 2003 | 2051 | error.WriteFailed => switch (comp.fw.err.?) { |
| 2004 | 2052 | error.Canceled => |e| return e, |
| ... | ... | @@ -2006,7 +2054,7 @@ const Compiler = struct { |
| 2006 | 2054 | }, |
| 2007 | 2055 | }; |
| 2008 | 2056 | comp.state = .update; |
| 2009 | var out_path: ?[]const u8 = null; | |
| 2057 | var emit_path: ?[]const u8 = null; | |
| 2010 | 2058 | while (try comp.receiveMessage()) |message| switch (message.tag) { |
| 2011 | 2059 | else => {}, // Ignore other messages, |
| 2012 | 2060 | .config => { |
| ... | ... | @@ -2019,9 +2067,9 @@ const Compiler = struct { |
| 2019 | 2067 | _ = body_r.takeStruct(std.zig.Server.Message.EmitDigest, .little) catch unreachable; |
| 2020 | 2068 | const digest = body_r.takeArray(std.Build.Cache.bin_digest_len) catch unreachable; |
| 2021 | 2069 | |
| 2022 | const out_dir = ".zig-cache" ++ std.Io.Dir.path.sep_str ++ | |
| 2070 | const emit_dir = ".zig-cache" ++ std.Io.Dir.path.sep_str ++ | |
| 2023 | 2071 | "o" ++ std.Io.Dir.path.sep_str ++ std.Build.Cache.binToHex(digest.*); |
| 2024 | out_path = try std.Io.Dir.path.join(arena, &.{ out_dir, comp.out_name }); | |
| 2072 | emit_path = try std.Io.Dir.path.join(arena, &.{ emit_dir, comp.emit_name.? }); | |
| 2025 | 2073 | }, |
| 2026 | 2074 | .error_bundle => { |
| 2027 | 2075 | const eb = std.zig.Server.allocErrorBundle( |
| ... | ... | @@ -2040,7 +2088,7 @@ const Compiler = struct { |
| 2040 | 2088 | }, |
| 2041 | 2089 | }; |
| 2042 | 2090 | try comp.exit(); |
| 2043 | return out_path.?; | |
| 2091 | return emit_path.?; | |
| 2044 | 2092 | } |
| 2045 | 2093 | |
| 2046 | 2094 | fn exit(comp: *Compiler) FailError!void { |
| ... | ... | @@ -2058,7 +2106,6 @@ const Compiler = struct { |
| 2058 | 2106 | if (comp.client.in.bufferedLen() > 0) return runner.fail("unable to receive messages", .{}); |
| 2059 | 2107 | const term = comp.child.wait(runner.io) catch |err| |
| 2060 | 2108 | return runner.fail("child process failed: {t}", .{err}); |
| 2061 | comp.prog_node.end(); | |
| 2062 | 2109 | switch (term) { |
| 2063 | 2110 | .exited => |code| if (code != 0) |
| 2064 | 2111 | return runner.fail("compiler failed with code {d}", .{code}), |
| ... | ... | @@ -2309,8 +2356,8 @@ pub fn main(init: std.process.Init) (std.mem.Allocator.Error || std.Io.Cancelabl |
| 2309 | 2356 | }; |
| 2310 | 2357 | } |
| 2311 | 2358 | |
| 2312 | var inherit_dirs: std.ArrayList(std.Io.Dir) = .initBuffer(try arena.alloc(std.Io.Dir, 3)); | |
| 2313 | var inherit_files: std.ArrayList(std.Io.File) = .initBuffer(try arena.alloc(std.Io.File, 4)); | |
| 2359 | var inherit_dirs: std.ArrayList(std.Io.Dir) = try .initCapacity(arena, 3); | |
| 2360 | var inherit_files: std.ArrayList(std.Io.File) = try .initCapacity(arena, 4); | |
| 2314 | 2361 | inherit_files.appendSliceAssumeCapacity(&.{ args.test_file, args.zig_exe }); |
| 2315 | 2362 | inherit_dirs.appendSliceAssumeCapacity(&.{ args.lib_dir, args.src_dir }); |
| 2316 | 2363 | if (args.libc_runtimes_dir) |libc_runtimes_dir| inherit_dirs.appendAssumeCapacity(libc_runtimes_dir); |
test/llvm-ir/allowzero deleted-72| ... | ... | @@ -1,72 +0,0 @@ |
| 1 | #obj { | |
| 2 | --name test | |
| 3 | -Mroot=test.zig | |
| 4 | #} | |
| 5 | ||
| 6 | #write test.zig { | |
| 7 | export fn entry(ptr: *allowzero i16) i16 { | |
| 8 | return ptr.*; | |
| 9 | } | |
| 10 | #} | |
| 11 | #update "load" | |
| 12 | #check llvm { | |
| 13 | define #...@test.entry(ptr #...%0) #...#0 #...{ | |
| 14 | #...load i16, ptr %0#... | |
| 15 | } | |
| 16 | ||
| 17 | #... | |
| 18 | attributes #0 = {#... null_pointer_is_valid #...} | |
| 19 | #} | |
| 20 | ||
| 21 | #write test.zig { | |
| 22 | export fn entry(ptr: *allowzero i16) void { | |
| 23 | ptr.* = 42; | |
| 24 | } | |
| 25 | #} | |
| 26 | #update "store" | |
| 27 | #check llvm { | |
| 28 | define #...@test.entry(ptr #...%0) #...#0 #...{ | |
| 29 | #...store i16 42, ptr %0#... | |
| 30 | } | |
| 31 | ||
| 32 | #... | |
| 33 | attributes #0 = {#... null_pointer_is_valid #...} | |
| 34 | #} | |
| 35 | ||
| 36 | #write test.zig { | |
| 37 | export fn entry(ptr: *allowzero i16) i16 { | |
| 38 | return entry2(ptr[0..1]); | |
| 39 | } | |
| 40 | fn entry2(slice: []allowzero i16) i16 { | |
| 41 | @setRuntimeSafety(false); | |
| 42 | return slice[0]; | |
| 43 | } | |
| 44 | #} | |
| 45 | #update "slice load" | |
| 46 | #check llvm { | |
| 47 | define #...@test.entry2(#..., ptr #...%1, #...) #...#2 #...{ | |
| 48 | #...load i16, ptr %#... | |
| 49 | } | |
| 50 | ||
| 51 | #... | |
| 52 | attributes #2 = {#... null_pointer_is_valid #...} | |
| 53 | #} | |
| 54 | ||
| 55 | #write test.zig { | |
| 56 | export fn entry(ptr: *allowzero i16) void { | |
| 57 | entry2(ptr[0..1]); | |
| 58 | } | |
| 59 | fn entry2(slice: []allowzero i16) void { | |
| 60 | @setRuntimeSafety(false); | |
| 61 | slice[0] = 42; | |
| 62 | } | |
| 63 | #} | |
| 64 | #update "slice store" | |
| 65 | #check llvm { | |
| 66 | define #...@test.entry2(#..., ptr #...%1, #...) #...#2 #...{ | |
| 67 | #...store i16 42, ptr %#... | |
| 68 | } | |
| 69 | ||
| 70 | #... | |
| 71 | attributes #2 = {#... null_pointer_is_valid #...} | |
| 72 | #} |
test/llvm-ir/array_to_vector deleted-38| ... | ... | @@ -1,38 +0,0 @@ |
| 1 | #obj { | |
| 2 | --name test | |
| 3 | -Mroot=test.zig | |
| 4 | #} | |
| 5 | ||
| 6 | #write test.zig { | |
| 7 | export fn entry(arr: *const [16]u8) @Vector(16, u8) { | |
| 8 | return arr.*; | |
| 9 | } | |
| 10 | #} | |
| 11 | #update "one vector load" | |
| 12 | #check llvm { | |
| 13 | define #...<16 x i8> @test.entry(#...) #...{ | |
| 14 | #... | |
| 15 | %1 = alloca [16 x i8], align 1#... | |
| 16 | %3 = load <16 x i8>, ptr %1, align 1#... | |
| 17 | ret <16 x i8> %3#... | |
| 18 | #} | |
| 19 | ||
| 20 | #write test.zig { | |
| 21 | export fn entry(a: *@Vector(8, u8), b: *@Vector(8, u8), src: [*]const u8) void { | |
| 22 | const q: @Vector(16, u8) = src[0..16].*; | |
| 23 | a.* = @shuffle(u8, q, undefined, @Vector(8, i32){ 0, 1, 2, 3, 4, 5, 6, 7 }); | |
| 24 | b.* = @shuffle(u8, q, undefined, @Vector(8, i32){ 7, 8, 9, 10, 11, 12, 13, 14 }); | |
| 25 | } | |
| 26 | #} | |
| 27 | #update "feeding overlapping shuffles" | |
| 28 | #check llvm { | |
| 29 | define #...void @test.entry(ptr #...%0, ptr #...%1, #...) #...{ | |
| 30 | #... | |
| 31 | %11 = load <16 x i8>, ptr %#... | |
| 32 | %12 = shufflevector <16 x i8> %11, #... | |
| 33 | store <8 x i8> %12, ptr %0, align 8#... | |
| 34 | %13 = shufflevector <16 x i8> %11, #... | |
| 35 | store <8 x i8> %13, ptr %1, align 8#... | |
| 36 | ret void#... | |
| 37 | } | |
| 38 | #} |
test/llvm-ir/dead_store deleted-43| ... | ... | @@ -1,43 +0,0 @@ |
| 1 | #obj { | |
| 2 | --name test | |
| 3 | -Mroot=test.zig | |
| 4 | #} | |
| 5 | ||
| 6 | #write test.zig { | |
| 7 | export fn entry(ptr: *volatile i16) void { | |
| 8 | ptr.* = 123; | |
| 9 | ptr.* = 321; | |
| 10 | } | |
| 11 | #} | |
| 12 | #update "volatile" | |
| 13 | #check llvm { | |
| 14 | define #...@test.entry(ptr #...%0) #...{ | |
| 15 | #...store volatile i16 123, ptr %0#... | |
| 16 | #...store volatile i16 321, ptr %0#... | |
| 17 | } | |
| 18 | ||
| 19 | #} | |
| 20 | ||
| 21 | #write test.zig { | |
| 22 | export fn entry(ptr: *volatile i16) void { | |
| 23 | entry2(ptr[0..1]); | |
| 24 | } | |
| 25 | fn entry2(slice: []volatile i16) void { | |
| 26 | @setRuntimeSafety(false); | |
| 27 | slice[0] = 123; | |
| 28 | slice[0] = 321; | |
| 29 | } | |
| 30 | #} | |
| 31 | #update "volatile slice" | |
| 32 | #check llvm { | |
| 33 | define #...@test.entry(#...) #...{ | |
| 34 | #... | |
| 35 | } | |
| 36 | ||
| 37 | #... | |
| 38 | define #...@test.entry2(#...) #...{ | |
| 39 | #...store volatile i16 123, ptr %#... | |
| 40 | #...store volatile i16 321, ptr %#... | |
| 41 | } | |
| 42 | ||
| 43 | #} |
test/llvm-ir/load_store_bool deleted-28| ... | ... | @@ -1,28 +0,0 @@ |
| 1 | #obj { | |
| 2 | --name test | |
| 3 | -Mroot=test.zig | |
| 4 | #} | |
| 5 | ||
| 6 | #write test.zig { | |
| 7 | export fn foo(a: *bool, b: *align(2) bool) void { | |
| 8 | const tmp = a.*; | |
| 9 | a.* = b.*; | |
| 10 | b.* = tmp; | |
| 11 | } | |
| 12 | #} | |
| 13 | #update | |
| 14 | #check llvm { | |
| 15 | define #...void @test.foo(ptr #...%0, ptr #...%1) #...{ | |
| 16 | #... | |
| 17 | %5 = load i8, ptr %0, align 1#... | |
| 18 | %6 = trunc nuw i8 %5 to i1#... | |
| 19 | %8 = load i8, ptr %1, align 2#... | |
| 20 | %9 = trunc nuw i8 %8 to i1#... | |
| 21 | %10 = zext i1 %9 to i8#... | |
| 22 | store i8 %10, ptr %0, align 1#... | |
| 23 | %11 = zext i1 %6 to i8#... | |
| 24 | store i8 %11, ptr %1, align 2#... | |
| 25 | ret void#... | |
| 26 | } | |
| 27 | ||
| 28 | #} |
test/llvm-ir/matrix.zon deleted-8| ... | ... | @@ -1,8 +0,0 @@ |
| 1 | .{ | |
| 2 | .{ | |
| 3 | .cache_mode = .whole, | |
| 4 | .backend = .llvmir, | |
| 5 | .linker = .old, | |
| 6 | .pic = .pic, | |
| 7 | }, | |
| 8 | } |
test/llvm-ir/nonnull deleted-30| ... | ... | @@ -1,30 +0,0 @@ |
| 1 | #obj { | |
| 2 | --name test | |
| 3 | -Mroot=test.zig | |
| 4 | #} | |
| 5 | ||
| 6 | #write test.zig { | |
| 7 | export fn entry(ptr: *i16) i16 { | |
| 8 | return ptr.*; | |
| 9 | } | |
| 10 | #} | |
| 11 | #update "store" | |
| 12 | #check llvm { | |
| 13 | define #...@test.entry(ptr #...nonnull #...%0) #...{ | |
| 14 | #...load i16, ptr %0#... | |
| 15 | } | |
| 16 | ||
| 17 | #} | |
| 18 | ||
| 19 | #write test.zig { | |
| 20 | export fn entry(ptr: *i16) void { | |
| 21 | ptr.* = 42; | |
| 22 | } | |
| 23 | #} | |
| 24 | #update "load" | |
| 25 | #check llvm { | |
| 26 | define #...@test.entry(ptr #...nonnull #...%0) #...{ | |
| 27 | #...store i16 42, ptr %0#... | |
| 28 | } | |
| 29 | ||
| 30 | #} |
test/llvm-ir/unused_load deleted-79| ... | ... | @@ -1,79 +0,0 @@ |
| 1 | #obj { | |
| 2 | --name test | |
| 3 | -Mroot=test.zig | |
| 4 | #} | |
| 5 | ||
| 6 | #write test.zig { | |
| 7 | export fn entry(ptr: *i16) void { | |
| 8 | _ = @atomicLoad(i16, ptr, .acquire); | |
| 9 | } | |
| 10 | #} | |
| 11 | #update "atomic acquire" | |
| 12 | #check llvm { | |
| 13 | define #...@test.entry(ptr #...%0) #...{ | |
| 14 | #...load atomic i16, ptr %0 acquire#... | |
| 15 | } | |
| 16 | ||
| 17 | #} | |
| 18 | ||
| 19 | #write test.zig { | |
| 20 | export fn entry(ptr: *volatile i16) void { | |
| 21 | _ = @atomicLoad(i16, ptr, .unordered); | |
| 22 | } | |
| 23 | #} | |
| 24 | #update "atomic volatile unordered" | |
| 25 | #check llvm { | |
| 26 | define #...@test.entry(ptr #...%0) #...{ | |
| 27 | #...load atomic volatile i16, ptr %0 unordered#... | |
| 28 | } | |
| 29 | ||
| 30 | #} | |
| 31 | ||
| 32 | #write test.zig { | |
| 33 | export fn entry(ptr: *volatile i16) void { | |
| 34 | _ = ptr.*; | |
| 35 | } | |
| 36 | #} | |
| 37 | #update "volatile" | |
| 38 | #check llvm { | |
| 39 | define #...@test.entry(ptr #...%0) #...{ | |
| 40 | #...load volatile i16, ptr %0#... | |
| 41 | } | |
| 42 | ||
| 43 | #} | |
| 44 | ||
| 45 | #write test.zig { | |
| 46 | export fn entry(ptr: *volatile i16) void { | |
| 47 | entry2(ptr[0..1]); | |
| 48 | } | |
| 49 | fn entry2(slice: []volatile i16) void { | |
| 50 | @setRuntimeSafety(false); | |
| 51 | _ = slice[0]; | |
| 52 | } | |
| 53 | #} | |
| 54 | #update "volatile slice" | |
| 55 | #check llvm { | |
| 56 | define #...@test.entry(#...) #...{ | |
| 57 | #... | |
| 58 | } | |
| 59 | ||
| 60 | #... | |
| 61 | define #...@test.entry2(#...) #...{ | |
| 62 | #...load volatile i16, ptr %#... | |
| 63 | } | |
| 64 | ||
| 65 | #} | |
| 66 | ||
| 67 | #write test.zig { | |
| 68 | const S = packed struct(u16) { a: u2, b: u8, c: u6 }; | |
| 69 | export fn entry(ptr: *volatile S) void { | |
| 70 | _ = ptr.b; | |
| 71 | } | |
| 72 | #} | |
| 73 | #update "volatile packed" | |
| 74 | #check llvm { | |
| 75 | define #...@test.entry(ptr #...%0) #...{ | |
| 76 | #...load volatile i16, ptr %#... | |
| 77 | } | |
| 78 | ||
| 79 | #} |
test/llvm-targets/empty_analyze deleted-50| ... | ... | @@ -1,50 +0,0 @@ |
| 1 | #skip amdgcn-amdpal-none-baseline-whole-llvm-lld-pic | |
| 2 | #skip amdgcn-mesa3d-none-baseline-whole-llvm-lld-pic | |
| 3 | ||
| 4 | #skip arm-uefi-eabi-baseline-whole-llvm-lld-pic | |
| 5 | #skip arm-uefi-eabihf-baseline-whole-llvm-lld-pic | |
| 6 | ||
| 7 | #skip csky-freestanding-eabi-baseline-whole-llvm-lld-pic | |
| 8 | #skip csky-freestanding-eabihf-baseline-whole-llvm-lld-pic | |
| 9 | #skip csky-linux-eabi-baseline-whole-llvm-lld-pic | |
| 10 | #skip csky-linux-eabihf-baseline-whole-llvm-lld-pic | |
| 11 | #skip csky-linux-gnueabi-baseline-whole-llvm-lld-pic | |
| 12 | #skip csky-linux-gnueabihf-baseline-whole-llvm-lld-pic | |
| 13 | ||
| 14 | #skip loongarch32-linux-gnuf32-baseline-whole-llvm-lld-pic | |
| 15 | #skip loongarch32-linux-musl-baseline-whole-llvm-lld-pic | |
| 16 | #skip loongarch32-linux-muslf32-baseline-whole-llvm-lld-pic | |
| 17 | #skip loongarch32-linux-muslsf-baseline-whole-llvm-lld-pic | |
| 18 | #skip loongarch32-uefi-none-baseline-whole-llvm-lld-pic | |
| 19 | ||
| 20 | #skip loongarch64-linux-gnuf32-baseline-whole-llvm-lld-pic | |
| 21 | #skip loongarch64-linux-muslf32-baseline-whole-llvm-lld-pic | |
| 22 | #skip loongarch64-uefi-none-baseline-whole-llvm-lld-pic | |
| 23 | ||
| 24 | #skip mipsel-psx-eabi-baseline-whole-llvm-lld-pic | |
| 25 | ||
| 26 | #skip riscv32-uefi-none-baseline-whole-llvm-lld-pic | |
| 27 | ||
| 28 | #skip riscv32be-freestanding-none-baseline-whole-llvm-lld-pic | |
| 29 | ||
| 30 | #skip riscv64-uefi-none-baseline-whole-llvm-lld-pic | |
| 31 | ||
| 32 | #skip riscv64be-freestanding-none-baseline-whole-llvm-lld-pic | |
| 33 | ||
| 34 | #skip spirv32-opencl-none-baseline-whole-llvm-lld-pic | |
| 35 | #skip spirv32-opengl-none-baseline-whole-llvm-lld-pic | |
| 36 | #skip spirv32-vulkan-none-baseline-whole-llvm-lld-pic | |
| 37 | ||
| 38 | #skip spirv64-amdhsa-none-baseline-whole-llvm-lld-pic | |
| 39 | #skip spirv64-opencl-none-baseline-whole-llvm-lld-pic | |
| 40 | #skip spirv64-vulkan-none-baseline-whole-llvm-lld-pic | |
| 41 | ||
| 42 | #obj { | |
| 43 | --name llvm_targets | |
| 44 | -Mroot=analyze.zig | |
| 45 | -fno-emit-asm -fno-emit-bin | |
| 46 | #} | |
| 47 | ||
| 48 | #write analyze.zig | |
| 49 | #update | |
| 50 | #check errors |
test/llvm-targets/empty_assembly deleted-55| ... | ... | @@ -1,55 +0,0 @@ |
| 1 | #skip amdgcn-amdpal-none-baseline-whole-llvm-lld-pic | |
| 2 | #skip amdgcn-mesa3d-none-baseline-whole-llvm-lld-pic | |
| 3 | ||
| 4 | #skip arm-uefi-eabi-baseline-whole-llvm-lld-pic | |
| 5 | #skip arm-uefi-eabihf-baseline-whole-llvm-lld-pic | |
| 6 | ||
| 7 | #skip csky-freestanding-eabi-baseline-whole-llvm-lld-pic | |
| 8 | #skip csky-freestanding-eabihf-baseline-whole-llvm-lld-pic | |
| 9 | #skip csky-linux-eabi-baseline-whole-llvm-lld-pic | |
| 10 | #skip csky-linux-eabihf-baseline-whole-llvm-lld-pic | |
| 11 | #skip csky-linux-gnueabi-baseline-whole-llvm-lld-pic | |
| 12 | #skip csky-linux-gnueabihf-baseline-whole-llvm-lld-pic | |
| 13 | ||
| 14 | #skip loongarch32-linux-gnuf32-baseline-whole-llvm-lld-pic | |
| 15 | #skip loongarch32-linux-musl-baseline-whole-llvm-lld-pic | |
| 16 | #skip loongarch32-linux-muslf32-baseline-whole-llvm-lld-pic | |
| 17 | #skip loongarch32-linux-muslsf-baseline-whole-llvm-lld-pic | |
| 18 | #skip loongarch32-uefi-none-baseline-whole-llvm-lld-pic | |
| 19 | ||
| 20 | #skip loongarch64-linux-gnuf32-baseline-whole-llvm-lld-pic | |
| 21 | #skip loongarch64-linux-muslf32-baseline-whole-llvm-lld-pic | |
| 22 | #skip loongarch64-uefi-none-baseline-whole-llvm-lld-pic | |
| 23 | ||
| 24 | #skip mipsel-psx-eabi-baseline-whole-llvm-lld-pic | |
| 25 | ||
| 26 | #skip riscv32-uefi-none-baseline-whole-llvm-lld-pic | |
| 27 | ||
| 28 | #skip riscv32be-freestanding-none-baseline-whole-llvm-lld-pic | |
| 29 | ||
| 30 | #skip riscv64-uefi-none-baseline-whole-llvm-lld-pic | |
| 31 | ||
| 32 | #skip riscv64be-freestanding-none-baseline-whole-llvm-lld-pic | |
| 33 | ||
| 34 | #skip spirv32-opencl-none-baseline-whole-llvm-lld-pic | |
| 35 | #skip spirv32-opengl-none-baseline-whole-llvm-lld-pic | |
| 36 | #skip spirv32-vulkan-none-baseline-whole-llvm-lld-pic | |
| 37 | ||
| 38 | #skip spirv64-amdhsa-none-baseline-whole-llvm-lld-pic | |
| 39 | #skip spirv64-opencl-none-baseline-whole-llvm-lld-pic | |
| 40 | #skip spirv64-vulkan-none-baseline-whole-llvm-lld-pic | |
| 41 | ||
| 42 | #skip xtensa-freestanding-call0-baseline-whole-llvm-lld-pic | |
| 43 | #skip xtensa-freestanding-none-baseline-whole-llvm-lld-pic | |
| 44 | #skip xtensa-linux-call0-baseline-whole-llvm-lld-pic | |
| 45 | #skip xtensa-linux-none-baseline-whole-llvm-lld-pic | |
| 46 | ||
| 47 | #obj { | |
| 48 | --name llvm_targets | |
| 49 | -Mroot=assembly.zig | |
| 50 | -femit-asm -fno-emit-bin | |
| 51 | #} | |
| 52 | ||
| 53 | #write assembly.zig | |
| 54 | #update | |
| 55 | #check errors |
test/llvm-targets/empty_object deleted-67| ... | ... | @@ -1,67 +0,0 @@ |
| 1 | #skip amdgcn-amdpal-none-baseline-whole-llvm-lld-pic | |
| 2 | #skip amdgcn-mesa3d-none-baseline-whole-llvm-lld-pic | |
| 3 | ||
| 4 | #skip arc-freestanding-none-baseline-whole-llvm-lld-pic | |
| 5 | #skip arc-linux-gnu-baseline-whole-llvm-lld-pic | |
| 6 | #skip arc-linux-none-baseline-whole-llvm-lld-pic | |
| 7 | ||
| 8 | #skip arm-uefi-eabi-baseline-whole-llvm-lld-pic | |
| 9 | #skip arm-uefi-eabihf-baseline-whole-llvm-lld-pic | |
| 10 | ||
| 11 | #skip csky-freestanding-eabi-baseline-whole-llvm-lld-pic | |
| 12 | #skip csky-freestanding-eabihf-baseline-whole-llvm-lld-pic | |
| 13 | #skip csky-linux-eabi-baseline-whole-llvm-lld-pic | |
| 14 | #skip csky-linux-eabihf-baseline-whole-llvm-lld-pic | |
| 15 | #skip csky-linux-gnueabi-baseline-whole-llvm-lld-pic | |
| 16 | #skip csky-linux-gnueabihf-baseline-whole-llvm-lld-pic | |
| 17 | ||
| 18 | #skip loongarch32-linux-gnuf32-baseline-whole-llvm-lld-pic | |
| 19 | #skip loongarch32-linux-musl-baseline-whole-llvm-lld-pic | |
| 20 | #skip loongarch32-linux-muslf32-baseline-whole-llvm-lld-pic | |
| 21 | #skip loongarch32-linux-muslsf-baseline-whole-llvm-lld-pic | |
| 22 | #skip loongarch32-uefi-none-baseline-whole-llvm-lld-pic | |
| 23 | ||
| 24 | #skip loongarch64-linux-gnuf32-baseline-whole-llvm-lld-pic | |
| 25 | #skip loongarch64-linux-muslf32-baseline-whole-llvm-lld-pic | |
| 26 | #skip loongarch64-uefi-none-baseline-whole-llvm-lld-pic | |
| 27 | ||
| 28 | #skip mipsel-psx-eabi-baseline-whole-llvm-lld-pic | |
| 29 | ||
| 30 | #skip nvptx-cuda-none-baseline-whole-llvm-lld-pic | |
| 31 | #skip nvptx-nvcl-none-baseline-whole-llvm-lld-pic | |
| 32 | ||
| 33 | #skip nvptx64-cuda-none-baseline-whole-llvm-lld-pic | |
| 34 | #skip nvptx64-nvcl-none-baseline-whole-llvm-lld-pic | |
| 35 | ||
| 36 | #skip riscv32-uefi-none-baseline-whole-llvm-lld-pic | |
| 37 | ||
| 38 | #skip riscv32be-freestanding-none-baseline-whole-llvm-lld-pic | |
| 39 | ||
| 40 | #skip riscv64-uefi-none-baseline-whole-llvm-lld-pic | |
| 41 | ||
| 42 | #skip riscv64be-freestanding-none-baseline-whole-llvm-lld-pic | |
| 43 | ||
| 44 | #skip spirv32-opencl-none-baseline-whole-llvm-lld-pic | |
| 45 | #skip spirv32-opengl-none-baseline-whole-llvm-lld-pic | |
| 46 | #skip spirv32-vulkan-none-baseline-whole-llvm-lld-pic | |
| 47 | ||
| 48 | #skip spirv64-amdhsa-none-baseline-whole-llvm-lld-pic | |
| 49 | #skip spirv64-opencl-none-baseline-whole-llvm-lld-pic | |
| 50 | #skip spirv64-vulkan-none-baseline-whole-llvm-lld-pic | |
| 51 | ||
| 52 | #skip xcore-freestanding-none-baseline-whole-llvm-lld-pic | |
| 53 | ||
| 54 | #skip xtensa-freestanding-call0-baseline-whole-llvm-lld-pic | |
| 55 | #skip xtensa-freestanding-none-baseline-whole-llvm-lld-pic | |
| 56 | #skip xtensa-linux-call0-baseline-whole-llvm-lld-pic | |
| 57 | #skip xtensa-linux-none-baseline-whole-llvm-lld-pic | |
| 58 | ||
| 59 | #obj { | |
| 60 | --name llvm_targets | |
| 61 | -Mroot=object.zig | |
| 62 | -fno-emit-asm -femit-bin | |
| 63 | #} | |
| 64 | ||
| 65 | #write object.zig | |
| 66 | #update | |
| 67 | #check errors |
test/llvm-targets/matrix.zon deleted-355| ... | ... | @@ -1,355 +0,0 @@ |
| 1 | .{ | |
| 2 | .{ .cpu = .{ .aarch64 = .{} }, .os = .{ .driverkit = .{} }, .abi = .{ .none = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .old, .pic = .pic }, | |
| 3 | .{ .cpu = .{ .aarch64 = .{} }, .os = .{ .freebsd = .{} }, .abi = .{ .none = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 4 | .{ .cpu = .{ .aarch64 = .{} }, .os = .{ .freestanding = .{} }, .abi = .{ .none = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 5 | .{ .cpu = .{ .aarch64 = .{} }, .os = .{ .fuchsia = .{} }, .abi = .{ .none = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 6 | .{ .cpu = .{ .aarch64 = .{} }, .os = .{ .haiku = .{} }, .abi = .{ .none = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 7 | .{ .cpu = .{ .aarch64 = .{} }, .os = .{ .hurd = .{} }, .abi = .{ .gnu = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 8 | .{ .cpu = .{ .aarch64 = .{} }, .os = .{ .ios = .{} }, .abi = .{ .none = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .old, .pic = .pic }, | |
| 9 | .{ .cpu = .{ .aarch64 = .{} }, .os = .{ .ios = .{} }, .abi = .{ .simulator = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .old, .pic = .pic }, | |
| 10 | .{ .cpu = .{ .aarch64 = .{} }, .os = .{ .linux = .{} }, .abi = .{ .android = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 11 | .{ .cpu = .{ .aarch64 = .{} }, .os = .{ .linux = .{} }, .abi = .{ .gnu = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 12 | .{ .cpu = .{ .aarch64 = .{} }, .os = .{ .linux = .{} }, .abi = .{ .musl = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 13 | .{ .cpu = .{ .aarch64 = .{} }, .os = .{ .linux = .{} }, .abi = .{ .none = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 14 | .{ .cpu = .{ .aarch64 = .{} }, .os = .{ .linux = .{} }, .abi = .{ .ohos = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 15 | .{ .cpu = .{ .aarch64 = .{} }, .os = .{ .maccatalyst = .{} }, .abi = .{ .none = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .old, .pic = .pic }, | |
| 16 | .{ .cpu = .{ .aarch64 = .{} }, .os = .{ .macos = .{} }, .abi = .{ .none = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .old, .pic = .pic }, | |
| 17 | .{ .cpu = .{ .aarch64 = .{} }, .os = .{ .netbsd = .{} }, .abi = .{ .none = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 18 | .{ .cpu = .{ .aarch64 = .{} }, .os = .{ .openbsd = .{} }, .abi = .{ .none = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 19 | .{ .cpu = .{ .aarch64 = .{} }, .os = .{ .rtems = .{} }, .abi = .{ .none = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 20 | .{ .cpu = .{ .aarch64 = .{} }, .os = .{ .serenity = .{} }, .abi = .{ .none = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 21 | .{ .cpu = .{ .aarch64 = .{} }, .os = .{ .@"switch" = .{} }, .abi = .{ .none = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 22 | .{ .cpu = .{ .aarch64 = .{} }, .os = .{ .tvos = .{} }, .abi = .{ .none = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .old, .pic = .pic }, | |
| 23 | .{ .cpu = .{ .aarch64 = .{} }, .os = .{ .tvos = .{} }, .abi = .{ .simulator = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .old, .pic = .pic }, | |
| 24 | .{ .cpu = .{ .aarch64 = .{} }, .os = .{ .uefi = .{} }, .abi = .{ .none = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 25 | .{ .cpu = .{ .aarch64 = .{} }, .os = .{ .visionos = .{} }, .abi = .{ .none = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .old, .pic = .pic }, | |
| 26 | .{ .cpu = .{ .aarch64 = .{} }, .os = .{ .visionos = .{} }, .abi = .{ .simulator = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .old, .pic = .pic }, | |
| 27 | .{ .cpu = .{ .aarch64 = .{} }, .os = .{ .watchos = .{} }, .abi = .{ .ilp32 = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .old, .pic = .pic }, | |
| 28 | .{ .cpu = .{ .aarch64 = .{} }, .os = .{ .watchos = .{} }, .abi = .{ .none = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .old, .pic = .pic }, | |
| 29 | .{ .cpu = .{ .aarch64 = .{} }, .os = .{ .watchos = .{} }, .abi = .{ .simulator = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .old, .pic = .pic }, | |
| 30 | .{ .cpu = .{ .aarch64 = .{} }, .os = .{ .windows = .{} }, .abi = .{ .gnu = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 31 | .{ .cpu = .{ .aarch64 = .{} }, .os = .{ .windows = .{} }, .abi = .{ .itanium = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 32 | .{ .cpu = .{ .aarch64 = .{} }, .os = .{ .windows = .{} }, .abi = .{ .msvc = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 33 | ||
| 34 | .{ .cpu = .{ .aarch64_be = .{} }, .os = .{ .freestanding = .{} }, .abi = .{ .none = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 35 | .{ .cpu = .{ .aarch64_be = .{} }, .os = .{ .linux = .{} }, .abi = .{ .gnu = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 36 | .{ .cpu = .{ .aarch64_be = .{} }, .os = .{ .linux = .{} }, .abi = .{ .musl = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 37 | .{ .cpu = .{ .aarch64_be = .{} }, .os = .{ .linux = .{} }, .abi = .{ .none = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 38 | .{ .cpu = .{ .aarch64_be = .{} }, .os = .{ .netbsd = .{} }, .abi = .{ .none = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 39 | ||
| 40 | .{ .cpu = .{ .amdgcn = .{} }, .os = .{ .amdhsa = .{} }, .abi = .{ .none = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 41 | .{ .cpu = .{ .amdgcn = .{} }, .os = .{ .amdpal = .{} }, .abi = .{ .none = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 42 | .{ .cpu = .{ .amdgcn = .{} }, .os = .{ .mesa3d = .{} }, .abi = .{ .none = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 43 | ||
| 44 | .{ .cpu = .{ .arc = .{} }, .os = .{ .freestanding = .{} }, .abi = .{ .none = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 45 | .{ .cpu = .{ .arc = .{} }, .os = .{ .linux = .{} }, .abi = .{ .gnu = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 46 | .{ .cpu = .{ .arc = .{} }, .os = .{ .linux = .{} }, .abi = .{ .none = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 47 | ||
| 48 | .{ .cpu = .{ .arm = .{} }, .os = .{ .@"3ds" = .{} }, .abi = .{ .eabihf = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 49 | .{ .cpu = .{ .arm = .{} }, .os = .{ .freebsd = .{} }, .abi = .{ .eabihf = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 50 | .{ .cpu = .{ .arm = .{} }, .os = .{ .freestanding = .{} }, .abi = .{ .eabi = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 51 | .{ .cpu = .{ .arm = .{} }, .os = .{ .freestanding = .{} }, .abi = .{ .eabihf = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 52 | .{ .cpu = .{ .arm = .{} }, .os = .{ .fuchsia = .{} }, .abi = .{ .eabihf = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 53 | .{ .cpu = .{ .arm = .{} }, .os = .{ .gba = .{} }, .abi = .{ .eabi = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 54 | .{ .cpu = .{ .arm = .{} }, .os = .{ .haiku = .{} }, .abi = .{ .eabihf = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 55 | .{ .cpu = .{ .arm = .{} }, .os = .{ .linux = .{} }, .abi = .{ .androideabi = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 56 | .{ .cpu = .{ .arm = .{} }, .os = .{ .linux = .{} }, .abi = .{ .eabi = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 57 | .{ .cpu = .{ .arm = .{} }, .os = .{ .linux = .{} }, .abi = .{ .eabihf = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 58 | .{ .cpu = .{ .arm = .{} }, .os = .{ .linux = .{} }, .abi = .{ .gnueabi = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 59 | .{ .cpu = .{ .arm = .{} }, .os = .{ .linux = .{} }, .abi = .{ .gnueabihf = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 60 | .{ .cpu = .{ .arm = .{} }, .os = .{ .linux = .{} }, .abi = .{ .musleabi = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 61 | .{ .cpu = .{ .arm = .{} }, .os = .{ .linux = .{} }, .abi = .{ .musleabihf = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 62 | .{ .cpu = .{ .arm = .{} }, .os = .{ .linux = .{} }, .abi = .{ .ohoseabi = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 63 | .{ .cpu = .{ .arm = .{} }, .os = .{ .netbsd = .{} }, .abi = .{ .eabi = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 64 | .{ .cpu = .{ .arm = .{} }, .os = .{ .netbsd = .{} }, .abi = .{ .eabihf = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 65 | .{ .cpu = .{ .arm = .{} }, .os = .{ .openbsd = .{} }, .abi = .{ .eabi = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 66 | .{ .cpu = .{ .arm = .{} }, .os = .{ .rtems = .{} }, .abi = .{ .eabi = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 67 | .{ .cpu = .{ .arm = .{} }, .os = .{ .rtems = .{} }, .abi = .{ .eabihf = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 68 | .{ .cpu = .{ .arm = .{} }, .os = .{ .uefi = .{} }, .abi = .{ .eabi = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 69 | .{ .cpu = .{ .arm = .{} }, .os = .{ .uefi = .{} }, .abi = .{ .eabihf = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 70 | .{ .cpu = .{ .arm = .{} }, .os = .{ .vita = .{} }, .abi = .{ .eabihf = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 71 | ||
| 72 | .{ .cpu = .{ .armeb = .{} }, .os = .{ .freestanding = .{} }, .abi = .{ .eabi = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 73 | .{ .cpu = .{ .armeb = .{} }, .os = .{ .freestanding = .{} }, .abi = .{ .eabihf = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 74 | .{ .cpu = .{ .armeb = .{} }, .os = .{ .linux = .{} }, .abi = .{ .eabi = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 75 | .{ .cpu = .{ .armeb = .{} }, .os = .{ .linux = .{} }, .abi = .{ .eabihf = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 76 | .{ .cpu = .{ .armeb = .{} }, .os = .{ .linux = .{} }, .abi = .{ .gnueabi = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 77 | .{ .cpu = .{ .armeb = .{} }, .os = .{ .linux = .{} }, .abi = .{ .gnueabihf = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 78 | .{ .cpu = .{ .armeb = .{} }, .os = .{ .linux = .{} }, .abi = .{ .musleabi = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 79 | .{ .cpu = .{ .armeb = .{} }, .os = .{ .linux = .{} }, .abi = .{ .musleabihf = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 80 | .{ .cpu = .{ .armeb = .{} }, .os = .{ .netbsd = .{} }, .abi = .{ .eabi = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 81 | .{ .cpu = .{ .armeb = .{} }, .os = .{ .netbsd = .{} }, .abi = .{ .eabihf = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 82 | .{ .cpu = .{ .armeb = .{} }, .os = .{ .rtems = .{} }, .abi = .{ .eabi = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 83 | .{ .cpu = .{ .armeb = .{} }, .os = .{ .rtems = .{} }, .abi = .{ .eabihf = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 84 | ||
| 85 | .{ .cpu = .{ .avr = .{} }, .os = .{ .freestanding = .{} }, .abi = .{ .none = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 86 | .{ .cpu = .{ .avr = .{} }, .os = .{ .rtems = .{} }, .abi = .{ .none = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 87 | ||
| 88 | .{ .cpu = .{ .bpfeb = .{} }, .os = .{ .freestanding = .{} }, .abi = .{ .none = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 89 | ||
| 90 | .{ .cpu = .{ .bpfel = .{} }, .os = .{ .freestanding = .{} }, .abi = .{ .none = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 91 | ||
| 92 | .{ .cpu = .{ .csky = .{} }, .os = .{ .freestanding = .{} }, .abi = .{ .eabi = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 93 | .{ .cpu = .{ .csky = .{} }, .os = .{ .freestanding = .{} }, .abi = .{ .eabihf = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 94 | .{ .cpu = .{ .csky = .{} }, .os = .{ .linux = .{} }, .abi = .{ .eabi = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 95 | .{ .cpu = .{ .csky = .{} }, .os = .{ .linux = .{} }, .abi = .{ .eabihf = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 96 | .{ .cpu = .{ .csky = .{} }, .os = .{ .linux = .{} }, .abi = .{ .gnueabi = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 97 | .{ .cpu = .{ .csky = .{} }, .os = .{ .linux = .{} }, .abi = .{ .gnueabihf = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 98 | ||
| 99 | .{ .cpu = .{ .hexagon = .{} }, .os = .{ .freestanding = .{} }, .abi = .{ .none = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 100 | .{ .cpu = .{ .hexagon = .{} }, .os = .{ .linux = .{} }, .abi = .{ .musl = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 101 | .{ .cpu = .{ .hexagon = .{} }, .os = .{ .linux = .{} }, .abi = .{ .none = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 102 | ||
| 103 | .{ .cpu = .{ .lanai = .{} }, .os = .{ .freestanding = .{} }, .abi = .{ .none = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 104 | ||
| 105 | .{ .cpu = .{ .loongarch32 = .{} }, .os = .{ .freestanding = .{} }, .abi = .{ .none = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 106 | .{ .cpu = .{ .loongarch32 = .{} }, .os = .{ .linux = .{} }, .abi = .{ .gnu = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 107 | .{ .cpu = .{ .loongarch32 = .{} }, .os = .{ .linux = .{} }, .abi = .{ .gnuf32 = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 108 | .{ .cpu = .{ .loongarch32 = .{} }, .os = .{ .linux = .{} }, .abi = .{ .gnusf = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 109 | .{ .cpu = .{ .loongarch32 = .{} }, .os = .{ .linux = .{} }, .abi = .{ .musl = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 110 | .{ .cpu = .{ .loongarch32 = .{} }, .os = .{ .linux = .{} }, .abi = .{ .muslf32 = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 111 | .{ .cpu = .{ .loongarch32 = .{} }, .os = .{ .linux = .{} }, .abi = .{ .muslsf = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 112 | .{ .cpu = .{ .loongarch32 = .{} }, .os = .{ .linux = .{} }, .abi = .{ .none = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 113 | .{ .cpu = .{ .loongarch32 = .{} }, .os = .{ .uefi = .{} }, .abi = .{ .none = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 114 | ||
| 115 | .{ .cpu = .{ .loongarch64 = .{} }, .os = .{ .freestanding = .{} }, .abi = .{ .none = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 116 | .{ .cpu = .{ .loongarch64 = .{} }, .os = .{ .linux = .{} }, .abi = .{ .gnu = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 117 | .{ .cpu = .{ .loongarch64 = .{} }, .os = .{ .linux = .{} }, .abi = .{ .gnuf32 = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 118 | .{ .cpu = .{ .loongarch64 = .{} }, .os = .{ .linux = .{} }, .abi = .{ .gnusf = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 119 | .{ .cpu = .{ .loongarch64 = .{} }, .os = .{ .linux = .{} }, .abi = .{ .musl = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 120 | .{ .cpu = .{ .loongarch64 = .{} }, .os = .{ .linux = .{} }, .abi = .{ .muslf32 = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 121 | .{ .cpu = .{ .loongarch64 = .{} }, .os = .{ .linux = .{} }, .abi = .{ .muslsf = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 122 | .{ .cpu = .{ .loongarch64 = .{} }, .os = .{ .linux = .{} }, .abi = .{ .none = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 123 | .{ .cpu = .{ .loongarch64 = .{} }, .os = .{ .uefi = .{} }, .abi = .{ .none = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 124 | ||
| 125 | .{ .cpu = .{ .m68k = .{} }, .os = .{ .freestanding = .{} }, .abi = .{ .none = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 126 | .{ .cpu = .{ .m68k = .{} }, .os = .{ .linux = .{} }, .abi = .{ .gnu = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 127 | .{ .cpu = .{ .m68k = .{} }, .os = .{ .linux = .{} }, .abi = .{ .musl = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 128 | .{ .cpu = .{ .m68k = .{} }, .os = .{ .linux = .{} }, .abi = .{ .none = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 129 | .{ .cpu = .{ .m68k = .{} }, .os = .{ .netbsd = .{} }, .abi = .{ .none = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 130 | .{ .cpu = .{ .m68k = .{} }, .os = .{ .rtems = .{} }, .abi = .{ .none = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 131 | ||
| 132 | .{ .cpu = .{ .mips = .{} }, .os = .{ .freestanding = .{} }, .abi = .{ .eabi = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 133 | .{ .cpu = .{ .mips = .{} }, .os = .{ .freestanding = .{} }, .abi = .{ .eabihf = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 134 | .{ .cpu = .{ .mips = .{} }, .os = .{ .linux = .{} }, .abi = .{ .eabi = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 135 | .{ .cpu = .{ .mips = .{} }, .os = .{ .linux = .{} }, .abi = .{ .eabihf = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 136 | .{ .cpu = .{ .mips = .{} }, .os = .{ .linux = .{} }, .abi = .{ .gnueabi = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 137 | .{ .cpu = .{ .mips = .{} }, .os = .{ .linux = .{} }, .abi = .{ .gnueabihf = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 138 | .{ .cpu = .{ .mips = .{} }, .os = .{ .linux = .{} }, .abi = .{ .musleabi = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 139 | .{ .cpu = .{ .mips = .{} }, .os = .{ .linux = .{} }, .abi = .{ .musleabihf = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 140 | .{ .cpu = .{ .mips = .{} }, .os = .{ .netbsd = .{} }, .abi = .{ .eabi = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 141 | .{ .cpu = .{ .mips = .{} }, .os = .{ .netbsd = .{} }, .abi = .{ .eabihf = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 142 | .{ .cpu = .{ .mips = .{} }, .os = .{ .rtems = .{} }, .abi = .{ .eabi = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 143 | .{ .cpu = .{ .mips = .{} }, .os = .{ .rtems = .{} }, .abi = .{ .eabihf = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 144 | ||
| 145 | .{ .cpu = .{ .mipsel = .{} }, .os = .{ .freestanding = .{} }, .abi = .{ .eabi = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 146 | .{ .cpu = .{ .mipsel = .{} }, .os = .{ .freestanding = .{} }, .abi = .{ .eabihf = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 147 | .{ .cpu = .{ .mipsel = .{} }, .os = .{ .linux = .{} }, .abi = .{ .eabi = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 148 | .{ .cpu = .{ .mipsel = .{} }, .os = .{ .linux = .{} }, .abi = .{ .eabihf = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 149 | .{ .cpu = .{ .mipsel = .{} }, .os = .{ .linux = .{} }, .abi = .{ .gnueabi = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 150 | .{ .cpu = .{ .mipsel = .{} }, .os = .{ .linux = .{} }, .abi = .{ .gnueabihf = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 151 | .{ .cpu = .{ .mipsel = .{} }, .os = .{ .linux = .{} }, .abi = .{ .musleabi = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 152 | .{ .cpu = .{ .mipsel = .{} }, .os = .{ .linux = .{} }, .abi = .{ .musleabihf = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 153 | .{ .cpu = .{ .mipsel = .{} }, .os = .{ .netbsd = .{} }, .abi = .{ .eabi = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 154 | .{ .cpu = .{ .mipsel = .{} }, .os = .{ .netbsd = .{} }, .abi = .{ .eabihf = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 155 | .{ .cpu = .{ .mipsel = .{} }, .os = .{ .psx = .{} }, .abi = .{ .eabi = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 156 | .{ .cpu = .{ .mipsel = .{} }, .os = .{ .psp = .{} }, .abi = .{ .eabihf = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 157 | .{ .cpu = .{ .mipsel = .{} }, .os = .{ .rtems = .{} }, .abi = .{ .eabi = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 158 | .{ .cpu = .{ .mipsel = .{} }, .os = .{ .rtems = .{} }, .abi = .{ .eabihf = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 159 | ||
| 160 | .{ .cpu = .{ .mips64 = .{} }, .os = .{ .freestanding = .{} }, .abi = .{ .none = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 161 | .{ .cpu = .{ .mips64 = .{} }, .os = .{ .linux = .{} }, .abi = .{ .abin32 = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 162 | .{ .cpu = .{ .mips64 = .{} }, .os = .{ .linux = .{} }, .abi = .{ .gnuabi64 = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 163 | .{ .cpu = .{ .mips64 = .{} }, .os = .{ .linux = .{} }, .abi = .{ .gnuabin32 = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 164 | .{ .cpu = .{ .mips64 = .{} }, .os = .{ .linux = .{} }, .abi = .{ .muslabi64 = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 165 | .{ .cpu = .{ .mips64 = .{} }, .os = .{ .linux = .{} }, .abi = .{ .muslabin32 = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 166 | .{ .cpu = .{ .mips64 = .{} }, .os = .{ .linux = .{} }, .abi = .{ .none = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 167 | .{ .cpu = .{ .mips64 = .{} }, .os = .{ .openbsd = .{} }, .abi = .{ .none = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 168 | ||
| 169 | .{ .cpu = .{ .mips64el = .{} }, .os = .{ .freestanding = .{} }, .abi = .{ .none = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 170 | .{ .cpu = .{ .mips64el = .{} }, .os = .{ .linux = .{} }, .abi = .{ .abin32 = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 171 | .{ .cpu = .{ .mips64el = .{} }, .os = .{ .linux = .{} }, .abi = .{ .gnuabi64 = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 172 | .{ .cpu = .{ .mips64el = .{} }, .os = .{ .linux = .{} }, .abi = .{ .gnuabin32 = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 173 | .{ .cpu = .{ .mips64el = .{} }, .os = .{ .linux = .{} }, .abi = .{ .muslabi64 = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 174 | .{ .cpu = .{ .mips64el = .{} }, .os = .{ .linux = .{} }, .abi = .{ .muslabin32 = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 175 | .{ .cpu = .{ .mips64el = .{} }, .os = .{ .linux = .{} }, .abi = .{ .none = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 176 | .{ .cpu = .{ .mips64el = .{} }, .os = .{ .openbsd = .{} }, .abi = .{ .none = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 177 | ||
| 178 | .{ .cpu = .{ .msp430 = .{} }, .os = .{ .freestanding = .{} }, .abi = .{ .none = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 179 | ||
| 180 | .{ .cpu = .{ .nvptx = .{} }, .os = .{ .cuda = .{} }, .abi = .{ .none = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 181 | .{ .cpu = .{ .nvptx = .{} }, .os = .{ .nvcl = .{} }, .abi = .{ .none = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 182 | ||
| 183 | .{ .cpu = .{ .nvptx64 = .{} }, .os = .{ .cuda = .{} }, .abi = .{ .none = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 184 | .{ .cpu = .{ .nvptx64 = .{} }, .os = .{ .nvcl = .{} }, .abi = .{ .none = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 185 | ||
| 186 | .{ .cpu = .{ .powerpc = .{} }, .os = .{ .freestanding = .{} }, .abi = .{ .eabi = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 187 | .{ .cpu = .{ .powerpc = .{} }, .os = .{ .freestanding = .{} }, .abi = .{ .eabihf = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 188 | .{ .cpu = .{ .powerpc = .{} }, .os = .{ .linux = .{} }, .abi = .{ .eabi = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 189 | .{ .cpu = .{ .powerpc = .{} }, .os = .{ .linux = .{} }, .abi = .{ .eabihf = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 190 | .{ .cpu = .{ .powerpc = .{} }, .os = .{ .linux = .{} }, .abi = .{ .musleabi = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 191 | .{ .cpu = .{ .powerpc = .{} }, .os = .{ .linux = .{} }, .abi = .{ .musleabihf = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 192 | .{ .cpu = .{ .powerpc = .{} }, .os = .{ .netbsd = .{} }, .abi = .{ .eabihf = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 193 | .{ .cpu = .{ .powerpc = .{} }, .os = .{ .openbsd = .{} }, .abi = .{ .eabihf = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 194 | .{ .cpu = .{ .powerpc = .{} }, .os = .{ .rtems = .{} }, .abi = .{ .eabi = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 195 | .{ .cpu = .{ .powerpc = .{} }, .os = .{ .rtems = .{} }, .abi = .{ .eabihf = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 196 | .{ .cpu = .{ .powerpc = .{} }, .os = .{ .wiiu = .{} }, .abi = .{ .eabihf = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 197 | ||
| 198 | .{ .cpu = .{ .powerpcle = .{} }, .os = .{ .freestanding = .{} }, .abi = .{ .eabi = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 199 | .{ .cpu = .{ .powerpcle = .{} }, .os = .{ .freestanding = .{} }, .abi = .{ .eabihf = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 200 | ||
| 201 | .{ .cpu = .{ .powerpc64 = .{} }, .os = .{ .freebsd = .{} }, .abi = .{ .none = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 202 | .{ .cpu = .{ .powerpc64 = .{} }, .os = .{ .freestanding = .{} }, .abi = .{ .none = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 203 | .{ .cpu = .{ .powerpc64 = .{} }, .os = .{ .linux = .{} }, .abi = .{ .musl = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 204 | .{ .cpu = .{ .powerpc64 = .{} }, .os = .{ .linux = .{} }, .abi = .{ .none = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 205 | .{ .cpu = .{ .powerpc64 = .{} }, .os = .{ .openbsd = .{} }, .abi = .{ .none = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 206 | .{ .cpu = .{ .powerpc64 = .{} }, .os = .{ .ps3 = .{} }, .abi = .{ .none = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 207 | .{ .cpu = .{ .powerpc64 = .{} }, .os = .{ .rtems = .{} }, .abi = .{ .none = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 208 | ||
| 209 | .{ .cpu = .{ .powerpc64le = .{} }, .os = .{ .freebsd = .{} }, .abi = .{ .none = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 210 | .{ .cpu = .{ .powerpc64le = .{} }, .os = .{ .freestanding = .{} }, .abi = .{ .none = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 211 | .{ .cpu = .{ .powerpc64le = .{} }, .os = .{ .linux = .{} }, .abi = .{ .gnu = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 212 | .{ .cpu = .{ .powerpc64le = .{} }, .os = .{ .linux = .{} }, .abi = .{ .musl = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 213 | .{ .cpu = .{ .powerpc64le = .{} }, .os = .{ .linux = .{} }, .abi = .{ .none = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 214 | ||
| 215 | .{ .cpu = .{ .riscv32 = .{} }, .os = .{ .freestanding = .{} }, .abi = .{ .none = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 216 | .{ .cpu = .{ .riscv32 = .{} }, .os = .{ .linux = .{} }, .abi = .{ .gnu = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 217 | .{ .cpu = .{ .riscv32 = .{} }, .os = .{ .linux = .{} }, .abi = .{ .musl = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 218 | .{ .cpu = .{ .riscv32 = .{} }, .os = .{ .linux = .{} }, .abi = .{ .none = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 219 | .{ .cpu = .{ .riscv32 = .{} }, .os = .{ .netbsd = .{} }, .abi = .{ .none = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 220 | .{ .cpu = .{ .riscv32 = .{} }, .os = .{ .rtems = .{} }, .abi = .{ .none = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 221 | .{ .cpu = .{ .riscv32 = .{} }, .os = .{ .uefi = .{} }, .abi = .{ .none = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 222 | ||
| 223 | .{ .cpu = .{ .riscv32be = .{} }, .os = .{ .freestanding = .{} }, .abi = .{ .none = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 224 | ||
| 225 | .{ .cpu = .{ .riscv64 = .{} }, .os = .{ .freebsd = .{} }, .abi = .{ .none = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 226 | .{ .cpu = .{ .riscv64 = .{} }, .os = .{ .freestanding = .{} }, .abi = .{ .none = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 227 | .{ .cpu = .{ .riscv64 = .{} }, .os = .{ .fuchsia = .{} }, .abi = .{ .none = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 228 | .{ .cpu = .{ .riscv64 = .{} }, .os = .{ .haiku = .{} }, .abi = .{ .none = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 229 | .{ .cpu = .{ .riscv64 = .{} }, .os = .{ .hurd = .{} }, .abi = .{ .gnu = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 230 | .{ .cpu = .{ .riscv64 = .{} }, .os = .{ .linux = .{} }, .abi = .{ .android = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 231 | .{ .cpu = .{ .riscv64 = .{} }, .os = .{ .linux = .{} }, .abi = .{ .gnu = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 232 | .{ .cpu = .{ .riscv64 = .{} }, .os = .{ .linux = .{} }, .abi = .{ .musl = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 233 | .{ .cpu = .{ .riscv64 = .{} }, .os = .{ .linux = .{} }, .abi = .{ .none = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 234 | .{ .cpu = .{ .riscv64 = .{} }, .os = .{ .netbsd = .{} }, .abi = .{ .none = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 235 | .{ .cpu = .{ .riscv64 = .{} }, .os = .{ .openbsd = .{} }, .abi = .{ .none = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 236 | .{ .cpu = .{ .riscv64 = .{} }, .os = .{ .rtems = .{} }, .abi = .{ .none = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 237 | .{ .cpu = .{ .riscv64 = .{} }, .os = .{ .serenity = .{} }, .abi = .{ .none = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 238 | .{ .cpu = .{ .riscv64 = .{} }, .os = .{ .uefi = .{} }, .abi = .{ .none = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 239 | ||
| 240 | .{ .cpu = .{ .riscv64be = .{} }, .os = .{ .freestanding = .{} }, .abi = .{ .none = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 241 | ||
| 242 | .{ .cpu = .{ .s390x = .{} }, .os = .{ .freestanding = .{} }, .abi = .{ .none = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 243 | .{ .cpu = .{ .s390x = .{} }, .os = .{ .linux = .{} }, .abi = .{ .gnu = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 244 | .{ .cpu = .{ .s390x = .{} }, .os = .{ .linux = .{} }, .abi = .{ .musl = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 245 | .{ .cpu = .{ .s390x = .{} }, .os = .{ .linux = .{} }, .abi = .{ .none = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 246 | ||
| 247 | .{ .cpu = .{ .sparc = .{} }, .os = .{ .freestanding = .{} }, .abi = .{ .none = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 248 | .{ .cpu = .{ .sparc = .{} }, .os = .{ .linux = .{} }, .abi = .{ .gnu = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 249 | .{ .cpu = .{ .sparc = .{} }, .os = .{ .linux = .{} }, .abi = .{ .none = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 250 | .{ .cpu = .{ .sparc = .{} }, .os = .{ .netbsd = .{} }, .abi = .{ .none = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 251 | .{ .cpu = .{ .sparc = .{} }, .os = .{ .rtems = .{} }, .abi = .{ .none = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 252 | ||
| 253 | .{ .cpu = .{ .sparc64 = .{} }, .os = .{ .freestanding = .{} }, .abi = .{ .none = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 254 | .{ .cpu = .{ .sparc64 = .{} }, .os = .{ .linux = .{} }, .abi = .{ .gnu = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 255 | .{ .cpu = .{ .sparc64 = .{} }, .os = .{ .linux = .{} }, .abi = .{ .none = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 256 | .{ .cpu = .{ .sparc64 = .{} }, .os = .{ .netbsd = .{} }, .abi = .{ .none = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 257 | .{ .cpu = .{ .sparc64 = .{} }, .os = .{ .openbsd = .{} }, .abi = .{ .none = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 258 | .{ .cpu = .{ .sparc64 = .{} }, .os = .{ .rtems = .{} }, .abi = .{ .none = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 259 | ||
| 260 | .{ .cpu = .{ .spirv32 = .{} }, .os = .{ .opencl = .{} }, .abi = .{ .none = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 261 | .{ .cpu = .{ .spirv32 = .{} }, .os = .{ .opengl = .{} }, .abi = .{ .none = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 262 | .{ .cpu = .{ .spirv32 = .{} }, .os = .{ .vulkan = .{} }, .abi = .{ .none = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 263 | ||
| 264 | .{ .cpu = .{ .spirv64 = .{} }, .os = .{ .amdhsa = .{} }, .abi = .{ .none = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 265 | .{ .cpu = .{ .spirv64 = .{} }, .os = .{ .opencl = .{} }, .abi = .{ .none = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 266 | .{ .cpu = .{ .spirv64 = .{} }, .os = .{ .vulkan = .{} }, .abi = .{ .none = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 267 | ||
| 268 | .{ .cpu = .{ .thumb = .{} }, .os = .{ .freestanding = .{} }, .abi = .{ .eabi = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 269 | .{ .cpu = .{ .thumb = .{} }, .os = .{ .freestanding = .{} }, .abi = .{ .eabihf = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 270 | .{ .cpu = .{ .thumb = .{} }, .os = .{ .fuchsia = .{} }, .abi = .{ .eabihf = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 271 | .{ .cpu = .{ .thumb = .{} }, .os = .{ .gba = .{} }, .abi = .{ .eabi = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 272 | .{ .cpu = .{ .thumb = .{} }, .os = .{ .linux = .{} }, .abi = .{ .eabi = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 273 | .{ .cpu = .{ .thumb = .{} }, .os = .{ .linux = .{} }, .abi = .{ .eabihf = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 274 | .{ .cpu = .{ .thumb = .{} }, .os = .{ .linux = .{} }, .abi = .{ .musleabi = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 275 | .{ .cpu = .{ .thumb = .{} }, .os = .{ .linux = .{} }, .abi = .{ .musleabihf = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 276 | .{ .cpu = .{ .thumb = .{} }, .os = .{ .rtems = .{} }, .abi = .{ .eabi = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 277 | .{ .cpu = .{ .thumb = .{} }, .os = .{ .rtems = .{} }, .abi = .{ .eabihf = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 278 | .{ .cpu = .{ .thumb = .{} }, .os = .{ .vita = .{} }, .abi = .{ .eabihf = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 279 | .{ .cpu = .{ .thumb = .{} }, .os = .{ .windows = .{} }, .abi = .{ .gnu = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 280 | .{ .cpu = .{ .thumb = .{} }, .os = .{ .windows = .{} }, .abi = .{ .itanium = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 281 | .{ .cpu = .{ .thumb = .{} }, .os = .{ .windows = .{} }, .abi = .{ .msvc = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 282 | ||
| 283 | .{ .cpu = .{ .thumbeb = .{} }, .os = .{ .freestanding = .{} }, .abi = .{ .eabi = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 284 | .{ .cpu = .{ .thumbeb = .{} }, .os = .{ .freestanding = .{} }, .abi = .{ .eabihf = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 285 | .{ .cpu = .{ .thumbeb = .{} }, .os = .{ .linux = .{} }, .abi = .{ .eabi = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 286 | .{ .cpu = .{ .thumbeb = .{} }, .os = .{ .linux = .{} }, .abi = .{ .eabihf = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 287 | .{ .cpu = .{ .thumbeb = .{} }, .os = .{ .linux = .{} }, .abi = .{ .musleabi = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 288 | .{ .cpu = .{ .thumbeb = .{} }, .os = .{ .linux = .{} }, .abi = .{ .musleabihf = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 289 | .{ .cpu = .{ .thumbeb = .{} }, .os = .{ .rtems = .{} }, .abi = .{ .eabi = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 290 | .{ .cpu = .{ .thumbeb = .{} }, .os = .{ .rtems = .{} }, .abi = .{ .eabihf = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 291 | ||
| 292 | .{ .cpu = .{ .ve = .{} }, .os = .{ .freestanding = .{} }, .abi = .{ .none = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 293 | .{ .cpu = .{ .ve = .{} }, .os = .{ .linux = .{} }, .abi = .{ .none = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 294 | ||
| 295 | .{ .cpu = .{ .wasm32 = .{} }, .os = .{ .emscripten = .{} }, .abi = .{ .none = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 296 | .{ .cpu = .{ .wasm32 = .{} }, .os = .{ .freestanding = .{} }, .abi = .{ .none = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 297 | .{ .cpu = .{ .wasm32 = .{} }, .os = .{ .wasi = .{} }, .abi = .{ .none = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 298 | ||
| 299 | .{ .cpu = .{ .wasm64 = .{} }, .os = .{ .emscripten = .{} }, .abi = .{ .none = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 300 | .{ .cpu = .{ .wasm64 = .{} }, .os = .{ .freestanding = .{} }, .abi = .{ .none = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 301 | .{ .cpu = .{ .wasm64 = .{} }, .os = .{ .wasi = .{} }, .abi = .{ .none = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 302 | ||
| 303 | .{ .cpu = .{ .x86 = .{} }, .os = .{ .freestanding = .{} }, .abi = .{ .none = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 304 | .{ .cpu = .{ .x86 = .{} }, .os = .{ .haiku = .{} }, .abi = .{ .none = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 305 | .{ .cpu = .{ .x86 = .{} }, .os = .{ .hurd = .{} }, .abi = .{ .gnu = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 306 | .{ .cpu = .{ .x86 = .{} }, .os = .{ .illumos = .{} }, .abi = .{ .none = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 307 | .{ .cpu = .{ .x86 = .{} }, .os = .{ .linux = .{} }, .abi = .{ .android = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 308 | .{ .cpu = .{ .x86 = .{} }, .os = .{ .linux = .{} }, .abi = .{ .gnu = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 309 | .{ .cpu = .{ .x86 = .{} }, .os = .{ .linux = .{} }, .abi = .{ .musl = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 310 | .{ .cpu = .{ .x86 = .{} }, .os = .{ .linux = .{} }, .abi = .{ .none = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 311 | .{ .cpu = .{ .x86 = .{} }, .os = .{ .netbsd = .{} }, .abi = .{ .none = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 312 | .{ .cpu = .{ .x86 = .{} }, .os = .{ .openbsd = .{} }, .abi = .{ .none = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 313 | .{ .cpu = .{ .x86 = .{} }, .os = .{ .rtems = .{} }, .abi = .{ .none = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 314 | .{ .cpu = .{ .x86 = .{} }, .os = .{ .uefi = .{} }, .abi = .{ .none = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 315 | .{ .cpu = .{ .x86 = .{} }, .os = .{ .windows = .{} }, .abi = .{ .gnu = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 316 | .{ .cpu = .{ .x86 = .{} }, .os = .{ .windows = .{} }, .abi = .{ .itanium = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 317 | .{ .cpu = .{ .x86 = .{} }, .os = .{ .windows = .{} }, .abi = .{ .msvc = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 318 | ||
| 319 | .{ .cpu = .{ .x86_64 = .{} }, .os = .{ .freebsd = .{} }, .abi = .{ .none = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 320 | .{ .cpu = .{ .x86_64 = .{} }, .os = .{ .freestanding = .{} }, .abi = .{ .none = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 321 | .{ .cpu = .{ .x86_64 = .{ .features = .{ .add = .{.soft_float}, .remove = .{ .mmx, .sse, .sse2, .avx, .avx2 } } } }, .os = .{ .freestanding = .{} }, .abi = .{ .none = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 322 | .{ .cpu = .{ .x86_64 = .{} }, .os = .{ .fuchsia = .{} }, .abi = .{ .none = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 323 | .{ .cpu = .{ .x86_64 = .{} }, .os = .{ .dragonfly = .{} }, .abi = .{ .none = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 324 | .{ .cpu = .{ .x86_64 = .{} }, .os = .{ .driverkit = .{} }, .abi = .{ .none = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .old, .pic = .pic }, | |
| 325 | .{ .cpu = .{ .x86_64 = .{} }, .os = .{ .haiku = .{} }, .abi = .{ .none = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 326 | .{ .cpu = .{ .x86_64 = .{} }, .os = .{ .hurd = .{} }, .abi = .{ .gnu = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 327 | .{ .cpu = .{ .x86_64 = .{} }, .os = .{ .illumos = .{} }, .abi = .{ .none = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 328 | .{ .cpu = .{ .x86_64 = .{} }, .os = .{ .linux = .{} }, .abi = .{ .android = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 329 | .{ .cpu = .{ .x86_64 = .{} }, .os = .{ .linux = .{} }, .abi = .{ .gnu = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 330 | .{ .cpu = .{ .x86_64 = .{} }, .os = .{ .linux = .{} }, .abi = .{ .gnux32 = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 331 | .{ .cpu = .{ .x86_64 = .{} }, .os = .{ .linux = .{} }, .abi = .{ .musl = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 332 | .{ .cpu = .{ .x86_64 = .{} }, .os = .{ .linux = .{} }, .abi = .{ .muslx32 = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 333 | .{ .cpu = .{ .x86_64 = .{} }, .os = .{ .linux = .{} }, .abi = .{ .none = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 334 | .{ .cpu = .{ .x86_64 = .{} }, .os = .{ .linux = .{} }, .abi = .{ .ohos = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 335 | .{ .cpu = .{ .x86_64 = .{} }, .os = .{ .linux = .{} }, .abi = .{ .x32 = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 336 | .{ .cpu = .{ .x86_64 = .{} }, .os = .{ .maccatalyst = .{} }, .abi = .{ .none = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .old, .pic = .pic }, | |
| 337 | .{ .cpu = .{ .x86_64 = .{} }, .os = .{ .macos = .{} }, .abi = .{ .none = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .old, .pic = .pic }, | |
| 338 | .{ .cpu = .{ .x86_64 = .{} }, .os = .{ .netbsd = .{} }, .abi = .{ .none = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 339 | .{ .cpu = .{ .x86_64 = .{} }, .os = .{ .openbsd = .{} }, .abi = .{ .none = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 340 | .{ .cpu = .{ .x86_64 = .{} }, .os = .{ .ps4 = .{} }, .abi = .{ .none = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 341 | .{ .cpu = .{ .x86_64 = .{} }, .os = .{ .ps5 = .{} }, .abi = .{ .none = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 342 | .{ .cpu = .{ .x86_64 = .{} }, .os = .{ .rtems = .{} }, .abi = .{ .none = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 343 | .{ .cpu = .{ .x86_64 = .{} }, .os = .{ .serenity = .{} }, .abi = .{ .none = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 344 | .{ .cpu = .{ .x86_64 = .{} }, .os = .{ .uefi = .{} }, .abi = .{ .none = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 345 | .{ .cpu = .{ .x86_64 = .{} }, .os = .{ .windows = .{} }, .abi = .{ .gnu = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 346 | .{ .cpu = .{ .x86_64 = .{} }, .os = .{ .windows = .{} }, .abi = .{ .itanium = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 347 | .{ .cpu = .{ .x86_64 = .{} }, .os = .{ .windows = .{} }, .abi = .{ .msvc = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 348 | ||
| 349 | .{ .cpu = .{ .xcore = .{} }, .os = .{ .freestanding = .{} }, .abi = .{ .none = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 350 | ||
| 351 | .{ .cpu = .{ .xtensa = .{} }, .os = .{ .freestanding = .{} }, .abi = .{ .call0 = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 352 | .{ .cpu = .{ .xtensa = .{} }, .os = .{ .freestanding = .{} }, .abi = .{ .none = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 353 | .{ .cpu = .{ .xtensa = .{} }, .os = .{ .linux = .{} }, .abi = .{ .call0 = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 354 | .{ .cpu = .{ .xtensa = .{} }, .os = .{ .linux = .{} }, .abi = .{ .none = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 355 | } |
test/llvm/allowzero created+98| ... | ... | @@ -0,0 +1,98 @@ |
| 1 | #skip amdgcn-amdhsa-none-baseline-whole-llvm-lld-pic | |
| 2 | #skip amdgcn-amdpal-none-baseline-whole-llvm-lld-pic | |
| 3 | #skip amdgcn-mesa3d-none-baseline-whole-llvm-lld-pic | |
| 4 | ||
| 5 | #skip bpfeb-freestanding-none-baseline-whole-llvm-lld-pic | |
| 6 | ||
| 7 | #skip bpfel-freestanding-none-baseline-whole-llvm-lld-pic | |
| 8 | ||
| 9 | #skip nvptx-cuda-none-baseline-whole-llvm-lld-pic | |
| 10 | #skip nvptx-nvcl-none-baseline-whole-llvm-lld-pic | |
| 11 | ||
| 12 | #skip nvptx64-cuda-none-baseline-whole-llvm-lld-pic | |
| 13 | #skip nvptx64-nvcl-none-baseline-whole-llvm-lld-pic | |
| 14 | ||
| 15 | #skip spirv32-opencl-none-baseline-whole-llvm-lld-pic | |
| 16 | #skip spirv32-opengl-none-baseline-whole-llvm-lld-pic | |
| 17 | #skip spirv32-vulkan-none-baseline-whole-llvm-lld-pic | |
| 18 | ||
| 19 | #skip spirv64-amdhsa-none-baseline-whole-llvm-lld-pic | |
| 20 | #skip spirv64-opencl-none-baseline-whole-llvm-lld-pic | |
| 21 | #skip spirv64-vulkan-none-baseline-whole-llvm-lld-pic | |
| 22 | ||
| 23 | #skip x86_64-linux-gnux32-baseline-whole-llvm-new-pic | |
| 24 | #skip x86_64-linux-muslx32-baseline-whole-llvm-new-pic | |
| 25 | #skip x86_64-linux-x32-baseline-whole-llvm-new-pic | |
| 26 | ||
| 27 | #obj { | |
| 28 | --name test -fno-lld -fno-new-linker -ofmt=llvmir | |
| 29 | -Mroot=test.zig | |
| 30 | #} | |
| 31 | ||
| 32 | #write test.zig { | |
| 33 | export fn entry(ptr: *allowzero i16) i16 { | |
| 34 | return ptr.*; | |
| 35 | } | |
| 36 | #} | |
| 37 | #update "load" | |
| 38 | #check llvm { | |
| 39 | define #...@test.entry(ptr #...%0) #...#0 #...{ | |
| 40 | #...load i16, ptr %0#... | |
| 41 | } | |
| 42 | ||
| 43 | #... | |
| 44 | attributes #0 = {#... null_pointer_is_valid #...} | |
| 45 | #} | |
| 46 | ||
| 47 | #write test.zig { | |
| 48 | export fn entry(ptr: *allowzero i16) void { | |
| 49 | ptr.* = 42; | |
| 50 | } | |
| 51 | #} | |
| 52 | #update "store" | |
| 53 | #check llvm { | |
| 54 | define #...@test.entry(ptr #...%0) #...#0 #...{ | |
| 55 | #...store i16 42, ptr %0#... | |
| 56 | } | |
| 57 | ||
| 58 | #... | |
| 59 | attributes #0 = {#... null_pointer_is_valid #...} | |
| 60 | #} | |
| 61 | ||
| 62 | #write test.zig { | |
| 63 | export fn entry(ptr: *allowzero i16) i16 { | |
| 64 | return entry2(ptr[0..1]); | |
| 65 | } | |
| 66 | fn entry2(slice: []allowzero i16) i16 { | |
| 67 | @setRuntimeSafety(false); | |
| 68 | return slice[0]; | |
| 69 | } | |
| 70 | #} | |
| 71 | #update "slice load" | |
| 72 | #check llvm { | |
| 73 | define #...@test.entry2(#..., ptr #...%1, #...) #...#2 #...{ | |
| 74 | #...load i16, ptr %#... | |
| 75 | } | |
| 76 | ||
| 77 | #... | |
| 78 | attributes #2 = {#... null_pointer_is_valid #...} | |
| 79 | #} | |
| 80 | ||
| 81 | #write test.zig { | |
| 82 | export fn entry(ptr: *allowzero i16) void { | |
| 83 | entry2(ptr[0..1]); | |
| 84 | } | |
| 85 | fn entry2(slice: []allowzero i16) void { | |
| 86 | @setRuntimeSafety(false); | |
| 87 | slice[0] = 42; | |
| 88 | } | |
| 89 | #} | |
| 90 | #update "slice store" | |
| 91 | #check llvm { | |
| 92 | define #...@test.entry2(#..., ptr #...%1, #...) #...#2 #...{ | |
| 93 | #...store i16 42, ptr %#... | |
| 94 | } | |
| 95 | ||
| 96 | #... | |
| 97 | attributes #2 = {#... null_pointer_is_valid #...} | |
| 98 | #} |
test/llvm/array_to_vector created+109| ... | ... | @@ -0,0 +1,109 @@ |
| 1 | #skip amdgcn-amdhsa-none-baseline-whole-llvm-lld-pic | |
| 2 | #skip amdgcn-amdpal-none-baseline-whole-llvm-lld-pic | |
| 3 | #skip amdgcn-mesa3d-none-baseline-whole-llvm-lld-pic | |
| 4 | ||
| 5 | #skip bpfeb-freestanding-none-baseline-whole-llvm-lld-pic | |
| 6 | ||
| 7 | #skip bpfel-freestanding-none-baseline-whole-llvm-lld-pic | |
| 8 | ||
| 9 | #skip loongarch32-freestanding-none-baseline-whole-llvm-lld-pic | |
| 10 | #skip loongarch32-linux-gnu-baseline-whole-llvm-lld-pic | |
| 11 | #skip loongarch32-linux-gnuf32-baseline-whole-llvm-lld-pic | |
| 12 | #skip loongarch32-linux-gnusf-baseline-whole-llvm-lld-pic | |
| 13 | #skip loongarch32-linux-musl-baseline-whole-llvm-lld-pic | |
| 14 | #skip loongarch32-linux-muslf32-baseline-whole-llvm-lld-pic | |
| 15 | #skip loongarch32-linux-muslsf-baseline-whole-llvm-lld-pic | |
| 16 | #skip loongarch32-linux-none-baseline-whole-llvm-lld-pic | |
| 17 | #skip loongarch32-uefi-none-baseline-whole-llvm-lld-pic | |
| 18 | ||
| 19 | #skip loongarch64-freestanding-none-baseline-whole-llvm-lld-pic | |
| 20 | #skip loongarch64-linux-gnu-baseline-whole-llvm-lld-pic | |
| 21 | #skip loongarch64-linux-gnuf32-baseline-whole-llvm-lld-pic | |
| 22 | #skip loongarch64-linux-gnusf-baseline-whole-llvm-lld-pic | |
| 23 | #skip loongarch64-linux-musl-baseline-whole-llvm-lld-pic | |
| 24 | #skip loongarch64-linux-muslf32-baseline-whole-llvm-lld-pic | |
| 25 | #skip loongarch64-linux-muslsf-baseline-whole-llvm-lld-pic | |
| 26 | #skip loongarch64-linux-none-baseline-whole-llvm-lld-pic | |
| 27 | #skip loongarch64-uefi-none-baseline-whole-llvm-lld-pic | |
| 28 | ||
| 29 | #skip nvptx-cuda-none-baseline-whole-llvm-lld-pic | |
| 30 | #skip nvptx-nvcl-none-baseline-whole-llvm-lld-pic | |
| 31 | ||
| 32 | #skip nvptx64-cuda-none-baseline-whole-llvm-lld-pic | |
| 33 | #skip nvptx64-nvcl-none-baseline-whole-llvm-lld-pic | |
| 34 | ||
| 35 | #skip riscv32-freestanding-none-baseline-whole-llvm-lld-pic | |
| 36 | #skip riscv32-linux-gnu-baseline-whole-llvm-lld-pic | |
| 37 | #skip riscv32-linux-musl-baseline-whole-llvm-lld-pic | |
| 38 | #skip riscv32-linux-none-baseline-whole-llvm-lld-pic | |
| 39 | #skip riscv32-netbsd-none-baseline-whole-llvm-lld-pic | |
| 40 | #skip riscv32-rtems-none-baseline-whole-llvm-lld-pic | |
| 41 | #skip riscv32-uefi-none-baseline-whole-llvm-lld-pic | |
| 42 | #skip riscv32be-freestanding-none-baseline-whole-llvm-lld-pic | |
| 43 | ||
| 44 | #skip riscv64-freebsd-none-baseline-whole-llvm-lld-pic | |
| 45 | #skip riscv64-freestanding-none-baseline-whole-llvm-lld-pic | |
| 46 | #skip riscv64-fuchsia-none-baseline-whole-llvm-lld-pic | |
| 47 | #skip riscv64-haiku-none-baseline-whole-llvm-lld-pic | |
| 48 | #skip riscv64-hurd-gnu-baseline-whole-llvm-lld-pic | |
| 49 | #skip riscv64-linux-android-baseline-whole-llvm-lld-pic | |
| 50 | #skip riscv64-linux-gnu-baseline-whole-llvm-lld-pic | |
| 51 | #skip riscv64-linux-musl-baseline-whole-llvm-lld-pic | |
| 52 | #skip riscv64-linux-none-baseline-whole-llvm-lld-pic | |
| 53 | #skip riscv64-netbsd-none-baseline-whole-llvm-lld-pic | |
| 54 | #skip riscv64-openbsd-none-baseline-whole-llvm-lld-pic | |
| 55 | #skip riscv64-rtems-none-baseline-whole-llvm-lld-pic | |
| 56 | #skip riscv64-serenity-none-baseline-whole-llvm-lld-pic | |
| 57 | #skip riscv64-uefi-none-baseline-whole-llvm-lld-pic | |
| 58 | #skip riscv64be-freestanding-none-baseline-whole-llvm-lld-pic | |
| 59 | ||
| 60 | #skip spirv32-opencl-none-baseline-whole-llvm-lld-pic | |
| 61 | #skip spirv32-opengl-none-baseline-whole-llvm-lld-pic | |
| 62 | #skip spirv32-vulkan-none-baseline-whole-llvm-lld-pic | |
| 63 | ||
| 64 | #skip spirv64-amdhsa-none-baseline-whole-llvm-lld-pic | |
| 65 | #skip spirv64-opencl-none-baseline-whole-llvm-lld-pic | |
| 66 | #skip spirv64-vulkan-none-baseline-whole-llvm-lld-pic | |
| 67 | ||
| 68 | #skip x86_64-linux-gnux32-baseline-whole-llvm-new-pic | |
| 69 | #skip x86_64-linux-muslx32-baseline-whole-llvm-new-pic | |
| 70 | #skip x86_64-linux-x32-baseline-whole-llvm-new-pic | |
| 71 | ||
| 72 | #obj { | |
| 73 | --name test -fno-lld -fno-new-linker -ofmt=llvmir | |
| 74 | -Mroot=test.zig | |
| 75 | #} | |
| 76 | ||
| 77 | #write test.zig { | |
| 78 | export fn entry(arr: *const [16]u8) @Vector(16, u8) { | |
| 79 | return arr.*; | |
| 80 | } | |
| 81 | #} | |
| 82 | #update "one vector load" | |
| 83 | #check llvm { | |
| 84 | define #...<16 x i8> @test.entry(#...) #...{ | |
| 85 | #... | |
| 86 | %1 = alloca [16 x i8], align 1#... | |
| 87 | %3 = load <16 x i8>, ptr %1, align 1#... | |
| 88 | ret <16 x i8> %3#... | |
| 89 | #} | |
| 90 | ||
| 91 | #write test.zig { | |
| 92 | export fn entry(a: *@Vector(8, u8), b: *@Vector(8, u8), src: [*]const u8) void { | |
| 93 | const q: @Vector(16, u8) = src[0..16].*; | |
| 94 | a.* = @shuffle(u8, q, undefined, @Vector(8, i32){ 0, 1, 2, 3, 4, 5, 6, 7 }); | |
| 95 | b.* = @shuffle(u8, q, undefined, @Vector(8, i32){ 7, 8, 9, 10, 11, 12, 13, 14 }); | |
| 96 | } | |
| 97 | #} | |
| 98 | #update "feeding overlapping shuffles" | |
| 99 | #check llvm { | |
| 100 | define #...void @test.entry(ptr #...%0, ptr #...%1, #...) #...{ | |
| 101 | #... | |
| 102 | %11 = load <16 x i8>, ptr %#... | |
| 103 | %12 = shufflevector <16 x i8> %11, #... | |
| 104 | store <8 x i8> %12, ptr %0, align 8#... | |
| 105 | %13 = shufflevector <16 x i8> %11, #... | |
| 106 | store <8 x i8> %13, ptr %1, align 8#... | |
| 107 | ret void#... | |
| 108 | } | |
| 109 | #} |
test/llvm/dead_store created+65| ... | ... | @@ -0,0 +1,65 @@ |
| 1 | #skip amdgcn-amdhsa-none-baseline-whole-llvm-lld-pic | |
| 2 | #skip amdgcn-amdpal-none-baseline-whole-llvm-lld-pic | |
| 3 | #skip amdgcn-mesa3d-none-baseline-whole-llvm-lld-pic | |
| 4 | ||
| 5 | #skip nvptx-cuda-none-baseline-whole-llvm-lld-pic | |
| 6 | #skip nvptx-nvcl-none-baseline-whole-llvm-lld-pic | |
| 7 | ||
| 8 | #skip nvptx64-cuda-none-baseline-whole-llvm-lld-pic | |
| 9 | #skip nvptx64-nvcl-none-baseline-whole-llvm-lld-pic | |
| 10 | ||
| 11 | #skip spirv32-opencl-none-baseline-whole-llvm-lld-pic | |
| 12 | #skip spirv32-opengl-none-baseline-whole-llvm-lld-pic | |
| 13 | #skip spirv32-vulkan-none-baseline-whole-llvm-lld-pic | |
| 14 | ||
| 15 | #skip spirv64-amdhsa-none-baseline-whole-llvm-lld-pic | |
| 16 | #skip spirv64-opencl-none-baseline-whole-llvm-lld-pic | |
| 17 | #skip spirv64-vulkan-none-baseline-whole-llvm-lld-pic | |
| 18 | ||
| 19 | #skip x86_64-linux-gnux32-baseline-whole-llvm-new-pic | |
| 20 | #skip x86_64-linux-muslx32-baseline-whole-llvm-new-pic | |
| 21 | #skip x86_64-linux-x32-baseline-whole-llvm-new-pic | |
| 22 | ||
| 23 | #obj { | |
| 24 | --name test -fno-lld -fno-new-linker -ofmt=llvmir | |
| 25 | -Mroot=test.zig | |
| 26 | #} | |
| 27 | ||
| 28 | #write test.zig { | |
| 29 | export fn entry(ptr: *volatile i16) void { | |
| 30 | ptr.* = 123; | |
| 31 | ptr.* = 321; | |
| 32 | } | |
| 33 | #} | |
| 34 | #update "volatile" | |
| 35 | #check llvm { | |
| 36 | define #...@test.entry(ptr #...%0) #...{ | |
| 37 | #...store volatile i16 123, ptr %0#... | |
| 38 | #...store volatile i16 321, ptr %0#... | |
| 39 | } | |
| 40 | ||
| 41 | #} | |
| 42 | ||
| 43 | #write test.zig { | |
| 44 | export fn entry(ptr: *volatile i16) void { | |
| 45 | entry2(ptr[0..1]); | |
| 46 | } | |
| 47 | fn entry2(slice: []volatile i16) void { | |
| 48 | @setRuntimeSafety(false); | |
| 49 | slice[0] = 123; | |
| 50 | slice[0] = 321; | |
| 51 | } | |
| 52 | #} | |
| 53 | #update "volatile slice" | |
| 54 | #check llvm { | |
| 55 | define #...@test.entry(#...) #...{ | |
| 56 | #... | |
| 57 | } | |
| 58 | ||
| 59 | #... | |
| 60 | define #...@test.entry2(#...) #...{ | |
| 61 | #...store volatile i16 123, ptr %#... | |
| 62 | #...store volatile i16 321, ptr %#... | |
| 63 | } | |
| 64 | ||
| 65 | #} |
test/llvm/empty_analyze created+50| ... | ... | @@ -0,0 +1,50 @@ |
| 1 | #skip amdgcn-amdpal-none-baseline-whole-llvm-lld-pic | |
| 2 | #skip amdgcn-mesa3d-none-baseline-whole-llvm-lld-pic | |
| 3 | ||
| 4 | #skip arm-uefi-eabi-baseline-whole-llvm-lld-pic | |
| 5 | #skip arm-uefi-eabihf-baseline-whole-llvm-lld-pic | |
| 6 | ||
| 7 | #skip csky-freestanding-eabi-baseline-whole-llvm-lld-pic | |
| 8 | #skip csky-freestanding-eabihf-baseline-whole-llvm-lld-pic | |
| 9 | #skip csky-linux-eabi-baseline-whole-llvm-lld-pic | |
| 10 | #skip csky-linux-eabihf-baseline-whole-llvm-lld-pic | |
| 11 | #skip csky-linux-gnueabi-baseline-whole-llvm-lld-pic | |
| 12 | #skip csky-linux-gnueabihf-baseline-whole-llvm-lld-pic | |
| 13 | ||
| 14 | #skip loongarch32-linux-gnuf32-baseline-whole-llvm-lld-pic | |
| 15 | #skip loongarch32-linux-musl-baseline-whole-llvm-lld-pic | |
| 16 | #skip loongarch32-linux-muslf32-baseline-whole-llvm-lld-pic | |
| 17 | #skip loongarch32-linux-muslsf-baseline-whole-llvm-lld-pic | |
| 18 | #skip loongarch32-uefi-none-baseline-whole-llvm-lld-pic | |
| 19 | ||
| 20 | #skip loongarch64-linux-gnuf32-baseline-whole-llvm-lld-pic | |
| 21 | #skip loongarch64-linux-muslf32-baseline-whole-llvm-lld-pic | |
| 22 | #skip loongarch64-uefi-none-baseline-whole-llvm-lld-pic | |
| 23 | ||
| 24 | #skip mipsel-psx-eabi-baseline-whole-llvm-lld-pic | |
| 25 | ||
| 26 | #skip riscv32-uefi-none-baseline-whole-llvm-lld-pic | |
| 27 | ||
| 28 | #skip riscv32be-freestanding-none-baseline-whole-llvm-lld-pic | |
| 29 | ||
| 30 | #skip riscv64-uefi-none-baseline-whole-llvm-lld-pic | |
| 31 | ||
| 32 | #skip riscv64be-freestanding-none-baseline-whole-llvm-lld-pic | |
| 33 | ||
| 34 | #skip spirv32-opencl-none-baseline-whole-llvm-lld-pic | |
| 35 | #skip spirv32-opengl-none-baseline-whole-llvm-lld-pic | |
| 36 | #skip spirv32-vulkan-none-baseline-whole-llvm-lld-pic | |
| 37 | ||
| 38 | #skip spirv64-amdhsa-none-baseline-whole-llvm-lld-pic | |
| 39 | #skip spirv64-opencl-none-baseline-whole-llvm-lld-pic | |
| 40 | #skip spirv64-vulkan-none-baseline-whole-llvm-lld-pic | |
| 41 | ||
| 42 | #obj { | |
| 43 | --name test | |
| 44 | -Mroot=test.zig | |
| 45 | -fno-emit-asm -fno-emit-bin | |
| 46 | #} | |
| 47 | ||
| 48 | #write test.zig | |
| 49 | #update | |
| 50 | #check errors |
test/llvm/empty_assembly created+55| ... | ... | @@ -0,0 +1,55 @@ |
| 1 | #skip amdgcn-amdpal-none-baseline-whole-llvm-lld-pic | |
| 2 | #skip amdgcn-mesa3d-none-baseline-whole-llvm-lld-pic | |
| 3 | ||
| 4 | #skip arm-uefi-eabi-baseline-whole-llvm-lld-pic | |
| 5 | #skip arm-uefi-eabihf-baseline-whole-llvm-lld-pic | |
| 6 | ||
| 7 | #skip csky-freestanding-eabi-baseline-whole-llvm-lld-pic | |
| 8 | #skip csky-freestanding-eabihf-baseline-whole-llvm-lld-pic | |
| 9 | #skip csky-linux-eabi-baseline-whole-llvm-lld-pic | |
| 10 | #skip csky-linux-eabihf-baseline-whole-llvm-lld-pic | |
| 11 | #skip csky-linux-gnueabi-baseline-whole-llvm-lld-pic | |
| 12 | #skip csky-linux-gnueabihf-baseline-whole-llvm-lld-pic | |
| 13 | ||
| 14 | #skip loongarch32-linux-gnuf32-baseline-whole-llvm-lld-pic | |
| 15 | #skip loongarch32-linux-musl-baseline-whole-llvm-lld-pic | |
| 16 | #skip loongarch32-linux-muslf32-baseline-whole-llvm-lld-pic | |
| 17 | #skip loongarch32-linux-muslsf-baseline-whole-llvm-lld-pic | |
| 18 | #skip loongarch32-uefi-none-baseline-whole-llvm-lld-pic | |
| 19 | ||
| 20 | #skip loongarch64-linux-gnuf32-baseline-whole-llvm-lld-pic | |
| 21 | #skip loongarch64-linux-muslf32-baseline-whole-llvm-lld-pic | |
| 22 | #skip loongarch64-uefi-none-baseline-whole-llvm-lld-pic | |
| 23 | ||
| 24 | #skip mipsel-psx-eabi-baseline-whole-llvm-lld-pic | |
| 25 | ||
| 26 | #skip riscv32-uefi-none-baseline-whole-llvm-lld-pic | |
| 27 | ||
| 28 | #skip riscv32be-freestanding-none-baseline-whole-llvm-lld-pic | |
| 29 | ||
| 30 | #skip riscv64-uefi-none-baseline-whole-llvm-lld-pic | |
| 31 | ||
| 32 | #skip riscv64be-freestanding-none-baseline-whole-llvm-lld-pic | |
| 33 | ||
| 34 | #skip spirv32-opencl-none-baseline-whole-llvm-lld-pic | |
| 35 | #skip spirv32-opengl-none-baseline-whole-llvm-lld-pic | |
| 36 | #skip spirv32-vulkan-none-baseline-whole-llvm-lld-pic | |
| 37 | ||
| 38 | #skip spirv64-amdhsa-none-baseline-whole-llvm-lld-pic | |
| 39 | #skip spirv64-opencl-none-baseline-whole-llvm-lld-pic | |
| 40 | #skip spirv64-vulkan-none-baseline-whole-llvm-lld-pic | |
| 41 | ||
| 42 | #skip xtensa-freestanding-call0-baseline-whole-llvm-lld-pic | |
| 43 | #skip xtensa-freestanding-none-baseline-whole-llvm-lld-pic | |
| 44 | #skip xtensa-linux-call0-baseline-whole-llvm-lld-pic | |
| 45 | #skip xtensa-linux-none-baseline-whole-llvm-lld-pic | |
| 46 | ||
| 47 | #obj { | |
| 48 | --name test | |
| 49 | -Mroot=test.zig | |
| 50 | -femit-asm -fno-emit-bin | |
| 51 | #} | |
| 52 | ||
| 53 | #write test.zig | |
| 54 | #update | |
| 55 | #check errors |
test/llvm/empty_object created+67| ... | ... | @@ -0,0 +1,67 @@ |
| 1 | #skip amdgcn-amdpal-none-baseline-whole-llvm-lld-pic | |
| 2 | #skip amdgcn-mesa3d-none-baseline-whole-llvm-lld-pic | |
| 3 | ||
| 4 | #skip arc-freestanding-none-baseline-whole-llvm-lld-pic | |
| 5 | #skip arc-linux-gnu-baseline-whole-llvm-lld-pic | |
| 6 | #skip arc-linux-none-baseline-whole-llvm-lld-pic | |
| 7 | ||
| 8 | #skip arm-uefi-eabi-baseline-whole-llvm-lld-pic | |
| 9 | #skip arm-uefi-eabihf-baseline-whole-llvm-lld-pic | |
| 10 | ||
| 11 | #skip csky-freestanding-eabi-baseline-whole-llvm-lld-pic | |
| 12 | #skip csky-freestanding-eabihf-baseline-whole-llvm-lld-pic | |
| 13 | #skip csky-linux-eabi-baseline-whole-llvm-lld-pic | |
| 14 | #skip csky-linux-eabihf-baseline-whole-llvm-lld-pic | |
| 15 | #skip csky-linux-gnueabi-baseline-whole-llvm-lld-pic | |
| 16 | #skip csky-linux-gnueabihf-baseline-whole-llvm-lld-pic | |
| 17 | ||
| 18 | #skip loongarch32-linux-gnuf32-baseline-whole-llvm-lld-pic | |
| 19 | #skip loongarch32-linux-musl-baseline-whole-llvm-lld-pic | |
| 20 | #skip loongarch32-linux-muslf32-baseline-whole-llvm-lld-pic | |
| 21 | #skip loongarch32-linux-muslsf-baseline-whole-llvm-lld-pic | |
| 22 | #skip loongarch32-uefi-none-baseline-whole-llvm-lld-pic | |
| 23 | ||
| 24 | #skip loongarch64-linux-gnuf32-baseline-whole-llvm-lld-pic | |
| 25 | #skip loongarch64-linux-muslf32-baseline-whole-llvm-lld-pic | |
| 26 | #skip loongarch64-uefi-none-baseline-whole-llvm-lld-pic | |
| 27 | ||
| 28 | #skip mipsel-psx-eabi-baseline-whole-llvm-lld-pic | |
| 29 | ||
| 30 | #skip nvptx-cuda-none-baseline-whole-llvm-lld-pic | |
| 31 | #skip nvptx-nvcl-none-baseline-whole-llvm-lld-pic | |
| 32 | ||
| 33 | #skip nvptx64-cuda-none-baseline-whole-llvm-lld-pic | |
| 34 | #skip nvptx64-nvcl-none-baseline-whole-llvm-lld-pic | |
| 35 | ||
| 36 | #skip riscv32-uefi-none-baseline-whole-llvm-lld-pic | |
| 37 | ||
| 38 | #skip riscv32be-freestanding-none-baseline-whole-llvm-lld-pic | |
| 39 | ||
| 40 | #skip riscv64-uefi-none-baseline-whole-llvm-lld-pic | |
| 41 | ||
| 42 | #skip riscv64be-freestanding-none-baseline-whole-llvm-lld-pic | |
| 43 | ||
| 44 | #skip spirv32-opencl-none-baseline-whole-llvm-lld-pic | |
| 45 | #skip spirv32-opengl-none-baseline-whole-llvm-lld-pic | |
| 46 | #skip spirv32-vulkan-none-baseline-whole-llvm-lld-pic | |
| 47 | ||
| 48 | #skip spirv64-amdhsa-none-baseline-whole-llvm-lld-pic | |
| 49 | #skip spirv64-opencl-none-baseline-whole-llvm-lld-pic | |
| 50 | #skip spirv64-vulkan-none-baseline-whole-llvm-lld-pic | |
| 51 | ||
| 52 | #skip xcore-freestanding-none-baseline-whole-llvm-lld-pic | |
| 53 | ||
| 54 | #skip xtensa-freestanding-call0-baseline-whole-llvm-lld-pic | |
| 55 | #skip xtensa-freestanding-none-baseline-whole-llvm-lld-pic | |
| 56 | #skip xtensa-linux-call0-baseline-whole-llvm-lld-pic | |
| 57 | #skip xtensa-linux-none-baseline-whole-llvm-lld-pic | |
| 58 | ||
| 59 | #obj { | |
| 60 | --name test | |
| 61 | -Mroot=test.zig | |
| 62 | -fno-emit-asm -femit-bin | |
| 63 | #} | |
| 64 | ||
| 65 | #write test.zig | |
| 66 | #update | |
| 67 | #check errors |
test/llvm/load_store_bool created+95| ... | ... | @@ -0,0 +1,95 @@ |
| 1 | #skip amdgcn-amdhsa-none-baseline-whole-llvm-lld-pic | |
| 2 | #skip amdgcn-amdpal-none-baseline-whole-llvm-lld-pic | |
| 3 | #skip amdgcn-mesa3d-none-baseline-whole-llvm-lld-pic | |
| 4 | ||
| 5 | #skip bpfeb-freestanding-none-baseline-whole-llvm-lld-pic | |
| 6 | ||
| 7 | #skip bpfel-freestanding-none-baseline-whole-llvm-lld-pic | |
| 8 | ||
| 9 | #skip loongarch32-freestanding-none-baseline-whole-llvm-lld-pic | |
| 10 | #skip loongarch32-linux-gnu-baseline-whole-llvm-lld-pic | |
| 11 | #skip loongarch32-linux-gnuf32-baseline-whole-llvm-lld-pic | |
| 12 | #skip loongarch32-linux-gnusf-baseline-whole-llvm-lld-pic | |
| 13 | #skip loongarch32-linux-musl-baseline-whole-llvm-lld-pic | |
| 14 | #skip loongarch32-linux-muslf32-baseline-whole-llvm-lld-pic | |
| 15 | #skip loongarch32-linux-muslsf-baseline-whole-llvm-lld-pic | |
| 16 | #skip loongarch32-linux-none-baseline-whole-llvm-lld-pic | |
| 17 | #skip loongarch32-uefi-none-baseline-whole-llvm-lld-pic | |
| 18 | ||
| 19 | #skip loongarch64-freestanding-none-baseline-whole-llvm-lld-pic | |
| 20 | #skip loongarch64-linux-gnu-baseline-whole-llvm-lld-pic | |
| 21 | #skip loongarch64-linux-gnuf32-baseline-whole-llvm-lld-pic | |
| 22 | #skip loongarch64-linux-gnu-baseline-whole-llvm-lld-pic | |
| 23 | #skip loongarch64-linux-gnuf32-baseline-whole-llvm-lld-pic | |
| 24 | #skip loongarch64-linux-gnusf-baseline-whole-llvm-lld-pic | |
| 25 | #skip loongarch64-linux-musl-baseline-whole-llvm-lld-pic | |
| 26 | #skip loongarch64-linux-muslf32-baseline-whole-llvm-lld-pic | |
| 27 | #skip loongarch64-linux-muslsf-baseline-whole-llvm-lld-pic | |
| 28 | #skip loongarch64-linux-none-baseline-whole-llvm-lld-pic | |
| 29 | #skip loongarch64-uefi-none-baseline-whole-llvm-lld-pic | |
| 30 | ||
| 31 | #skip nvptx-cuda-none-baseline-whole-llvm-lld-pic | |
| 32 | #skip nvptx-nvcl-none-baseline-whole-llvm-lld-pic | |
| 33 | ||
| 34 | #skip nvptx64-cuda-none-baseline-whole-llvm-lld-pic | |
| 35 | #skip nvptx64-nvcl-none-baseline-whole-llvm-lld-pic | |
| 36 | ||
| 37 | #skip riscv32-freestanding-none-baseline-whole-llvm-lld-pic | |
| 38 | #skip riscv32-linux-gnu-baseline-whole-llvm-lld-pic | |
| 39 | #skip riscv32-linux-musl-baseline-whole-llvm-lld-pic | |
| 40 | #skip riscv32-linux-none-baseline-whole-llvm-lld-pic | |
| 41 | #skip riscv32-netbsd-none-baseline-whole-llvm-lld-pic | |
| 42 | #skip riscv32-rtems-none-baseline-whole-llvm-lld-pic | |
| 43 | #skip riscv32-uefi-none-baseline-whole-llvm-lld-pic | |
| 44 | ||
| 45 | #skip riscv32be-freestanding-none-baseline-whole-llvm-lld-pic | |
| 46 | ||
| 47 | #skip riscv64-freebsd-none-baseline-whole-llvm-lld-pic | |
| 48 | #skip riscv64-freestanding-none-baseline-whole-llvm-lld-pic | |
| 49 | #skip riscv64-fuchsia-none-baseline-whole-llvm-lld-pic | |
| 50 | #skip riscv64-haiku-none-baseline-whole-llvm-lld-pic | |
| 51 | #skip riscv64-hurd-gnu-baseline-whole-llvm-lld-pic | |
| 52 | #skip riscv64-linux-android-baseline-whole-llvm-lld-pic | |
| 53 | #skip riscv64-linux-gnu-baseline-whole-llvm-lld-pic | |
| 54 | #skip riscv64-linux-musl-baseline-whole-llvm-lld-pic | |
| 55 | #skip riscv64-linux-none-baseline-whole-llvm-lld-pic | |
| 56 | #skip riscv64-netbsd-none-baseline-whole-llvm-lld-pic | |
| 57 | #skip riscv64-openbsd-none-baseline-whole-llvm-lld-pic | |
| 58 | #skip riscv64-rtems-none-baseline-whole-llvm-lld-pic | |
| 59 | #skip riscv64-serenity-none-baseline-whole-llvm-lld-pic | |
| 60 | #skip riscv64-uefi-none-baseline-whole-llvm-lld-pic | |
| 61 | ||
| 62 | #skip riscv64be-freestanding-none-baseline-whole-llvm-lld-pic | |
| 63 | ||
| 64 | #skip x86_64-linux-gnux32-baseline-whole-llvm-new-pic | |
| 65 | #skip x86_64-linux-muslx32-baseline-whole-llvm-new-pic | |
| 66 | #skip x86_64-linux-x32-baseline-whole-llvm-new-pic | |
| 67 | ||
| 68 | #obj { | |
| 69 | --name test -fno-lld -fno-new-linker -ofmt=llvmir | |
| 70 | -Mroot=test.zig | |
| 71 | #} | |
| 72 | ||
| 73 | #write test.zig { | |
| 74 | export fn foo(a: *bool, b: *align(2) bool) void { | |
| 75 | const tmp = a.*; | |
| 76 | a.* = b.*; | |
| 77 | b.* = tmp; | |
| 78 | } | |
| 79 | #} | |
| 80 | #update | |
| 81 | #check llvm { | |
| 82 | define #...void @test.foo(ptr #...%0, ptr #...%1) #...{ | |
| 83 | #... | |
| 84 | %5 = load i8, ptr %0, align 1#... | |
| 85 | %6 = trunc nuw i8 %5 to i1#... | |
| 86 | %8 = load i8, ptr %1, align 2#... | |
| 87 | %9 = trunc nuw i8 %8 to i1#... | |
| 88 | %10 = zext i1 %9 to i8#... | |
| 89 | store i8 %10, ptr %0, align 1#... | |
| 90 | %11 = zext i1 %6 to i8#... | |
| 91 | store i8 %11, ptr %1, align 2#... | |
| 92 | ret void#... | |
| 93 | } | |
| 94 | ||
| 95 | #} |
test/llvm/matrix.zon created+355| ... | ... | @@ -0,0 +1,355 @@ |
| 1 | .{ | |
| 2 | .{ .cpu = .{ .aarch64 = .{} }, .os = .{ .driverkit = .{} }, .abi = .{ .none = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .old, .pic = .pic }, | |
| 3 | .{ .cpu = .{ .aarch64 = .{} }, .os = .{ .freebsd = .{} }, .abi = .{ .none = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 4 | .{ .cpu = .{ .aarch64 = .{} }, .os = .{ .freestanding = .{} }, .abi = .{ .none = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 5 | .{ .cpu = .{ .aarch64 = .{} }, .os = .{ .fuchsia = .{} }, .abi = .{ .none = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 6 | .{ .cpu = .{ .aarch64 = .{} }, .os = .{ .haiku = .{} }, .abi = .{ .none = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 7 | .{ .cpu = .{ .aarch64 = .{} }, .os = .{ .hurd = .{} }, .abi = .{ .gnu = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 8 | .{ .cpu = .{ .aarch64 = .{} }, .os = .{ .ios = .{} }, .abi = .{ .none = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .old, .pic = .pic }, | |
| 9 | .{ .cpu = .{ .aarch64 = .{} }, .os = .{ .ios = .{} }, .abi = .{ .simulator = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .old, .pic = .pic }, | |
| 10 | .{ .cpu = .{ .aarch64 = .{} }, .os = .{ .linux = .{} }, .abi = .{ .android = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 11 | .{ .cpu = .{ .aarch64 = .{} }, .os = .{ .linux = .{} }, .abi = .{ .gnu = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 12 | .{ .cpu = .{ .aarch64 = .{} }, .os = .{ .linux = .{} }, .abi = .{ .musl = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 13 | .{ .cpu = .{ .aarch64 = .{} }, .os = .{ .linux = .{} }, .abi = .{ .none = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 14 | .{ .cpu = .{ .aarch64 = .{} }, .os = .{ .linux = .{} }, .abi = .{ .ohos = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 15 | .{ .cpu = .{ .aarch64 = .{} }, .os = .{ .maccatalyst = .{} }, .abi = .{ .none = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .old, .pic = .pic }, | |
| 16 | .{ .cpu = .{ .aarch64 = .{} }, .os = .{ .macos = .{} }, .abi = .{ .none = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .old, .pic = .pic }, | |
| 17 | .{ .cpu = .{ .aarch64 = .{} }, .os = .{ .netbsd = .{} }, .abi = .{ .none = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 18 | .{ .cpu = .{ .aarch64 = .{} }, .os = .{ .openbsd = .{} }, .abi = .{ .none = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 19 | .{ .cpu = .{ .aarch64 = .{} }, .os = .{ .rtems = .{} }, .abi = .{ .none = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 20 | .{ .cpu = .{ .aarch64 = .{} }, .os = .{ .serenity = .{} }, .abi = .{ .none = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 21 | .{ .cpu = .{ .aarch64 = .{} }, .os = .{ .@"switch" = .{} }, .abi = .{ .none = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 22 | .{ .cpu = .{ .aarch64 = .{} }, .os = .{ .tvos = .{} }, .abi = .{ .none = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .old, .pic = .pic }, | |
| 23 | .{ .cpu = .{ .aarch64 = .{} }, .os = .{ .tvos = .{} }, .abi = .{ .simulator = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .old, .pic = .pic }, | |
| 24 | .{ .cpu = .{ .aarch64 = .{} }, .os = .{ .uefi = .{} }, .abi = .{ .none = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 25 | .{ .cpu = .{ .aarch64 = .{} }, .os = .{ .visionos = .{} }, .abi = .{ .none = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .old, .pic = .pic }, | |
| 26 | .{ .cpu = .{ .aarch64 = .{} }, .os = .{ .visionos = .{} }, .abi = .{ .simulator = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .old, .pic = .pic }, | |
| 27 | .{ .cpu = .{ .aarch64 = .{} }, .os = .{ .watchos = .{} }, .abi = .{ .ilp32 = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .old, .pic = .pic }, | |
| 28 | .{ .cpu = .{ .aarch64 = .{} }, .os = .{ .watchos = .{} }, .abi = .{ .none = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .old, .pic = .pic }, | |
| 29 | .{ .cpu = .{ .aarch64 = .{} }, .os = .{ .watchos = .{} }, .abi = .{ .simulator = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .old, .pic = .pic }, | |
| 30 | .{ .cpu = .{ .aarch64 = .{} }, .os = .{ .windows = .{} }, .abi = .{ .gnu = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 31 | .{ .cpu = .{ .aarch64 = .{} }, .os = .{ .windows = .{} }, .abi = .{ .itanium = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 32 | .{ .cpu = .{ .aarch64 = .{} }, .os = .{ .windows = .{} }, .abi = .{ .msvc = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 33 | ||
| 34 | .{ .cpu = .{ .aarch64_be = .{} }, .os = .{ .freestanding = .{} }, .abi = .{ .none = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 35 | .{ .cpu = .{ .aarch64_be = .{} }, .os = .{ .linux = .{} }, .abi = .{ .gnu = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 36 | .{ .cpu = .{ .aarch64_be = .{} }, .os = .{ .linux = .{} }, .abi = .{ .musl = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 37 | .{ .cpu = .{ .aarch64_be = .{} }, .os = .{ .linux = .{} }, .abi = .{ .none = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 38 | .{ .cpu = .{ .aarch64_be = .{} }, .os = .{ .netbsd = .{} }, .abi = .{ .none = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 39 | ||
| 40 | .{ .cpu = .{ .amdgcn = .{} }, .os = .{ .amdhsa = .{} }, .abi = .{ .none = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 41 | .{ .cpu = .{ .amdgcn = .{} }, .os = .{ .amdpal = .{} }, .abi = .{ .none = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 42 | .{ .cpu = .{ .amdgcn = .{} }, .os = .{ .mesa3d = .{} }, .abi = .{ .none = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 43 | ||
| 44 | .{ .cpu = .{ .arc = .{} }, .os = .{ .freestanding = .{} }, .abi = .{ .none = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 45 | .{ .cpu = .{ .arc = .{} }, .os = .{ .linux = .{} }, .abi = .{ .gnu = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 46 | .{ .cpu = .{ .arc = .{} }, .os = .{ .linux = .{} }, .abi = .{ .none = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 47 | ||
| 48 | .{ .cpu = .{ .arm = .{} }, .os = .{ .@"3ds" = .{} }, .abi = .{ .eabihf = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 49 | .{ .cpu = .{ .arm = .{} }, .os = .{ .freebsd = .{} }, .abi = .{ .eabihf = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 50 | .{ .cpu = .{ .arm = .{} }, .os = .{ .freestanding = .{} }, .abi = .{ .eabi = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 51 | .{ .cpu = .{ .arm = .{} }, .os = .{ .freestanding = .{} }, .abi = .{ .eabihf = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 52 | .{ .cpu = .{ .arm = .{} }, .os = .{ .fuchsia = .{} }, .abi = .{ .eabihf = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 53 | .{ .cpu = .{ .arm = .{} }, .os = .{ .gba = .{} }, .abi = .{ .eabi = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 54 | .{ .cpu = .{ .arm = .{} }, .os = .{ .haiku = .{} }, .abi = .{ .eabihf = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 55 | .{ .cpu = .{ .arm = .{} }, .os = .{ .linux = .{} }, .abi = .{ .androideabi = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 56 | .{ .cpu = .{ .arm = .{} }, .os = .{ .linux = .{} }, .abi = .{ .eabi = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 57 | .{ .cpu = .{ .arm = .{} }, .os = .{ .linux = .{} }, .abi = .{ .eabihf = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 58 | .{ .cpu = .{ .arm = .{} }, .os = .{ .linux = .{} }, .abi = .{ .gnueabi = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 59 | .{ .cpu = .{ .arm = .{} }, .os = .{ .linux = .{} }, .abi = .{ .gnueabihf = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 60 | .{ .cpu = .{ .arm = .{} }, .os = .{ .linux = .{} }, .abi = .{ .musleabi = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 61 | .{ .cpu = .{ .arm = .{} }, .os = .{ .linux = .{} }, .abi = .{ .musleabihf = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 62 | .{ .cpu = .{ .arm = .{} }, .os = .{ .linux = .{} }, .abi = .{ .ohoseabi = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 63 | .{ .cpu = .{ .arm = .{} }, .os = .{ .netbsd = .{} }, .abi = .{ .eabi = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 64 | .{ .cpu = .{ .arm = .{} }, .os = .{ .netbsd = .{} }, .abi = .{ .eabihf = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 65 | .{ .cpu = .{ .arm = .{} }, .os = .{ .openbsd = .{} }, .abi = .{ .eabi = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 66 | .{ .cpu = .{ .arm = .{} }, .os = .{ .rtems = .{} }, .abi = .{ .eabi = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 67 | .{ .cpu = .{ .arm = .{} }, .os = .{ .rtems = .{} }, .abi = .{ .eabihf = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 68 | .{ .cpu = .{ .arm = .{} }, .os = .{ .uefi = .{} }, .abi = .{ .eabi = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 69 | .{ .cpu = .{ .arm = .{} }, .os = .{ .uefi = .{} }, .abi = .{ .eabihf = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 70 | .{ .cpu = .{ .arm = .{} }, .os = .{ .vita = .{} }, .abi = .{ .eabihf = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 71 | ||
| 72 | .{ .cpu = .{ .armeb = .{} }, .os = .{ .freestanding = .{} }, .abi = .{ .eabi = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 73 | .{ .cpu = .{ .armeb = .{} }, .os = .{ .freestanding = .{} }, .abi = .{ .eabihf = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 74 | .{ .cpu = .{ .armeb = .{} }, .os = .{ .linux = .{} }, .abi = .{ .eabi = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 75 | .{ .cpu = .{ .armeb = .{} }, .os = .{ .linux = .{} }, .abi = .{ .eabihf = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 76 | .{ .cpu = .{ .armeb = .{} }, .os = .{ .linux = .{} }, .abi = .{ .gnueabi = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 77 | .{ .cpu = .{ .armeb = .{} }, .os = .{ .linux = .{} }, .abi = .{ .gnueabihf = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 78 | .{ .cpu = .{ .armeb = .{} }, .os = .{ .linux = .{} }, .abi = .{ .musleabi = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 79 | .{ .cpu = .{ .armeb = .{} }, .os = .{ .linux = .{} }, .abi = .{ .musleabihf = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 80 | .{ .cpu = .{ .armeb = .{} }, .os = .{ .netbsd = .{} }, .abi = .{ .eabi = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 81 | .{ .cpu = .{ .armeb = .{} }, .os = .{ .netbsd = .{} }, .abi = .{ .eabihf = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 82 | .{ .cpu = .{ .armeb = .{} }, .os = .{ .rtems = .{} }, .abi = .{ .eabi = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 83 | .{ .cpu = .{ .armeb = .{} }, .os = .{ .rtems = .{} }, .abi = .{ .eabihf = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 84 | ||
| 85 | .{ .cpu = .{ .avr = .{} }, .os = .{ .freestanding = .{} }, .abi = .{ .none = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 86 | .{ .cpu = .{ .avr = .{} }, .os = .{ .rtems = .{} }, .abi = .{ .none = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 87 | ||
| 88 | .{ .cpu = .{ .bpfeb = .{} }, .os = .{ .freestanding = .{} }, .abi = .{ .none = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 89 | ||
| 90 | .{ .cpu = .{ .bpfel = .{} }, .os = .{ .freestanding = .{} }, .abi = .{ .none = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 91 | ||
| 92 | .{ .cpu = .{ .csky = .{} }, .os = .{ .freestanding = .{} }, .abi = .{ .eabi = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 93 | .{ .cpu = .{ .csky = .{} }, .os = .{ .freestanding = .{} }, .abi = .{ .eabihf = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 94 | .{ .cpu = .{ .csky = .{} }, .os = .{ .linux = .{} }, .abi = .{ .eabi = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 95 | .{ .cpu = .{ .csky = .{} }, .os = .{ .linux = .{} }, .abi = .{ .eabihf = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 96 | .{ .cpu = .{ .csky = .{} }, .os = .{ .linux = .{} }, .abi = .{ .gnueabi = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 97 | .{ .cpu = .{ .csky = .{} }, .os = .{ .linux = .{} }, .abi = .{ .gnueabihf = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 98 | ||
| 99 | .{ .cpu = .{ .hexagon = .{} }, .os = .{ .freestanding = .{} }, .abi = .{ .none = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 100 | .{ .cpu = .{ .hexagon = .{} }, .os = .{ .linux = .{} }, .abi = .{ .musl = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 101 | .{ .cpu = .{ .hexagon = .{} }, .os = .{ .linux = .{} }, .abi = .{ .none = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 102 | ||
| 103 | .{ .cpu = .{ .lanai = .{} }, .os = .{ .freestanding = .{} }, .abi = .{ .none = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 104 | ||
| 105 | .{ .cpu = .{ .loongarch32 = .{} }, .os = .{ .freestanding = .{} }, .abi = .{ .none = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 106 | .{ .cpu = .{ .loongarch32 = .{} }, .os = .{ .linux = .{} }, .abi = .{ .gnu = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 107 | .{ .cpu = .{ .loongarch32 = .{} }, .os = .{ .linux = .{} }, .abi = .{ .gnuf32 = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 108 | .{ .cpu = .{ .loongarch32 = .{} }, .os = .{ .linux = .{} }, .abi = .{ .gnusf = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 109 | .{ .cpu = .{ .loongarch32 = .{} }, .os = .{ .linux = .{} }, .abi = .{ .musl = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 110 | .{ .cpu = .{ .loongarch32 = .{} }, .os = .{ .linux = .{} }, .abi = .{ .muslf32 = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 111 | .{ .cpu = .{ .loongarch32 = .{} }, .os = .{ .linux = .{} }, .abi = .{ .muslsf = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 112 | .{ .cpu = .{ .loongarch32 = .{} }, .os = .{ .linux = .{} }, .abi = .{ .none = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 113 | .{ .cpu = .{ .loongarch32 = .{} }, .os = .{ .uefi = .{} }, .abi = .{ .none = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 114 | ||
| 115 | .{ .cpu = .{ .loongarch64 = .{} }, .os = .{ .freestanding = .{} }, .abi = .{ .none = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 116 | .{ .cpu = .{ .loongarch64 = .{} }, .os = .{ .linux = .{} }, .abi = .{ .gnu = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 117 | .{ .cpu = .{ .loongarch64 = .{} }, .os = .{ .linux = .{} }, .abi = .{ .gnuf32 = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 118 | .{ .cpu = .{ .loongarch64 = .{} }, .os = .{ .linux = .{} }, .abi = .{ .gnusf = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 119 | .{ .cpu = .{ .loongarch64 = .{} }, .os = .{ .linux = .{} }, .abi = .{ .musl = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 120 | .{ .cpu = .{ .loongarch64 = .{} }, .os = .{ .linux = .{} }, .abi = .{ .muslf32 = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 121 | .{ .cpu = .{ .loongarch64 = .{} }, .os = .{ .linux = .{} }, .abi = .{ .muslsf = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 122 | .{ .cpu = .{ .loongarch64 = .{} }, .os = .{ .linux = .{} }, .abi = .{ .none = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 123 | .{ .cpu = .{ .loongarch64 = .{} }, .os = .{ .uefi = .{} }, .abi = .{ .none = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 124 | ||
| 125 | .{ .cpu = .{ .m68k = .{} }, .os = .{ .freestanding = .{} }, .abi = .{ .none = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 126 | .{ .cpu = .{ .m68k = .{} }, .os = .{ .linux = .{} }, .abi = .{ .gnu = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 127 | .{ .cpu = .{ .m68k = .{} }, .os = .{ .linux = .{} }, .abi = .{ .musl = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 128 | .{ .cpu = .{ .m68k = .{} }, .os = .{ .linux = .{} }, .abi = .{ .none = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 129 | .{ .cpu = .{ .m68k = .{} }, .os = .{ .netbsd = .{} }, .abi = .{ .none = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 130 | .{ .cpu = .{ .m68k = .{} }, .os = .{ .rtems = .{} }, .abi = .{ .none = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 131 | ||
| 132 | .{ .cpu = .{ .mips = .{} }, .os = .{ .freestanding = .{} }, .abi = .{ .eabi = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 133 | .{ .cpu = .{ .mips = .{} }, .os = .{ .freestanding = .{} }, .abi = .{ .eabihf = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 134 | .{ .cpu = .{ .mips = .{} }, .os = .{ .linux = .{} }, .abi = .{ .eabi = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 135 | .{ .cpu = .{ .mips = .{} }, .os = .{ .linux = .{} }, .abi = .{ .eabihf = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 136 | .{ .cpu = .{ .mips = .{} }, .os = .{ .linux = .{} }, .abi = .{ .gnueabi = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 137 | .{ .cpu = .{ .mips = .{} }, .os = .{ .linux = .{} }, .abi = .{ .gnueabihf = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 138 | .{ .cpu = .{ .mips = .{} }, .os = .{ .linux = .{} }, .abi = .{ .musleabi = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 139 | .{ .cpu = .{ .mips = .{} }, .os = .{ .linux = .{} }, .abi = .{ .musleabihf = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 140 | .{ .cpu = .{ .mips = .{} }, .os = .{ .netbsd = .{} }, .abi = .{ .eabi = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 141 | .{ .cpu = .{ .mips = .{} }, .os = .{ .netbsd = .{} }, .abi = .{ .eabihf = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 142 | .{ .cpu = .{ .mips = .{} }, .os = .{ .rtems = .{} }, .abi = .{ .eabi = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 143 | .{ .cpu = .{ .mips = .{} }, .os = .{ .rtems = .{} }, .abi = .{ .eabihf = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 144 | ||
| 145 | .{ .cpu = .{ .mipsel = .{} }, .os = .{ .freestanding = .{} }, .abi = .{ .eabi = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 146 | .{ .cpu = .{ .mipsel = .{} }, .os = .{ .freestanding = .{} }, .abi = .{ .eabihf = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 147 | .{ .cpu = .{ .mipsel = .{} }, .os = .{ .linux = .{} }, .abi = .{ .eabi = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 148 | .{ .cpu = .{ .mipsel = .{} }, .os = .{ .linux = .{} }, .abi = .{ .eabihf = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 149 | .{ .cpu = .{ .mipsel = .{} }, .os = .{ .linux = .{} }, .abi = .{ .gnueabi = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 150 | .{ .cpu = .{ .mipsel = .{} }, .os = .{ .linux = .{} }, .abi = .{ .gnueabihf = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 151 | .{ .cpu = .{ .mipsel = .{} }, .os = .{ .linux = .{} }, .abi = .{ .musleabi = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 152 | .{ .cpu = .{ .mipsel = .{} }, .os = .{ .linux = .{} }, .abi = .{ .musleabihf = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 153 | .{ .cpu = .{ .mipsel = .{} }, .os = .{ .netbsd = .{} }, .abi = .{ .eabi = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 154 | .{ .cpu = .{ .mipsel = .{} }, .os = .{ .netbsd = .{} }, .abi = .{ .eabihf = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 155 | .{ .cpu = .{ .mipsel = .{} }, .os = .{ .psx = .{} }, .abi = .{ .eabi = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 156 | .{ .cpu = .{ .mipsel = .{} }, .os = .{ .psp = .{} }, .abi = .{ .eabihf = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 157 | .{ .cpu = .{ .mipsel = .{} }, .os = .{ .rtems = .{} }, .abi = .{ .eabi = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 158 | .{ .cpu = .{ .mipsel = .{} }, .os = .{ .rtems = .{} }, .abi = .{ .eabihf = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 159 | ||
| 160 | .{ .cpu = .{ .mips64 = .{} }, .os = .{ .freestanding = .{} }, .abi = .{ .none = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 161 | .{ .cpu = .{ .mips64 = .{} }, .os = .{ .linux = .{} }, .abi = .{ .abin32 = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 162 | .{ .cpu = .{ .mips64 = .{} }, .os = .{ .linux = .{} }, .abi = .{ .gnuabi64 = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 163 | .{ .cpu = .{ .mips64 = .{} }, .os = .{ .linux = .{} }, .abi = .{ .gnuabin32 = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 164 | .{ .cpu = .{ .mips64 = .{} }, .os = .{ .linux = .{} }, .abi = .{ .muslabi64 = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 165 | .{ .cpu = .{ .mips64 = .{} }, .os = .{ .linux = .{} }, .abi = .{ .muslabin32 = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 166 | .{ .cpu = .{ .mips64 = .{} }, .os = .{ .linux = .{} }, .abi = .{ .none = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 167 | .{ .cpu = .{ .mips64 = .{} }, .os = .{ .openbsd = .{} }, .abi = .{ .none = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 168 | ||
| 169 | .{ .cpu = .{ .mips64el = .{} }, .os = .{ .freestanding = .{} }, .abi = .{ .none = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 170 | .{ .cpu = .{ .mips64el = .{} }, .os = .{ .linux = .{} }, .abi = .{ .abin32 = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 171 | .{ .cpu = .{ .mips64el = .{} }, .os = .{ .linux = .{} }, .abi = .{ .gnuabi64 = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 172 | .{ .cpu = .{ .mips64el = .{} }, .os = .{ .linux = .{} }, .abi = .{ .gnuabin32 = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 173 | .{ .cpu = .{ .mips64el = .{} }, .os = .{ .linux = .{} }, .abi = .{ .muslabi64 = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 174 | .{ .cpu = .{ .mips64el = .{} }, .os = .{ .linux = .{} }, .abi = .{ .muslabin32 = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 175 | .{ .cpu = .{ .mips64el = .{} }, .os = .{ .linux = .{} }, .abi = .{ .none = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 176 | .{ .cpu = .{ .mips64el = .{} }, .os = .{ .openbsd = .{} }, .abi = .{ .none = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 177 | ||
| 178 | .{ .cpu = .{ .msp430 = .{} }, .os = .{ .freestanding = .{} }, .abi = .{ .none = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 179 | ||
| 180 | .{ .cpu = .{ .nvptx = .{} }, .os = .{ .cuda = .{} }, .abi = .{ .none = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 181 | .{ .cpu = .{ .nvptx = .{} }, .os = .{ .nvcl = .{} }, .abi = .{ .none = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 182 | ||
| 183 | .{ .cpu = .{ .nvptx64 = .{} }, .os = .{ .cuda = .{} }, .abi = .{ .none = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 184 | .{ .cpu = .{ .nvptx64 = .{} }, .os = .{ .nvcl = .{} }, .abi = .{ .none = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 185 | ||
| 186 | .{ .cpu = .{ .powerpc = .{} }, .os = .{ .freestanding = .{} }, .abi = .{ .eabi = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 187 | .{ .cpu = .{ .powerpc = .{} }, .os = .{ .freestanding = .{} }, .abi = .{ .eabihf = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 188 | .{ .cpu = .{ .powerpc = .{} }, .os = .{ .linux = .{} }, .abi = .{ .eabi = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 189 | .{ .cpu = .{ .powerpc = .{} }, .os = .{ .linux = .{} }, .abi = .{ .eabihf = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 190 | .{ .cpu = .{ .powerpc = .{} }, .os = .{ .linux = .{} }, .abi = .{ .musleabi = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 191 | .{ .cpu = .{ .powerpc = .{} }, .os = .{ .linux = .{} }, .abi = .{ .musleabihf = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 192 | .{ .cpu = .{ .powerpc = .{} }, .os = .{ .netbsd = .{} }, .abi = .{ .eabihf = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 193 | .{ .cpu = .{ .powerpc = .{} }, .os = .{ .openbsd = .{} }, .abi = .{ .eabihf = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 194 | .{ .cpu = .{ .powerpc = .{} }, .os = .{ .rtems = .{} }, .abi = .{ .eabi = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 195 | .{ .cpu = .{ .powerpc = .{} }, .os = .{ .rtems = .{} }, .abi = .{ .eabihf = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 196 | .{ .cpu = .{ .powerpc = .{} }, .os = .{ .wiiu = .{} }, .abi = .{ .eabihf = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 197 | ||
| 198 | .{ .cpu = .{ .powerpcle = .{} }, .os = .{ .freestanding = .{} }, .abi = .{ .eabi = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 199 | .{ .cpu = .{ .powerpcle = .{} }, .os = .{ .freestanding = .{} }, .abi = .{ .eabihf = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 200 | ||
| 201 | .{ .cpu = .{ .powerpc64 = .{} }, .os = .{ .freebsd = .{} }, .abi = .{ .none = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 202 | .{ .cpu = .{ .powerpc64 = .{} }, .os = .{ .freestanding = .{} }, .abi = .{ .none = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 203 | .{ .cpu = .{ .powerpc64 = .{} }, .os = .{ .linux = .{} }, .abi = .{ .musl = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 204 | .{ .cpu = .{ .powerpc64 = .{} }, .os = .{ .linux = .{} }, .abi = .{ .none = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 205 | .{ .cpu = .{ .powerpc64 = .{} }, .os = .{ .openbsd = .{} }, .abi = .{ .none = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 206 | .{ .cpu = .{ .powerpc64 = .{} }, .os = .{ .ps3 = .{} }, .abi = .{ .none = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 207 | .{ .cpu = .{ .powerpc64 = .{} }, .os = .{ .rtems = .{} }, .abi = .{ .none = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 208 | ||
| 209 | .{ .cpu = .{ .powerpc64le = .{} }, .os = .{ .freebsd = .{} }, .abi = .{ .none = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 210 | .{ .cpu = .{ .powerpc64le = .{} }, .os = .{ .freestanding = .{} }, .abi = .{ .none = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 211 | .{ .cpu = .{ .powerpc64le = .{} }, .os = .{ .linux = .{} }, .abi = .{ .gnu = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 212 | .{ .cpu = .{ .powerpc64le = .{} }, .os = .{ .linux = .{} }, .abi = .{ .musl = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 213 | .{ .cpu = .{ .powerpc64le = .{} }, .os = .{ .linux = .{} }, .abi = .{ .none = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 214 | ||
| 215 | .{ .cpu = .{ .riscv32 = .{} }, .os = .{ .freestanding = .{} }, .abi = .{ .none = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 216 | .{ .cpu = .{ .riscv32 = .{} }, .os = .{ .linux = .{} }, .abi = .{ .gnu = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 217 | .{ .cpu = .{ .riscv32 = .{} }, .os = .{ .linux = .{} }, .abi = .{ .musl = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 218 | .{ .cpu = .{ .riscv32 = .{} }, .os = .{ .linux = .{} }, .abi = .{ .none = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 219 | .{ .cpu = .{ .riscv32 = .{} }, .os = .{ .netbsd = .{} }, .abi = .{ .none = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 220 | .{ .cpu = .{ .riscv32 = .{} }, .os = .{ .rtems = .{} }, .abi = .{ .none = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 221 | .{ .cpu = .{ .riscv32 = .{} }, .os = .{ .uefi = .{} }, .abi = .{ .none = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 222 | ||
| 223 | .{ .cpu = .{ .riscv32be = .{} }, .os = .{ .freestanding = .{} }, .abi = .{ .none = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 224 | ||
| 225 | .{ .cpu = .{ .riscv64 = .{} }, .os = .{ .freebsd = .{} }, .abi = .{ .none = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 226 | .{ .cpu = .{ .riscv64 = .{} }, .os = .{ .freestanding = .{} }, .abi = .{ .none = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 227 | .{ .cpu = .{ .riscv64 = .{} }, .os = .{ .fuchsia = .{} }, .abi = .{ .none = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 228 | .{ .cpu = .{ .riscv64 = .{} }, .os = .{ .haiku = .{} }, .abi = .{ .none = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 229 | .{ .cpu = .{ .riscv64 = .{} }, .os = .{ .hurd = .{} }, .abi = .{ .gnu = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 230 | .{ .cpu = .{ .riscv64 = .{} }, .os = .{ .linux = .{} }, .abi = .{ .android = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 231 | .{ .cpu = .{ .riscv64 = .{} }, .os = .{ .linux = .{} }, .abi = .{ .gnu = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 232 | .{ .cpu = .{ .riscv64 = .{} }, .os = .{ .linux = .{} }, .abi = .{ .musl = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 233 | .{ .cpu = .{ .riscv64 = .{} }, .os = .{ .linux = .{} }, .abi = .{ .none = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 234 | .{ .cpu = .{ .riscv64 = .{} }, .os = .{ .netbsd = .{} }, .abi = .{ .none = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 235 | .{ .cpu = .{ .riscv64 = .{} }, .os = .{ .openbsd = .{} }, .abi = .{ .none = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 236 | .{ .cpu = .{ .riscv64 = .{} }, .os = .{ .rtems = .{} }, .abi = .{ .none = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 237 | .{ .cpu = .{ .riscv64 = .{} }, .os = .{ .serenity = .{} }, .abi = .{ .none = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 238 | .{ .cpu = .{ .riscv64 = .{} }, .os = .{ .uefi = .{} }, .abi = .{ .none = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 239 | ||
| 240 | .{ .cpu = .{ .riscv64be = .{} }, .os = .{ .freestanding = .{} }, .abi = .{ .none = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 241 | ||
| 242 | .{ .cpu = .{ .s390x = .{} }, .os = .{ .freestanding = .{} }, .abi = .{ .none = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 243 | .{ .cpu = .{ .s390x = .{} }, .os = .{ .linux = .{} }, .abi = .{ .gnu = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 244 | .{ .cpu = .{ .s390x = .{} }, .os = .{ .linux = .{} }, .abi = .{ .musl = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 245 | .{ .cpu = .{ .s390x = .{} }, .os = .{ .linux = .{} }, .abi = .{ .none = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 246 | ||
| 247 | .{ .cpu = .{ .sparc = .{} }, .os = .{ .freestanding = .{} }, .abi = .{ .none = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 248 | .{ .cpu = .{ .sparc = .{} }, .os = .{ .linux = .{} }, .abi = .{ .gnu = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 249 | .{ .cpu = .{ .sparc = .{} }, .os = .{ .linux = .{} }, .abi = .{ .none = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 250 | .{ .cpu = .{ .sparc = .{} }, .os = .{ .netbsd = .{} }, .abi = .{ .none = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 251 | .{ .cpu = .{ .sparc = .{} }, .os = .{ .rtems = .{} }, .abi = .{ .none = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 252 | ||
| 253 | .{ .cpu = .{ .sparc64 = .{} }, .os = .{ .freestanding = .{} }, .abi = .{ .none = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .new, .pic = .pic }, | |
| 254 | .{ .cpu = .{ .sparc64 = .{} }, .os = .{ .linux = .{} }, .abi = .{ .gnu = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .new, .pic = .pic }, | |
| 255 | .{ .cpu = .{ .sparc64 = .{} }, .os = .{ .linux = .{} }, .abi = .{ .none = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .new, .pic = .pic }, | |
| 256 | .{ .cpu = .{ .sparc64 = .{} }, .os = .{ .netbsd = .{} }, .abi = .{ .none = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .new, .pic = .pic }, | |
| 257 | .{ .cpu = .{ .sparc64 = .{} }, .os = .{ .openbsd = .{} }, .abi = .{ .none = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .new, .pic = .pic }, | |
| 258 | .{ .cpu = .{ .sparc64 = .{} }, .os = .{ .rtems = .{} }, .abi = .{ .none = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .new, .pic = .pic }, | |
| 259 | ||
| 260 | .{ .cpu = .{ .spirv32 = .{} }, .os = .{ .opencl = .{} }, .abi = .{ .none = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 261 | .{ .cpu = .{ .spirv32 = .{} }, .os = .{ .opengl = .{} }, .abi = .{ .none = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 262 | .{ .cpu = .{ .spirv32 = .{} }, .os = .{ .vulkan = .{} }, .abi = .{ .none = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 263 | ||
| 264 | .{ .cpu = .{ .spirv64 = .{} }, .os = .{ .amdhsa = .{} }, .abi = .{ .none = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 265 | .{ .cpu = .{ .spirv64 = .{} }, .os = .{ .opencl = .{} }, .abi = .{ .none = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 266 | .{ .cpu = .{ .spirv64 = .{} }, .os = .{ .vulkan = .{} }, .abi = .{ .none = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 267 | ||
| 268 | .{ .cpu = .{ .thumb = .{} }, .os = .{ .freestanding = .{} }, .abi = .{ .eabi = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 269 | .{ .cpu = .{ .thumb = .{} }, .os = .{ .freestanding = .{} }, .abi = .{ .eabihf = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 270 | .{ .cpu = .{ .thumb = .{} }, .os = .{ .fuchsia = .{} }, .abi = .{ .eabihf = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 271 | .{ .cpu = .{ .thumb = .{} }, .os = .{ .gba = .{} }, .abi = .{ .eabi = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 272 | .{ .cpu = .{ .thumb = .{} }, .os = .{ .linux = .{} }, .abi = .{ .eabi = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 273 | .{ .cpu = .{ .thumb = .{} }, .os = .{ .linux = .{} }, .abi = .{ .eabihf = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 274 | .{ .cpu = .{ .thumb = .{} }, .os = .{ .linux = .{} }, .abi = .{ .musleabi = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 275 | .{ .cpu = .{ .thumb = .{} }, .os = .{ .linux = .{} }, .abi = .{ .musleabihf = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 276 | .{ .cpu = .{ .thumb = .{} }, .os = .{ .rtems = .{} }, .abi = .{ .eabi = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 277 | .{ .cpu = .{ .thumb = .{} }, .os = .{ .rtems = .{} }, .abi = .{ .eabihf = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 278 | .{ .cpu = .{ .thumb = .{} }, .os = .{ .vita = .{} }, .abi = .{ .eabihf = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 279 | .{ .cpu = .{ .thumb = .{} }, .os = .{ .windows = .{} }, .abi = .{ .gnu = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 280 | .{ .cpu = .{ .thumb = .{} }, .os = .{ .windows = .{} }, .abi = .{ .itanium = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 281 | .{ .cpu = .{ .thumb = .{} }, .os = .{ .windows = .{} }, .abi = .{ .msvc = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 282 | ||
| 283 | .{ .cpu = .{ .thumbeb = .{} }, .os = .{ .freestanding = .{} }, .abi = .{ .eabi = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 284 | .{ .cpu = .{ .thumbeb = .{} }, .os = .{ .freestanding = .{} }, .abi = .{ .eabihf = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 285 | .{ .cpu = .{ .thumbeb = .{} }, .os = .{ .linux = .{} }, .abi = .{ .eabi = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 286 | .{ .cpu = .{ .thumbeb = .{} }, .os = .{ .linux = .{} }, .abi = .{ .eabihf = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 287 | .{ .cpu = .{ .thumbeb = .{} }, .os = .{ .linux = .{} }, .abi = .{ .musleabi = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 288 | .{ .cpu = .{ .thumbeb = .{} }, .os = .{ .linux = .{} }, .abi = .{ .musleabihf = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 289 | .{ .cpu = .{ .thumbeb = .{} }, .os = .{ .rtems = .{} }, .abi = .{ .eabi = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 290 | .{ .cpu = .{ .thumbeb = .{} }, .os = .{ .rtems = .{} }, .abi = .{ .eabihf = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 291 | ||
| 292 | .{ .cpu = .{ .ve = .{} }, .os = .{ .freestanding = .{} }, .abi = .{ .none = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 293 | .{ .cpu = .{ .ve = .{} }, .os = .{ .linux = .{} }, .abi = .{ .none = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 294 | ||
| 295 | .{ .cpu = .{ .wasm32 = .{} }, .os = .{ .emscripten = .{} }, .abi = .{ .none = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 296 | .{ .cpu = .{ .wasm32 = .{} }, .os = .{ .freestanding = .{} }, .abi = .{ .none = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 297 | .{ .cpu = .{ .wasm32 = .{} }, .os = .{ .wasi = .{} }, .abi = .{ .none = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 298 | ||
| 299 | .{ .cpu = .{ .wasm64 = .{} }, .os = .{ .emscripten = .{} }, .abi = .{ .none = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 300 | .{ .cpu = .{ .wasm64 = .{} }, .os = .{ .freestanding = .{} }, .abi = .{ .none = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 301 | .{ .cpu = .{ .wasm64 = .{} }, .os = .{ .wasi = .{} }, .abi = .{ .none = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 302 | ||
| 303 | .{ .cpu = .{ .x86 = .{} }, .os = .{ .freestanding = .{} }, .abi = .{ .none = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 304 | .{ .cpu = .{ .x86 = .{} }, .os = .{ .haiku = .{} }, .abi = .{ .none = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 305 | .{ .cpu = .{ .x86 = .{} }, .os = .{ .hurd = .{} }, .abi = .{ .gnu = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 306 | .{ .cpu = .{ .x86 = .{} }, .os = .{ .illumos = .{} }, .abi = .{ .none = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 307 | .{ .cpu = .{ .x86 = .{} }, .os = .{ .linux = .{} }, .abi = .{ .android = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 308 | .{ .cpu = .{ .x86 = .{} }, .os = .{ .linux = .{} }, .abi = .{ .gnu = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 309 | .{ .cpu = .{ .x86 = .{} }, .os = .{ .linux = .{} }, .abi = .{ .musl = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 310 | .{ .cpu = .{ .x86 = .{} }, .os = .{ .linux = .{} }, .abi = .{ .none = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 311 | .{ .cpu = .{ .x86 = .{} }, .os = .{ .netbsd = .{} }, .abi = .{ .none = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 312 | .{ .cpu = .{ .x86 = .{} }, .os = .{ .openbsd = .{} }, .abi = .{ .none = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 313 | .{ .cpu = .{ .x86 = .{} }, .os = .{ .rtems = .{} }, .abi = .{ .none = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 314 | .{ .cpu = .{ .x86 = .{} }, .os = .{ .uefi = .{} }, .abi = .{ .none = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 315 | .{ .cpu = .{ .x86 = .{} }, .os = .{ .windows = .{} }, .abi = .{ .gnu = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 316 | .{ .cpu = .{ .x86 = .{} }, .os = .{ .windows = .{} }, .abi = .{ .itanium = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 317 | .{ .cpu = .{ .x86 = .{} }, .os = .{ .windows = .{} }, .abi = .{ .msvc = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 318 | ||
| 319 | .{ .cpu = .{ .x86_64 = .{} }, .os = .{ .freebsd = .{} }, .abi = .{ .none = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .new, .pic = .pic }, | |
| 320 | .{ .cpu = .{ .x86_64 = .{} }, .os = .{ .freestanding = .{} }, .abi = .{ .none = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .new, .pic = .pic }, | |
| 321 | .{ .cpu = .{ .x86_64 = .{ .features = .{ .add = .{.soft_float}, .remove = .{ .mmx, .sse, .sse2, .avx, .avx2 } } } }, .os = .{ .freestanding = .{} }, .abi = .{ .none = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .new, .pic = .pic }, | |
| 322 | .{ .cpu = .{ .x86_64 = .{} }, .os = .{ .fuchsia = .{} }, .abi = .{ .none = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .new, .pic = .pic }, | |
| 323 | .{ .cpu = .{ .x86_64 = .{} }, .os = .{ .dragonfly = .{} }, .abi = .{ .none = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .new, .pic = .pic }, | |
| 324 | .{ .cpu = .{ .x86_64 = .{} }, .os = .{ .driverkit = .{} }, .abi = .{ .none = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .old, .pic = .pic }, | |
| 325 | .{ .cpu = .{ .x86_64 = .{} }, .os = .{ .haiku = .{} }, .abi = .{ .none = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .new, .pic = .pic }, | |
| 326 | .{ .cpu = .{ .x86_64 = .{} }, .os = .{ .hurd = .{} }, .abi = .{ .gnu = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .new, .pic = .pic }, | |
| 327 | .{ .cpu = .{ .x86_64 = .{} }, .os = .{ .illumos = .{} }, .abi = .{ .none = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .new, .pic = .pic }, | |
| 328 | .{ .cpu = .{ .x86_64 = .{} }, .os = .{ .linux = .{} }, .abi = .{ .android = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .new, .pic = .pic }, | |
| 329 | .{ .cpu = .{ .x86_64 = .{} }, .os = .{ .linux = .{} }, .abi = .{ .gnu = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .new, .pic = .pic }, | |
| 330 | .{ .cpu = .{ .x86_64 = .{} }, .os = .{ .linux = .{} }, .abi = .{ .gnux32 = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .new, .pic = .pic }, | |
| 331 | .{ .cpu = .{ .x86_64 = .{} }, .os = .{ .linux = .{} }, .abi = .{ .musl = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .new, .pic = .pic }, | |
| 332 | .{ .cpu = .{ .x86_64 = .{} }, .os = .{ .linux = .{} }, .abi = .{ .muslx32 = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .new, .pic = .pic }, | |
| 333 | .{ .cpu = .{ .x86_64 = .{} }, .os = .{ .linux = .{} }, .abi = .{ .none = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .new, .pic = .pic }, | |
| 334 | .{ .cpu = .{ .x86_64 = .{} }, .os = .{ .linux = .{} }, .abi = .{ .ohos = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .new, .pic = .pic }, | |
| 335 | .{ .cpu = .{ .x86_64 = .{} }, .os = .{ .linux = .{} }, .abi = .{ .x32 = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .new, .pic = .pic }, | |
| 336 | .{ .cpu = .{ .x86_64 = .{} }, .os = .{ .maccatalyst = .{} }, .abi = .{ .none = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .old, .pic = .pic }, | |
| 337 | .{ .cpu = .{ .x86_64 = .{} }, .os = .{ .macos = .{} }, .abi = .{ .none = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .old, .pic = .pic }, | |
| 338 | .{ .cpu = .{ .x86_64 = .{} }, .os = .{ .netbsd = .{} }, .abi = .{ .none = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .new, .pic = .pic }, | |
| 339 | .{ .cpu = .{ .x86_64 = .{} }, .os = .{ .openbsd = .{} }, .abi = .{ .none = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .new, .pic = .pic }, | |
| 340 | .{ .cpu = .{ .x86_64 = .{} }, .os = .{ .ps4 = .{} }, .abi = .{ .none = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .new, .pic = .pic }, | |
| 341 | .{ .cpu = .{ .x86_64 = .{} }, .os = .{ .ps5 = .{} }, .abi = .{ .none = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .new, .pic = .pic }, | |
| 342 | .{ .cpu = .{ .x86_64 = .{} }, .os = .{ .rtems = .{} }, .abi = .{ .none = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .new, .pic = .pic }, | |
| 343 | .{ .cpu = .{ .x86_64 = .{} }, .os = .{ .serenity = .{} }, .abi = .{ .none = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .new, .pic = .pic }, | |
| 344 | .{ .cpu = .{ .x86_64 = .{} }, .os = .{ .uefi = .{} }, .abi = .{ .none = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 345 | .{ .cpu = .{ .x86_64 = .{} }, .os = .{ .windows = .{} }, .abi = .{ .gnu = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 346 | .{ .cpu = .{ .x86_64 = .{} }, .os = .{ .windows = .{} }, .abi = .{ .itanium = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 347 | .{ .cpu = .{ .x86_64 = .{} }, .os = .{ .windows = .{} }, .abi = .{ .msvc = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 348 | ||
| 349 | .{ .cpu = .{ .xcore = .{} }, .os = .{ .freestanding = .{} }, .abi = .{ .none = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 350 | ||
| 351 | .{ .cpu = .{ .xtensa = .{} }, .os = .{ .freestanding = .{} }, .abi = .{ .call0 = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 352 | .{ .cpu = .{ .xtensa = .{} }, .os = .{ .freestanding = .{} }, .abi = .{ .none = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 353 | .{ .cpu = .{ .xtensa = .{} }, .os = .{ .linux = .{} }, .abi = .{ .call0 = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 354 | .{ .cpu = .{ .xtensa = .{} }, .os = .{ .linux = .{} }, .abi = .{ .none = .{} }, .cache_mode = .whole, .backend = .llvm, .linker = .lld, .pic = .pic }, | |
| 355 | } |
test/llvm/nonnull created+44| ... | ... | @@ -0,0 +1,44 @@ |
| 1 | #skip amdgcn-amdhsa-none-baseline-whole-llvm-lld-pic | |
| 2 | #skip amdgcn-amdpal-none-baseline-whole-llvm-lld-pic | |
| 3 | #skip amdgcn-mesa3d-none-baseline-whole-llvm-lld-pic | |
| 4 | ||
| 5 | #skip nvptx-cuda-none-baseline-whole-llvm-lld-pic | |
| 6 | #skip nvptx-nvcl-none-baseline-whole-llvm-lld-pic | |
| 7 | ||
| 8 | #skip nvptx64-cuda-none-baseline-whole-llvm-lld-pic | |
| 9 | #skip nvptx64-nvcl-none-baseline-whole-llvm-lld-pic | |
| 10 | ||
| 11 | #skip x86_64-linux-gnux32-baseline-whole-llvm-new-pic | |
| 12 | #skip x86_64-linux-muslx32-baseline-whole-llvm-new-pic | |
| 13 | #skip x86_64-linux-x32-baseline-whole-llvm-new-pic | |
| 14 | ||
| 15 | #obj { | |
| 16 | --name test -fno-lld -fno-new-linker -ofmt=llvmir | |
| 17 | -Mroot=test.zig | |
| 18 | #} | |
| 19 | ||
| 20 | #write test.zig { | |
| 21 | export fn entry(ptr: *i16) i16 { | |
| 22 | return ptr.*; | |
| 23 | } | |
| 24 | #} | |
| 25 | #update "store" | |
| 26 | #check llvm { | |
| 27 | define #...@test.entry(ptr #...nonnull #...%0) #...{ | |
| 28 | #...load i16, ptr %0#... | |
| 29 | } | |
| 30 | ||
| 31 | #} | |
| 32 | ||
| 33 | #write test.zig { | |
| 34 | export fn entry(ptr: *i16) void { | |
| 35 | ptr.* = 42; | |
| 36 | } | |
| 37 | #} | |
| 38 | #update "load" | |
| 39 | #check llvm { | |
| 40 | define #...@test.entry(ptr #...nonnull #...%0) #...{ | |
| 41 | #...store i16 42, ptr %0#... | |
| 42 | } | |
| 43 | ||
| 44 | #} |
test/llvm/unused_load created+109| ... | ... | @@ -0,0 +1,109 @@ |
| 1 | #skip amdgcn-amdhsa-none-baseline-whole-llvm-lld-pic | |
| 2 | #skip amdgcn-amdpal-none-baseline-whole-llvm-lld-pic | |
| 3 | #skip amdgcn-mesa3d-none-baseline-whole-llvm-lld-pic | |
| 4 | ||
| 5 | #skip nvptx-cuda-none-baseline-whole-llvm-lld-pic | |
| 6 | #skip nvptx-nvcl-none-baseline-whole-llvm-lld-pic | |
| 7 | ||
| 8 | #skip nvptx64-cuda-none-baseline-whole-llvm-lld-pic | |
| 9 | #skip nvptx64-nvcl-none-baseline-whole-llvm-lld-pic | |
| 10 | ||
| 11 | #skip spirv32-opencl-none-baseline-whole-llvm-lld-pic | |
| 12 | #skip spirv32-opengl-none-baseline-whole-llvm-lld-pic | |
| 13 | #skip spirv32-vulkan-none-baseline-whole-llvm-lld-pic | |
| 14 | ||
| 15 | #skip spirv64-amdhsa-none-baseline-whole-llvm-lld-pic | |
| 16 | #skip spirv64-opencl-none-baseline-whole-llvm-lld-pic | |
| 17 | #skip spirv64-vulkan-none-baseline-whole-llvm-lld-pic | |
| 18 | ||
| 19 | #skip wasm32-emscripten-none-baseline-whole-llvm-lld-pic | |
| 20 | #skip wasm32-freestanding-none-baseline-whole-llvm-lld-pic | |
| 21 | #skip wasm32-wasi-none-baseline-whole-llvm-lld-pic | |
| 22 | ||
| 23 | #skip wasm64-emscripten-none-baseline-whole-llvm-lld-pic | |
| 24 | #skip wasm64-freestanding-none-baseline-whole-llvm-lld-pic | |
| 25 | #skip wasm64-wasi-none-baseline-whole-llvm-lld-pic | |
| 26 | ||
| 27 | #skip x86_64-linux-gnux32-baseline-whole-llvm-new-pic | |
| 28 | #skip x86_64-linux-muslx32-baseline-whole-llvm-new-pic | |
| 29 | #skip x86_64-linux-x32-baseline-whole-llvm-new-pic | |
| 30 | ||
| 31 | #obj { | |
| 32 | --name test -fno-lld -fno-new-linker -ofmt=llvmir | |
| 33 | -Mroot=test.zig | |
| 34 | #} | |
| 35 | ||
| 36 | #write test.zig { | |
| 37 | export fn entry(ptr: *i16) void { | |
| 38 | _ = @atomicLoad(i16, ptr, .acquire); | |
| 39 | } | |
| 40 | #} | |
| 41 | #update "atomic acquire" | |
| 42 | #check llvm { | |
| 43 | define #...@test.entry(ptr #...%0) #...{ | |
| 44 | #...load atomic i16, ptr %0 acquire#... | |
| 45 | } | |
| 46 | ||
| 47 | #} | |
| 48 | ||
| 49 | #write test.zig { | |
| 50 | export fn entry(ptr: *volatile i16) void { | |
| 51 | _ = @atomicLoad(i16, ptr, .unordered); | |
| 52 | } | |
| 53 | #} | |
| 54 | #update "atomic volatile unordered" | |
| 55 | #check llvm { | |
| 56 | define #...@test.entry(ptr #...%0) #...{ | |
| 57 | #...load atomic volatile i16, ptr %0 unordered#... | |
| 58 | } | |
| 59 | ||
| 60 | #} | |
| 61 | ||
| 62 | #write test.zig { | |
| 63 | export fn entry(ptr: *volatile i16) void { | |
| 64 | _ = ptr.*; | |
| 65 | } | |
| 66 | #} | |
| 67 | #update "volatile" | |
| 68 | #check llvm { | |
| 69 | define #...@test.entry(ptr #...%0) #...{ | |
| 70 | #...load volatile i16, ptr %0#... | |
| 71 | } | |
| 72 | ||
| 73 | #} | |
| 74 | ||
| 75 | #write test.zig { | |
| 76 | export fn entry(ptr: *volatile i16) void { | |
| 77 | entry2(ptr[0..1]); | |
| 78 | } | |
| 79 | fn entry2(slice: []volatile i16) void { | |
| 80 | @setRuntimeSafety(false); | |
| 81 | _ = slice[0]; | |
| 82 | } | |
| 83 | #} | |
| 84 | #update "volatile slice" | |
| 85 | #check llvm { | |
| 86 | define #...@test.entry(#...) #...{ | |
| 87 | #... | |
| 88 | } | |
| 89 | ||
| 90 | #... | |
| 91 | define #...@test.entry2(#...) #...{ | |
| 92 | #...load volatile i16, ptr %#... | |
| 93 | } | |
| 94 | ||
| 95 | #} | |
| 96 | ||
| 97 | #write test.zig { | |
| 98 | const S = packed struct(u16) { a: u2, b: u8, c: u6 }; | |
| 99 | export fn entry(ptr: *volatile S) void { | |
| 100 | _ = ptr.b; | |
| 101 | } | |
| 102 | #} | |
| 103 | #update "volatile packed" | |
| 104 | #check llvm { | |
| 105 | define #...@test.entry(ptr #...%0) #...{ | |
| 106 | #...load volatile i16, ptr %#... | |
| 107 | } | |
| 108 | ||
| 109 | #} |