| ... | ... | @@ -1737,10 +1737,11 @@ fn processOneTarget(job: Job) void { |
| 1737 | 1737 | const collate_progress = progress_node.start("collating LLVM data", 0); |
| 1738 | 1738 | |
| 1739 | 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 | 1741 | llvm: []const u8, |
| 1742 | 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 | 1747 | var it = root_map.iterator(); |
| ... | ... | @@ -1756,12 +1757,16 @@ fn processOneTarget(job: Job) void { |
| 1756 | 1757 | |
| 1757 | 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 | 1766 | .llvm = llvm_alias, |
| 1763 | 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 | 1923 | }); |
| 1919 | 1924 | |
| 1920 | 1925 | if (cpu_aliases.get(zig_name)) |aliases| { |
| 1921 | | var alias_it = aliases.constIterator(0); |
| 1922 | | |
| 1923 | | alias_it: while (alias_it.next()) |alias| { |
| 1926 | alias_it: for (aliases.items) |alias| { |
| 1924 | 1927 | for (target.omit_cpus) |omit_cpu_name| { |
| 1925 | 1928 | if (mem.eql(u8, omit_cpu_name, alias.llvm)) continue :alias_it; |
| 1926 | 1929 | } |