authorgravatar for alex@alexrp.comAlex Rønne Petersen <alex@alexrp.com> 2026-10-20 04:34:02+02:00
committergravatar for alex@alexrp.comAlex Rønne Petersen <alex@alexrp.com> 2026-10-20 04:34:30+02:00
log4df60441652914d3228bbd1dc3c05f64b8c16191
tree0290da70448b77b664c051a8eea949df6f027f60
parent373ae071132bd80737d02e474230da7ecd865482
signature Signed by SSH key SHA256:7B/LJ7bpR1eX8aCXSr4mtd5M45VMPKcx9zY8e95b5QM

update_cpu_features: s/cpu/model/g


1 files changed, 57 insertions(+), 57 deletions(-)

tools/update_cpu_features.zig+57-57
......@@ -23,7 +23,7 @@ const FeatureOverride = struct {
2323 extra_deps: []const []const u8 = &.{},
2424};
2525
26const CpuOverride = struct {
26const ModelOverride = struct {
2727 llvm_name: []const u8,
2828 /// If true, completely omit the CPU; as if it does not exist.
2929 omit: bool = false,
......@@ -33,7 +33,7 @@ const CpuOverride = struct {
3333 extra_deps: []const []const u8 = &.{},
3434};
3535
36const Cpu = struct {
36const Model = struct {
3737 llvm_name: ?[]const u8,
3838 zig_name: []const u8,
3939 features: []const []const u8,
......@@ -55,8 +55,8 @@ const ArchTarget = struct {
5555 },
5656 feature_overrides: []const FeatureOverride = &.{},
5757 extra_features: []const Feature = &.{},
58 cpu_overrides: []const CpuOverride = &.{},
59 extra_cpus: []const Cpu = &.{},
58 model_overrides: []const ModelOverride = &.{},
59 extra_models: []const Model = &.{},
6060 branch_quota: ?usize = null,
6161};
6262
......@@ -442,7 +442,7 @@ const targets = [_]ArchTarget{
442442 .flatten = true,
443443 },
444444 },
445 .cpu_overrides = &.{
445 .model_overrides = &.{
446446 .{
447447 // Who thought this alias was a good idea? Upgrade your compiler and suddenly your
448448 // programs SIGILL because this changed meaning. Brilliant.
......@@ -450,7 +450,7 @@ const targets = [_]ArchTarget{
450450 .omit = true,
451451 },
452452 },
453 .extra_cpus = &.{
453 .extra_models = &.{
454454 .{
455455 .llvm_name = null,
456456 .zig_name = "exynos_m1",
......@@ -529,7 +529,7 @@ const targets = [_]ArchTarget{
529529 .deps = &.{},
530530 },
531531 },
532 .extra_cpus = &.{
532 .extra_models = &.{
533533 .{
534534 .llvm_name = null,
535535 .zig_name = "ev4",
......@@ -1100,7 +1100,7 @@ const targets = [_]ArchTarget{
11001100 .deps = &.{"strict_align"},
11011101 },
11021102 },
1103 .cpu_overrides = &.{
1103 .model_overrides = &.{
11041104 .{
11051105 .llvm_name = "cortex-m4",
11061106 .omit_deps = &.{"vfp4d16sp"},
......@@ -1158,7 +1158,7 @@ const targets = [_]ArchTarget{
11581158 .omit_deps = &.{ "fp_armv8d16", "mve_fp", "pacbti" },
11591159 },
11601160 },
1161 .extra_cpus = &.{
1161 .extra_models = &.{
11621162 .{
11631163 .llvm_name = "generic",
11641164 .zig_name = "baseline",
......@@ -1318,7 +1318,7 @@ const targets = [_]ArchTarget{
13181318 .deps = &.{ "max_2", "v1_1" },
13191319 },
13201320 },
1321 .extra_cpus = &.{
1321 .extra_models = &.{
13221322 .{
13231323 .llvm_name = null,
13241324 .zig_name = "ts_1",
......@@ -1454,7 +1454,7 @@ const targets = [_]ArchTarget{
14541454 .deps = &.{"v3_2"},
14551455 },
14561456 },
1457 .extra_cpus = &.{
1457 .extra_models = &.{
14581458 .{
14591459 .llvm_name = null,
14601460 .zig_name = "coolidge_v1",
......@@ -1484,7 +1484,7 @@ const targets = [_]ArchTarget{
14841484 .name = "LoongArch",
14851485 .td_name = "LoongArch",
14861486 },
1487 .cpu_overrides = &.{
1487 .model_overrides = &.{
14881488 .{
14891489 .llvm_name = "generic",
14901490 .omit = true,
......@@ -1502,7 +1502,7 @@ const targets = [_]ArchTarget{
15021502 .omit = true,
15031503 },
15041504 },
1505 .extra_cpus = &.{
1505 .extra_models = &.{
15061506 .{
15071507 .llvm_name = null,
15081508 .zig_name = "generic_la64",
......@@ -1581,7 +1581,7 @@ const targets = [_]ArchTarget{
15811581 .deps = &.{},
15821582 },
15831583 },
1584 .extra_cpus = &.{
1584 .extra_models = &.{
15851585 .{
15861586 .llvm_name = null,
15871587 .zig_name = "r3000a",
......@@ -1633,13 +1633,13 @@ const targets = [_]ArchTarget{
16331633 .omit = true,
16341634 },
16351635 },
1636 .cpu_overrides = &.{
1636 .model_overrides = &.{
16371637 .{
16381638 .llvm_name = "ppc32",
16391639 .omit = true,
16401640 },
16411641 },
1642 .extra_cpus = &.{
1642 .extra_models = &.{
16431643 .{
16441644 .llvm_name = null,
16451645 .zig_name = "cell",
......@@ -1686,7 +1686,7 @@ const targets = [_]ArchTarget{
16861686 .deps = &.{},
16871687 },
16881688 },
1689 .extra_cpus = &.{
1689 .extra_models = &.{
16901690 .{
16911691 .llvm_name = null,
16921692 .zig_name = "p1",
......@@ -1707,7 +1707,7 @@ const targets = [_]ArchTarget{
17071707 },
17081708 .branch_quota = 2000,
17091709 .extra_features = spirv_extra_features,
1710 .extra_cpus = &.{
1710 .extra_models = &.{
17111711 .{
17121712 .llvm_name = null,
17131713 .zig_name = "vulkan_v1_2",
......@@ -1733,7 +1733,7 @@ const targets = [_]ArchTarget{
17331733 .flatten = true,
17341734 },
17351735 },
1736 .extra_cpus = &.{
1736 .extra_models = &.{
17371737 .{
17381738 .llvm_name = null,
17391739 .zig_name = "baseline_rv32",
......@@ -1773,13 +1773,13 @@ const targets = [_]ArchTarget{
17731773 .deps = &.{},
17741774 },
17751775 },
1776 .cpu_overrides = &.{
1776 .model_overrides = &.{
17771777 .{
17781778 .llvm_name = "generic",
17791779 .omit = true,
17801780 },
17811781 },
1782 .extra_cpus = &.{
1782 .extra_models = &.{
17831783 .{
17841784 .llvm_name = null,
17851785 .zig_name = "ve10",
......@@ -1830,7 +1830,7 @@ const targets = [_]ArchTarget{
18301830 .deps = &.{"bulk_memory_opt"},
18311831 },
18321832 },
1833 .cpu_overrides = &.{
1833 .model_overrides = &.{
18341834 .{
18351835 .llvm_name = "bleeding-edge",
18361836 .omit = true,
......@@ -1840,7 +1840,7 @@ const targets = [_]ArchTarget{
18401840 .omit = true,
18411841 },
18421842 },
1843 .extra_cpus = &.{
1843 .extra_models = &.{
18441844 .{
18451845 .llvm_name = null,
18461846 .zig_name = "wasm_v1_0",
......@@ -1951,7 +1951,7 @@ const targets = [_]ArchTarget{
19511951 .deps = &.{},
19521952 },
19531953 },
1954 .cpu_overrides = &.{
1954 .model_overrides = &.{
19551955 .{
19561956 .llvm_name = "amdfam10",
19571957 .extra_deps = &.{"3dnowa"},
......@@ -2291,7 +2291,7 @@ const targets = [_]ArchTarget{
22912291 .omit = true,
22922292 },
22932293 },
2294 .extra_cpus = &.{
2294 .extra_models = &.{
22952295 .{
22962296 .llvm_name = null,
22972297 .zig_name = "i86",
......@@ -2327,7 +2327,7 @@ const targets = [_]ArchTarget{
23272327 .deps = &.{"xs3"},
23282328 },
23292329 },
2330 .cpu_overrides = &.{
2330 .model_overrides = &.{
23312331 .{
23322332 .llvm_name = "generic",
23332333 .omit = true,
......@@ -2337,7 +2337,7 @@ const targets = [_]ArchTarget{
23372337 .omit = true,
23382338 },
23392339 },
2340 .extra_cpus = &.{
2340 .extra_models = &.{
23412341 .{
23422342 .llvm_name = null,
23432343 .zig_name = "xs1b",
......@@ -2449,7 +2449,7 @@ fn processOneTargetInner(io: Io, job: Job) !void {
24492449
24502450 var features_table = std.StringHashMap(Feature).init(arena);
24512451 var all_features = std.array_list.Managed(Feature).init(arena);
2452 var all_cpus = std.array_list.Managed(Cpu).init(arena);
2452 var all_models = std.array_list.Managed(Model).init(arena);
24532453
24542454 if (target.llvm) |llvm| {
24552455 const tblgen_progress = progress_node.start("running llvm-tblgen", 0);
......@@ -2509,7 +2509,7 @@ fn processOneTargetInner(io: Io, job: Job) !void {
25092509 llvm: []const u8,
25102510 zig: []const u8,
25112511 };
2512 var cpu_aliases = std.StringHashMap(std.ArrayList(*Alias)).init(arena);
2512 var model_aliases = std.StringHashMap(std.ArrayList(*Alias)).init(arena);
25132513
25142514 {
25152515 var it = root_map.iterator();
......@@ -2523,7 +2523,7 @@ fn processOneTargetInner(io: Io, job: Job) !void {
25232523 const llvm_alias = kv.value_ptr.object.get("Name").?.string;
25242524 const llvm_name = kv.value_ptr.object.get("Alias").?.string;
25252525
2526 const gop = try cpu_aliases.getOrPut(try llvmNameToZigName(arena, llvm_name));
2526 const gop = try model_aliases.getOrPut(try llvmNameToZigName(arena, llvm_name));
25272527
25282528 if (!gop.found_existing) {
25292529 gop.value_ptr.* = .empty;
......@@ -2634,16 +2634,16 @@ fn processOneTargetInner(io: Io, job: Job) !void {
26342634 var deps = std.array_list.Managed([]const u8).init(arena);
26352635 var omit_deps: []const []const u8 = &.{};
26362636 var extra_deps: []const []const u8 = &.{};
2637 const omitted = for (target.cpu_overrides) |cpu_override| {
2638 if (mem.eql(u8, llvm_name, cpu_override.llvm_name)) {
2639 if (cpu_override.omit) {
2637 const omitted = for (target.model_overrides) |model_override| {
2638 if (mem.eql(u8, llvm_name, model_override.llvm_name)) {
2639 if (model_override.omit) {
26402640 break true;
26412641 }
2642 if (cpu_override.zig_name) |override_name| {
2642 if (model_override.zig_name) |override_name| {
26432643 zig_name = override_name;
26442644 }
2645 omit_deps = cpu_override.omit_deps;
2646 extra_deps = cpu_override.extra_deps;
2645 omit_deps = model_override.omit_deps;
2646 extra_deps = model_override.extra_deps;
26472647 break false;
26482648 }
26492649 } else false;
......@@ -2681,19 +2681,19 @@ fn processOneTargetInner(io: Io, job: Job) !void {
26812681 )) orelse continue;
26822682 try deps.append(feature_zig_name);
26832683 }
2684 try all_cpus.append(.{
2684 try all_models.append(.{
26852685 .llvm_name = llvm_name,
26862686 .zig_name = zig_name,
26872687 .features = deps.items,
26882688 });
26892689
2690 if (cpu_aliases.get(zig_name)) |aliases| {
2690 if (model_aliases.get(zig_name)) |aliases| {
26912691 alias_it: for (aliases.items) |alias| {
2692 for (target.cpu_overrides) |cpu_override| {
2693 if (mem.eql(u8, alias.llvm, cpu_override.llvm_name) and cpu_override.omit) continue :alias_it;
2692 for (target.model_overrides) |model_override| {
2693 if (mem.eql(u8, alias.llvm, model_override.llvm_name) and model_override.omit) continue :alias_it;
26942694 }
26952695
2696 try all_cpus.append(.{
2696 try all_models.append(.{
26972697 .llvm_name = alias.llvm,
26982698 .zig_name = alias.zig,
26992699 .features = deps.items,
......@@ -2711,11 +2711,11 @@ fn processOneTargetInner(io: Io, job: Job) !void {
27112711 try features_table.put(extra_feature.zig_name, extra_feature);
27122712 try all_features.append(extra_feature);
27132713 }
2714 for (target.extra_cpus) |extra_cpu| {
2715 try all_cpus.append(extra_cpu);
2714 for (target.extra_models) |extra_model| {
2715 try all_models.append(extra_model);
27162716 }
27172717 mem.sort(Feature, all_features.items, {}, featureLessThan);
2718 mem.sort(Cpu, all_cpus.items, {}, cpuLessThan);
2718 mem.sort(Model, all_models.items, {}, modelLessThan);
27192719
27202720 const render_progress = progress_node.start("rendering Zig code", 0);
27212721
......@@ -2838,29 +2838,29 @@ fn processOneTargetInner(io: Io, job: Job) !void {
28382838 \\pub const cpu = struct {
28392839 \\
28402840 );
2841 for (all_cpus.items) |cpu| {
2841 for (all_models.items) |model| {
28422842 var deps_set = std.StringHashMap(void).init(arena);
2843 for (cpu.features) |feature_zig_name| {
2843 for (model.features) |feature_zig_name| {
28442844 try putDep(&deps_set, features_table, feature_zig_name);
28452845 }
28462846 try pruneFeatures(arena, features_table, &deps_set);
2847 var cpu_features = std.array_list.Managed([]const u8).init(arena);
2847 var model_features = std.array_list.Managed([]const u8).init(arena);
28482848 {
28492849 var it = deps_set.keyIterator();
28502850 while (it.next()) |key| {
2851 try cpu_features.append(key.*);
2851 try model_features.append(key.*);
28522852 }
28532853 }
2854 mem.sort([]const u8, cpu_features.items, {}, asciiLessThan);
2855 if (cpu.llvm_name) |llvm_name| {
2854 mem.sort([]const u8, model_features.items, {}, asciiLessThan);
2855 if (model.llvm_name) |llvm_name| {
28562856 try w.print(
28572857 \\ pub const {f}: CpuModel = .{{
28582858 \\ .name = "{f}",
28592859 \\ .llvm_name = "{f}",
28602860 \\ .features = featureSet(&[_]Feature{{
28612861 , .{
2862 std.zig.fmtId(cpu.zig_name),
2863 std.zig.fmtString(cpu.zig_name),
2862 std.zig.fmtId(model.zig_name),
2863 std.zig.fmtString(model.zig_name),
28642864 std.zig.fmtString(llvm_name),
28652865 });
28662866 } else {
......@@ -2870,11 +2870,11 @@ fn processOneTargetInner(io: Io, job: Job) !void {
28702870 \\ .llvm_name = null,
28712871 \\ .features = featureSet(&[_]Feature{{
28722872 , .{
2873 std.zig.fmtId(cpu.zig_name),
2874 std.zig.fmtString(cpu.zig_name),
2873 std.zig.fmtId(model.zig_name),
2874 std.zig.fmtString(model.zig_name),
28752875 });
28762876 }
2877 if (cpu_features.items.len == 0) {
2877 if (model_features.items.len == 0) {
28782878 try w.writeAll(
28792879 \\}),
28802880 \\ };
......@@ -2882,7 +2882,7 @@ fn processOneTargetInner(io: Io, job: Job) !void {
28822882 );
28832883 } else {
28842884 try w.writeAll("\n");
2885 for (cpu_features.items) |feature_zig_name| {
2885 for (model_features.items) |feature_zig_name| {
28862886 try w.print(" .{f},\n", .{std.zig.fmtIdPU(feature_zig_name)});
28872887 }
28882888 try w.writeAll(
......@@ -2920,7 +2920,7 @@ fn featureLessThan(_: void, a: Feature, b: Feature) bool {
29202920 return std.ascii.lessThanIgnoreCase(a.zig_name, b.zig_name);
29212921}
29222922
2923fn cpuLessThan(_: void, a: Cpu, b: Cpu) bool {
2923fn modelLessThan(_: void, a: Model, b: Model) bool {
29242924 return std.ascii.lessThanIgnoreCase(a.zig_name, b.zig_name);
29252925}
29262926