[llvm] [TableGen] Rework `EmitIntrinsicToBuiltinMap` (PR #104681)
Rahul Joshi via llvm-commits
llvm-commits at lists.llvm.org
Mon Aug 19 19:14:12 PDT 2024
================
@@ -596,89 +598,178 @@ void IntrinsicEmitter::EmitIntrinsicToBuiltinMap(
const CodeGenIntrinsicTable &Ints, bool IsClang, raw_ostream &OS) {
StringRef CompilerName = IsClang ? "Clang" : "MS";
StringRef UpperCompilerName = IsClang ? "CLANG" : "MS";
- // map<TargetPrefix, map<BuiltinName, EnumName>>. Note that we iterate over
- // both maps in the code below. For the inner map, entries need to be emitted
- // in the sorted order of `BuiltinName` because we use std::lower_bound to
- // search these entries. For the outer map, it doesn't need be be sorted, but
- // we use a map to eliminate non-determinism in the emitted code.
- typedef std::map<StringRef, std::map<StringRef, StringRef>> BIMTy;
- BIMTy BuiltinMap;
- StringToOffsetTable Table;
+
+ // map<TargetPrefix, pair<map<BuiltinName, EnumName>, CommonPrefix>.
+ // Note that we iterate over both the maps in the code below and both
+ // iterations need to iterate in sorted key order. For the inner map, entries
+ // need to be emitted in the sorted order of `BuiltinName - CommonPrefix`
----------------
jurahul wrote:
Agreed, I'll rephrase.
https://github.com/llvm/llvm-project/pull/104681
More information about the llvm-commits
mailing list