aboutsummaryrefslogtreecommitdiff
path: root/tools/update_cpu_features.zig
diff options
context:
space:
mode:
authorLoris Cro <kappaloris@gmail.com>2023-06-18 09:06:40 +0200
committerGitHub <noreply@github.com>2023-06-18 09:06:40 +0200
commit216ef10dc471e4db60a30208be178d6c59efeaaf (patch)
tree8c239dab283ae9cb3b7fe099bae240bcc53f894e /tools/update_cpu_features.zig
parent0fc1d396495c1ab482197021dedac8bea3f9401c (diff)
parent729a051e9e38674233190aea23c0ac8c134f2d67 (diff)
downloadzig-216ef10dc471e4db60a30208be178d6c59efeaaf.tar.gz
zig-216ef10dc471e4db60a30208be178d6c59efeaaf.zip
Merge branch 'master' into autodoc-searchkey
Diffstat (limited to 'tools/update_cpu_features.zig')
-rw-r--r--tools/update_cpu_features.zig52
1 files changed, 26 insertions, 26 deletions
diff --git a/tools/update_cpu_features.zig b/tools/update_cpu_features.zig
index dd1b96fa7c..d5c3d48852 100644
--- a/tools/update_cpu_features.zig
+++ b/tools/update_cpu_features.zig
@@ -1054,14 +1054,14 @@ fn processOneTarget(job: Job) anyerror!void {
var json_parse_progress = progress_node.start("parse JSON", 0);
json_parse_progress.activate();
- var parser = json.Parser.init(arena, false);
+ var parser = json.Parser.init(arena, .alloc_if_needed);
const tree = try parser.parse(json_text);
json_parse_progress.end();
var render_progress = progress_node.start("render zig code", 0);
render_progress.activate();
- const root_map = &tree.root.Object;
+ const root_map = &tree.root.object;
var features_table = std.StringHashMap(Feature).init(arena);
var all_features = std.ArrayList(Feature).init(arena);
var all_cpus = std.ArrayList(Cpu).init(arena);
@@ -1070,21 +1070,21 @@ fn processOneTarget(job: Job) anyerror!void {
root_it: while (it.next()) |kv| {
if (kv.key_ptr.len == 0) continue;
if (kv.key_ptr.*[0] == '!') continue;
- if (kv.value_ptr.* != .Object) continue;
- if (hasSuperclass(&kv.value_ptr.Object, "SubtargetFeature")) {
- const llvm_name = kv.value_ptr.Object.get("Name").?.String;
+ if (kv.value_ptr.* != .object) continue;
+ if (hasSuperclass(&kv.value_ptr.object, "SubtargetFeature")) {
+ const llvm_name = kv.value_ptr.object.get("Name").?.string;
if (llvm_name.len == 0) continue;
var zig_name = try llvmNameToZigName(arena, llvm_name);
- var desc = kv.value_ptr.Object.get("Desc").?.String;
+ var desc = kv.value_ptr.object.get("Desc").?.string;
var deps = std.ArrayList([]const u8).init(arena);
var omit = false;
var flatten = false;
- const implies = kv.value_ptr.Object.get("Implies").?.Array;
+ const implies = kv.value_ptr.object.get("Implies").?.array;
for (implies.items) |imply| {
- const other_key = imply.Object.get("def").?.String;
- const other_obj = &root_map.getPtr(other_key).?.Object;
- const other_llvm_name = other_obj.get("Name").?.String;
+ const other_key = imply.object.get("def").?.string;
+ const other_obj = &root_map.getPtr(other_key).?.object;
+ const other_llvm_name = other_obj.get("Name").?.string;
const other_zig_name = (try llvmNameToZigNameOmit(
arena,
llvm_target,
@@ -1126,17 +1126,17 @@ fn processOneTarget(job: Job) anyerror!void {
try all_features.append(feature);
}
}
- if (hasSuperclass(&kv.value_ptr.Object, "Processor")) {
- const llvm_name = kv.value_ptr.Object.get("Name").?.String;
+ if (hasSuperclass(&kv.value_ptr.object, "Processor")) {
+ const llvm_name = kv.value_ptr.object.get("Name").?.string;
if (llvm_name.len == 0) continue;
var zig_name = try llvmNameToZigName(arena, llvm_name);
var deps = std.ArrayList([]const u8).init(arena);
- const features = kv.value_ptr.Object.get("Features").?.Array;
+ const features = kv.value_ptr.object.get("Features").?.array;
for (features.items) |feature| {
- const feature_key = feature.Object.get("def").?.String;
- const feature_obj = &root_map.getPtr(feature_key).?.Object;
- const feature_llvm_name = feature_obj.get("Name").?.String;
+ const feature_key = feature.object.get("def").?.string;
+ const feature_obj = &root_map.getPtr(feature_key).?.object;
+ const feature_llvm_name = feature_obj.get("Name").?.string;
if (feature_llvm_name.len == 0) continue;
const feature_zig_name = (try llvmNameToZigNameOmit(
arena,
@@ -1145,11 +1145,11 @@ fn processOneTarget(job: Job) anyerror!void {
)) orelse continue;
try deps.append(feature_zig_name);
}
- const tune_features = kv.value_ptr.Object.get("TuneFeatures").?.Array;
+ const tune_features = kv.value_ptr.object.get("TuneFeatures").?.array;
for (tune_features.items) |feature| {
- const feature_key = feature.Object.get("def").?.String;
- const feature_obj = &root_map.getPtr(feature_key).?.Object;
- const feature_llvm_name = feature_obj.get("Name").?.String;
+ const feature_key = feature.object.get("def").?.string;
+ const feature_obj = &root_map.getPtr(feature_key).?.object;
+ const feature_llvm_name = feature_obj.get("Name").?.string;
if (feature_llvm_name.len == 0) continue;
const feature_zig_name = (try llvmNameToZigNameOmit(
arena,
@@ -1187,8 +1187,8 @@ fn processOneTarget(job: Job) anyerror!void {
for (llvm_target.extra_cpus) |extra_cpu| {
try all_cpus.append(extra_cpu);
}
- std.sort.sort(Feature, all_features.items, {}, featureLessThan);
- std.sort.sort(Cpu, all_cpus.items, {}, cpuLessThan);
+ mem.sort(Feature, all_features.items, {}, featureLessThan);
+ mem.sort(Cpu, all_cpus.items, {}, cpuLessThan);
const target_sub_path = try fs.path.join(arena, &.{ "lib", "std", "target" });
var target_dir = try job.zig_src_dir.makeOpenPath(target_sub_path, .{});
@@ -1283,7 +1283,7 @@ fn processOneTarget(job: Job) anyerror!void {
try dependencies.append(key.*);
}
}
- std.sort.sort([]const u8, dependencies.items, {}, asciiLessThan);
+ mem.sort([]const u8, dependencies.items, {}, asciiLessThan);
if (dependencies.items.len == 0) {
try w.writeAll(
@@ -1328,7 +1328,7 @@ fn processOneTarget(job: Job) anyerror!void {
try cpu_features.append(key.*);
}
}
- std.sort.sort([]const u8, cpu_features.items, {}, asciiLessThan);
+ mem.sort([]const u8, cpu_features.items, {}, asciiLessThan);
if (cpu.llvm_name) |llvm_name| {
try w.print(
\\ pub const {} = CpuModel{{
@@ -1431,8 +1431,8 @@ fn llvmNameToZigNameOmit(
fn hasSuperclass(obj: *json.ObjectMap, class_name: []const u8) bool {
const superclasses_json = obj.get("!superclasses") orelse return false;
- for (superclasses_json.Array.items) |superclass_json| {
- const superclass = superclass_json.String;
+ for (superclasses_json.array.items) |superclass_json| {
+ const superclass = superclass_json.string;
if (std.mem.eql(u8, superclass, class_name)) {
return true;
}