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{...@@ -24,6 +24,7 @@ const llvm_targets = [_]LlvmTarget{
24 .zig_name = "aarch64",24 .zig_name = "aarch64",
25 .llvm_name = "AArch64",25 .llvm_name = "AArch64",
26 .td_name = "AArch64.td",26 .td_name = "AArch64.td",
27 .branch_quota = 2000,
27 .feature_overrides = &.{28 .feature_overrides = &.{
28 .{29 .{
29 .llvm_name = "CONTEXTIDREL2",30 .llvm_name = "CONTEXTIDREL2",
...@@ -46,6 +47,7 @@ const llvm_targets = [_]LlvmTarget{...@@ -46,6 +47,7 @@ const llvm_targets = [_]LlvmTarget{
46 .zig_name = "arm",47 .zig_name = "arm",
47 .llvm_name = "ARM",48 .llvm_name = "ARM",
48 .td_name = "ARM.td",49 .td_name = "ARM.td",
50 .branch_quota = 10000,
49 },51 },
50 .{52 .{
51 .zig_name = "avr",53 .zig_name = "avr",
...@@ -338,7 +340,7 @@ fn processOneTarget(job: Job) anyerror!void {...@@ -338,7 +340,7 @@ fn processOneTarget(job: Job) anyerror!void {
338 for (all_features.items) |obj| {340 for (all_features.items) |obj| {
339 const llvm_name = obj.get("Name").?.String;341 const llvm_name = obj.get("Name").?.String;
340 const zig_name = try llvmNameToZigName(arena, llvm_target, llvm_name);342 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)});
342 }344 }
343345
344 try w.writeAll(346 try w.writeAll(
...@@ -347,6 +349,7 @@ fn processOneTarget(job: Job) anyerror!void {...@@ -347,6 +349,7 @@ fn processOneTarget(job: Job) anyerror!void {
347 \\pub usingnamespace CpuFeature.feature_set_fns(Feature);349 \\pub usingnamespace CpuFeature.feature_set_fns(Feature);
348 \\350 \\
349 \\pub const all_features = blk: {351 \\pub const all_features = blk: {
352 \\
350 );353 );
351 if (llvm_target.branch_quota) |branch_quota| {354 if (llvm_target.branch_quota) |branch_quota| {
352 try w.print(" @setEvalBranchQuota({d});\n", .{branch_quota});355 try w.print(" @setEvalBranchQuota({d});\n", .{branch_quota});
...@@ -363,9 +366,9 @@ fn processOneTarget(job: Job) anyerror!void {...@@ -363,9 +366,9 @@ fn processOneTarget(job: Job) anyerror!void {
363 const description = obj.get("Desc").?.String;366 const description = obj.get("Desc").?.String;
364 const zig_name = try llvmNameToZigName(arena, llvm_target, llvm_name);367 const zig_name = try llvmNameToZigName(arena, llvm_target, llvm_name);
365 try w.print(368 try w.print(
366 \\ result[@enumToInt(Feature.{s})] = .{{369 \\ result[@enumToInt(Feature.{})] = .{{
367 \\ .llvm_name = "{s}",370 \\ .llvm_name = "{}",
368 \\ .description = "{s}",371 \\ .description = "{}",
369 \\ .dependencies = featureSet(&[_]Feature{{372 \\ .dependencies = featureSet(&[_]Feature{{
370 ,373 ,
371 .{374 .{
...@@ -394,7 +397,7 @@ fn processOneTarget(job: Job) anyerror!void {...@@ -394,7 +397,7 @@ fn processOneTarget(job: Job) anyerror!void {
394 for (dependencies.items) |dep| {397 for (dependencies.items) |dep| {
395 const other_llvm_name = dep.get("Name").?.String;398 const other_llvm_name = dep.get("Name").?.String;
396 const other_zig_name = try llvmNameToZigName(arena, llvm_target, other_llvm_name);399 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)});
398 }401 }
399 try w.writeAll(402 try w.writeAll(
400 \\ }),403 \\ }),
...@@ -439,9 +442,9 @@ fn processOneTarget(job: Job) anyerror!void {...@@ -439,9 +442,9 @@ fn processOneTarget(job: Job) anyerror!void {
439 std.sort.sort(*json.ObjectMap, cpu_features.items, {}, objectLessThan);442 std.sort.sort(*json.ObjectMap, cpu_features.items, {}, objectLessThan);
440 const zig_cpu_name = try llvmNameToZigName(arena, llvm_target, llvm_name);443 const zig_cpu_name = try llvmNameToZigName(arena, llvm_target, llvm_name);
441 try w.print(444 try w.print(
442 \\ pub const {s} = CpuModel{{445 \\ pub const {} = CpuModel{{
443 \\ .name = "{s}",446 \\ .name = "{}",
444 \\ .llvm_name = "{s}",447 \\ .llvm_name = "{}",
445 \\ .features = featureSet(&[_]Feature{{448 \\ .features = featureSet(&[_]Feature{{
446 , .{449 , .{
447 std.zig.fmtId(zig_cpu_name),450 std.zig.fmtId(zig_cpu_name),
...@@ -459,7 +462,7 @@ fn processOneTarget(job: Job) anyerror!void {...@@ -459,7 +462,7 @@ fn processOneTarget(job: Job) anyerror!void {
459 for (cpu_features.items) |feature_obj| {462 for (cpu_features.items) |feature_obj| {
460 const feature_llvm_name = feature_obj.get("Name").?.String;463 const feature_llvm_name = feature_obj.get("Name").?.String;
461 const feature_zig_name = try llvmNameToZigName(arena, llvm_target, feature_llvm_name);464 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)});
463 }466 }
464 try w.writeAll(467 try w.writeAll(
465 \\ }),468 \\ }),