authorgravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2021-02-26 23:21:05-07:00
committergravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2021-02-26 23:21:05-07:00
loga804944c7d844763103aa37ba07541f2349ab273
treee16cc448f3aa061965930da90ac284733f1d4eb9
parent2733ca91b29cf9f0f26305635602fe4087f1a677

tools/update_cpu_features: branch quota where necessary

also avoid unnecessary escaping of single quotes inside double quoted strings (depends on a master branch commit that will be merged into this branch in a future commit)

1 files changed, 12 insertions(+), 9 deletions(-)

tools/update_cpu_features.zig+12-9
......@@ -24,6 +24,7 @@ const llvm_targets = [_]LlvmTarget{
2424 .zig_name = "aarch64",
2525 .llvm_name = "AArch64",
2626 .td_name = "AArch64.td",
27 .branch_quota = 2000,
2728 .feature_overrides = &.{
2829 .{
2930 .llvm_name = "CONTEXTIDREL2",
......@@ -46,6 +47,7 @@ const llvm_targets = [_]LlvmTarget{
4647 .zig_name = "arm",
4748 .llvm_name = "ARM",
4849 .td_name = "ARM.td",
50 .branch_quota = 10000,
4951 },
5052 .{
5153 .zig_name = "avr",
......@@ -338,7 +340,7 @@ fn processOneTarget(job: Job) anyerror!void {
338340 for (all_features.items) |obj| {
339341 const llvm_name = obj.get("Name").?.String;
340342 const zig_name = try llvmNameToZigName(arena, llvm_target, llvm_name);
341 try w.print(" {s},\n", .{std.zig.fmtId(zig_name)});
343 try w.print(" {},\n", .{std.zig.fmtId(zig_name)});
342344 }
343345
344346 try w.writeAll(
......@@ -347,6 +349,7 @@ fn processOneTarget(job: Job) anyerror!void {
347349 \\pub usingnamespace CpuFeature.feature_set_fns(Feature);
348350 \\
349351 \\pub const all_features = blk: {
352 \\
350353 );
351354 if (llvm_target.branch_quota) |branch_quota| {
352355 try w.print(" @setEvalBranchQuota({d});\n", .{branch_quota});
......@@ -363,9 +366,9 @@ fn processOneTarget(job: Job) anyerror!void {
363366 const description = obj.get("Desc").?.String;
364367 const zig_name = try llvmNameToZigName(arena, llvm_target, llvm_name);
365368 try w.print(
366 \\ result[@enumToInt(Feature.{s})] = .{{
367 \\ .llvm_name = "{s}",
368 \\ .description = "{s}",
369 \\ result[@enumToInt(Feature.{})] = .{{
370 \\ .llvm_name = "{}",
371 \\ .description = "{}",
369372 \\ .dependencies = featureSet(&[_]Feature{{
370373 ,
371374 .{
......@@ -394,7 +397,7 @@ fn processOneTarget(job: Job) anyerror!void {
394397 for (dependencies.items) |dep| {
395398 const other_llvm_name = dep.get("Name").?.String;
396399 const other_zig_name = try llvmNameToZigName(arena, llvm_target, other_llvm_name);
397 try w.print(" .{s},\n", .{std.zig.fmtId(other_zig_name)});
400 try w.print(" .{},\n", .{std.zig.fmtId(other_zig_name)});
398401 }
399402 try w.writeAll(
400403 \\ }),
......@@ -439,9 +442,9 @@ fn processOneTarget(job: Job) anyerror!void {
439442 std.sort.sort(*json.ObjectMap, cpu_features.items, {}, objectLessThan);
440443 const zig_cpu_name = try llvmNameToZigName(arena, llvm_target, llvm_name);
441444 try w.print(
442 \\ pub const {s} = CpuModel{{
443 \\ .name = "{s}",
444 \\ .llvm_name = "{s}",
445 \\ pub const {} = CpuModel{{
446 \\ .name = "{}",
447 \\ .llvm_name = "{}",
445448 \\ .features = featureSet(&[_]Feature{{
446449 , .{
447450 std.zig.fmtId(zig_cpu_name),
......@@ -459,7 +462,7 @@ fn processOneTarget(job: Job) anyerror!void {
459462 for (cpu_features.items) |feature_obj| {
460463 const feature_llvm_name = feature_obj.get("Name").?.String;
461464 const feature_zig_name = try llvmNameToZigName(arena, llvm_target, feature_llvm_name);
462 try w.print(" .{s},\n", .{std.zig.fmtId(feature_zig_name)});
465 try w.print(" .{},\n", .{std.zig.fmtId(feature_zig_name)});
463466 }
464467 try w.writeAll(
465468 \\ }),