Skip to content

Commit 836a319

Browse files
melver丹治秀樹
authored andcommitted
[Support] Add getAllocTokenModeAsString() helper (llvm#169650)
Add a helper function getAllocTokenModeAsString() to convert AllocTokenMode values to their string representation. NFC.
1 parent 9fb0363 commit 836a319

File tree

3 files changed

+18
-15
lines changed

3 files changed

+18
-15
lines changed

clang/lib/Frontend/CompilerInvocation.cpp

Lines changed: 1 addition & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -3948,21 +3948,7 @@ void CompilerInvocationBase::GenerateLangArgs(const LangOptions &Opts,
39483948
std::to_string(*Opts.AllocTokenMax));
39493949

39503950
if (Opts.AllocTokenMode) {
3951-
StringRef S;
3952-
switch (*Opts.AllocTokenMode) {
3953-
case llvm::AllocTokenMode::Increment:
3954-
S = "increment";
3955-
break;
3956-
case llvm::AllocTokenMode::Random:
3957-
S = "random";
3958-
break;
3959-
case llvm::AllocTokenMode::TypeHash:
3960-
S = "typehash";
3961-
break;
3962-
case llvm::AllocTokenMode::TypeHashPointerSplit:
3963-
S = "typehashpointersplit";
3964-
break;
3965-
}
3951+
StringRef S = llvm::getAllocTokenModeAsString(*Opts.AllocTokenMode);
39663952
GenerateArg(Consumer, OPT_falloc_token_mode_EQ, S);
39673953
}
39683954
}

llvm/include/llvm/Support/AllocToken.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,9 @@ inline constexpr AllocTokenMode DefaultAllocTokenMode =
4646
LLVM_ABI std::optional<AllocTokenMode>
4747
getAllocTokenModeFromString(StringRef Name);
4848

49+
/// Returns the canonical string name for the given AllocTokenMode.
50+
LLVM_ABI StringRef getAllocTokenModeAsString(AllocTokenMode Mode);
51+
4952
/// Metadata about an allocation used to generate a token ID.
5053
struct AllocTokenMetadata {
5154
SmallString<64> TypeName;

llvm/lib/Support/AllocToken.cpp

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,20 @@ llvm::getAllocTokenModeFromString(StringRef Name) {
2828
.Default(std::nullopt);
2929
}
3030

31+
StringRef llvm::getAllocTokenModeAsString(AllocTokenMode Mode) {
32+
switch (Mode) {
33+
case AllocTokenMode::Increment:
34+
return "increment";
35+
case AllocTokenMode::Random:
36+
return "random";
37+
case AllocTokenMode::TypeHash:
38+
return "typehash";
39+
case AllocTokenMode::TypeHashPointerSplit:
40+
return "typehashpointersplit";
41+
}
42+
llvm_unreachable("Unknown AllocTokenMode");
43+
}
44+
3145
static uint64_t getStableHash(const AllocTokenMetadata &Metadata,
3246
uint64_t MaxTokens) {
3347
return getStableSipHash(Metadata.TypeName) % MaxTokens;

0 commit comments

Comments
 (0)