| ... | @@ -1737,10 +1737,11 @@ fn processOneTarget(job: Job) void { | ... | @@ -1737,10 +1737,11 @@ fn processOneTarget(job: Job) void { |
| 1737 | const collate_progress = progress_node.start("collating LLVM data", 0); | 1737 | const collate_progress = progress_node.start("collating LLVM data", 0); |
| 1738 | | 1738 | |
| 1739 | // So far, LLVM only has a few aliases for the same CPU. | 1739 | // So far, LLVM only has a few aliases for the same CPU. |
| 1740 | var cpu_aliases = std.StringHashMap(std.SegmentedList(struct { | 1740 | const Alias = struct { |
| 1741 | llvm: []const u8, | 1741 | llvm: []const u8, |
| 1742 | zig: []const u8, | 1742 | zig: []const u8, |
| 1743 | }, 4)).init(arena); | 1743 | }; |
| | 1744 | var cpu_aliases = std.StringHashMap(std.ArrayList(*Alias)).init(arena); |
| 1744 | | 1745 | |
| 1745 | { | 1746 | { |
| 1746 | var it = root_map.iterator(); | 1747 | var it = root_map.iterator(); |
| ... | @@ -1756,12 +1757,16 @@ fn processOneTarget(job: Job) void { | ... | @@ -1756,12 +1757,16 @@ fn processOneTarget(job: Job) void { |
| 1756 | | 1757 | |
| 1757 | const gop = try cpu_aliases.getOrPut(try llvmNameToZigName(arena, llvm_name)); | 1758 | const gop = try cpu_aliases.getOrPut(try llvmNameToZigName(arena, llvm_name)); |
| 1758 | | 1759 | |
| 1759 | if (!gop.found_existing) gop.value_ptr.* = .{}; | 1760 | if (!gop.found_existing) { |
| | 1761 | gop.value_ptr.* = .empty; |
| | 1762 | } |
| 1760 | | 1763 | |
| 1761 | try gop.value_ptr.append(arena, .{ | 1764 | const alias = try arena.create(Alias); |
| | 1765 | alias.* = .{ |
| 1762 | .llvm = llvm_alias, | 1766 | .llvm = llvm_alias, |
| 1763 | .zig = try llvmNameToZigName(arena, llvm_alias), | 1767 | .zig = try llvmNameToZigName(arena, llvm_alias), |
| 1764 | }); | 1768 | }; |
| | 1769 | try gop.value_ptr.append(arena, alias); |
| 1765 | } | 1770 | } |
| 1766 | } | 1771 | } |
| 1767 | } | 1772 | } |
| ... | @@ -1918,9 +1923,7 @@ fn processOneTarget(job: Job) void { | ... | @@ -1918,9 +1923,7 @@ fn processOneTarget(job: Job) void { |
| 1918 | }); | 1923 | }); |
| 1919 | | 1924 | |
| 1920 | if (cpu_aliases.get(zig_name)) |aliases| { | 1925 | if (cpu_aliases.get(zig_name)) |aliases| { |
| 1921 | var alias_it = aliases.constIterator(0); | 1926 | alias_it: for (aliases.items) |alias| { |
| 1922 | | | |
| 1923 | alias_it: while (alias_it.next()) |alias| { | | |
| 1924 | for (target.omit_cpus) |omit_cpu_name| { | 1927 | for (target.omit_cpus) |omit_cpu_name| { |
| 1925 | if (mem.eql(u8, omit_cpu_name, alias.llvm)) continue :alias_it; | 1928 | if (mem.eql(u8, omit_cpu_name, alias.llvm)) continue :alias_it; |
| 1926 | } | 1929 | } |