Skip to content

Commit 983e06b

Browse files
Revert "Reland the reland "[PGO][GlobalValue][LTO]In GlobalValues::getGlobalIdentifier, use semicolon as delimiter for local-linkage varibles. " (llvm#75954)"
This reverts commit 78a195e.
1 parent a8081ed commit 983e06b

17 files changed

+127
-249
lines changed

compiler-rt/test/profile/CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ set(PROFILE_TESTSUITES)
66
set(PROFILE_TEST_DEPS ${SANITIZER_COMMON_LIT_TEST_DEPS} compiler-rt-headers)
77
list(APPEND PROFILE_TEST_DEPS profile)
88
if(NOT COMPILER_RT_STANDALONE_BUILD)
9-
list(APPEND PROFILE_TEST_DEPS llvm-cov llvm-lto llvm-profdata opt)
9+
list(APPEND PROFILE_TEST_DEPS llvm-profdata llvm-cov)
1010
if(COMPILER_RT_HAS_LLD AND "lld" IN_LIST LLVM_ENABLE_PROJECTS)
1111
list(APPEND PROFILE_TEST_DEPS lld)
1212
endif()

llvm/include/llvm/IR/GlobalValue.h

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -41,10 +41,6 @@ namespace Intrinsic {
4141
typedef unsigned ID;
4242
} // end namespace Intrinsic
4343

44-
// Choose ';' as the delimiter. ':' was used once but it doesn't work well for
45-
// Objective-C functions which commonly have :'s in their names.
46-
inline constexpr char kGlobalIdentifierDelimiter = ';';
47-
4844
class GlobalValue : public Constant {
4945
public:
5046
/// An enumeration for the kinds of linkage for global values.

llvm/include/llvm/ProfileData/InstrProf.h

Lines changed: 11 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -171,8 +171,6 @@ inline StringRef getInstrProfCounterBiasVarName() {
171171
/// Return the marker used to separate PGO names during serialization.
172172
inline StringRef getInstrProfNameSeparator() { return "\01"; }
173173

174-
/// Please use getIRPGOFuncName for LLVM IR instrumentation. This function is
175-
/// for front-end (Clang, etc) instrumentation.
176174
/// Return the modified name for function \c F suitable to be
177175
/// used the key for profile lookup. Variable \c InLTO indicates if this
178176
/// is called in LTO optimization passes.
@@ -198,22 +196,20 @@ std::string getIRPGOFuncName(const Function &F, bool InLTO = false);
198196
std::pair<StringRef, StringRef> getParsedIRPGOFuncName(StringRef IRPGOFuncName);
199197

200198
/// Return the name of the global variable used to store a function
201-
/// name in PGO instrumentation. \c FuncName is the IRPGO function name
202-
/// (returned by \c getIRPGOFuncName) for LLVM IR instrumentation and PGO
203-
/// function name (returned by \c getPGOFuncName) for front-end instrumentation.
199+
/// name in PGO instrumentation. \c FuncName is the name of the function
200+
/// returned by the \c getPGOFuncName call.
204201
std::string getPGOFuncNameVarName(StringRef FuncName,
205202
GlobalValue::LinkageTypes Linkage);
206203

207204
/// Create and return the global variable for function name used in PGO
208-
/// instrumentation. \c FuncName is the IRPGO function name (returned by
209-
/// \c getIRPGOFuncName) for LLVM IR instrumentation and PGO function name
210-
/// (returned by \c getPGOFuncName) for front-end instrumentation.
205+
/// instrumentation. \c FuncName is the name of the function returned
206+
/// by \c getPGOFuncName call.
211207
GlobalVariable *createPGOFuncNameVar(Function &F, StringRef PGOFuncName);
212208

213209
/// Create and return the global variable for function name used in PGO
214-
/// instrumentation. \c FuncName is the IRPGO function name (returned by
215-
/// \c getIRPGOFuncName) for LLVM IR instrumentation and PGO function name
216-
/// (returned by \c getPGOFuncName) for front-end instrumentation.
210+
/// instrumentation. /// \c FuncName is the name of the function
211+
/// returned by \c getPGOFuncName call, \c M is the owning module,
212+
/// and \c Linkage is the linkage of the instrumented function.
217213
GlobalVariable *createPGOFuncNameVar(Module &M,
218214
GlobalValue::LinkageTypes Linkage,
219215
StringRef PGOFuncName);
@@ -421,11 +417,11 @@ uint64_t ComputeHash(StringRef K);
421417

422418
} // end namespace IndexedInstrProf
423419

424-
/// A symbol table used for function [IR]PGO name look-up with keys
420+
/// A symbol table used for function PGO name look-up with keys
425421
/// (such as pointers, md5hash values) to the function. A function's
426-
/// [IR]PGO name or name's md5hash are used in retrieving the profile
427-
/// data of the function. See \c getIRPGOFuncName() and \c getPGOFuncName
428-
/// methods for details how [IR]PGO name is formed.
422+
/// PGO name or name's md5hash are used in retrieving the profile
423+
/// data of the function. See \c getPGOFuncName() method for details
424+
/// on how PGO name is formed.
429425
class InstrProfSymtab {
430426
public:
431427
using AddrHashMap = std::vector<std::pair<uint64_t, uint64_t>>;

llvm/lib/IR/Globals.cpp

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -144,27 +144,25 @@ void GlobalObject::copyAttributesFrom(const GlobalObject *Src) {
144144
std::string GlobalValue::getGlobalIdentifier(StringRef Name,
145145
GlobalValue::LinkageTypes Linkage,
146146
StringRef FileName) {
147+
147148
// Value names may be prefixed with a binary '1' to indicate
148149
// that the backend should not modify the symbols due to any platform
149150
// naming convention. Do not include that '1' in the PGO profile name.
150151
if (Name[0] == '\1')
151152
Name = Name.substr(1);
152153

153-
std::string GlobalName;
154+
std::string NewName = std::string(Name);
154155
if (llvm::GlobalValue::isLocalLinkage(Linkage)) {
155156
// For local symbols, prepend the main file name to distinguish them.
156157
// Do not include the full path in the file name since there's no guarantee
157158
// that it will stay the same, e.g., if the files are checked out from
158159
// version control in different locations.
159160
if (FileName.empty())
160-
GlobalName += "<unknown>";
161+
NewName = NewName.insert(0, "<unknown>:");
161162
else
162-
GlobalName += FileName;
163-
164-
GlobalName += kGlobalIdentifierDelimiter;
163+
NewName = NewName.insert(0, FileName.str() + ":");
165164
}
166-
GlobalName += Name;
167-
return GlobalName;
165+
return NewName;
168166
}
169167

170168
std::string GlobalValue::getGlobalIdentifier() const {

llvm/lib/ProfileData/InstrProf.cpp

Lines changed: 9 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -246,27 +246,11 @@ std::string InstrProfError::message() const {
246246

247247
char InstrProfError::ID = 0;
248248

249-
std::string getPGOFuncName(StringRef Name, GlobalValue::LinkageTypes Linkage,
249+
std::string getPGOFuncName(StringRef RawFuncName,
250+
GlobalValue::LinkageTypes Linkage,
250251
StringRef FileName,
251252
uint64_t Version LLVM_ATTRIBUTE_UNUSED) {
252-
// Value names may be prefixed with a binary '1' to indicate
253-
// that the backend should not modify the symbols due to any platform
254-
// naming convention. Do not include that '1' in the PGO profile name.
255-
if (Name[0] == '\1')
256-
Name = Name.substr(1);
257-
258-
std::string NewName = std::string(Name);
259-
if (llvm::GlobalValue::isLocalLinkage(Linkage)) {
260-
// For local symbols, prepend the main file name to distinguish them.
261-
// Do not include the full path in the file name since there's no guarantee
262-
// that it will stay the same, e.g., if the files are checked out from
263-
// version control in different locations.
264-
if (FileName.empty())
265-
NewName = NewName.insert(0, "<unknown>:");
266-
else
267-
NewName = NewName.insert(0, FileName.str() + ":");
268-
}
269-
return NewName;
253+
return GlobalValue::getGlobalIdentifier(RawFuncName, Linkage, FileName);
270254
}
271255

272256
// Strip NumPrefix level of directory name from PathNameStr. If the number of
@@ -316,10 +300,12 @@ getIRPGONameForGlobalObject(const GlobalObject &GO,
316300
GlobalValue::LinkageTypes Linkage,
317301
StringRef FileName) {
318302
SmallString<64> Name;
319-
// FIXME: Mangler's handling is kept outside of `getGlobalIdentifier` for now.
320-
// For more details please check issue #74565.
303+
if (llvm::GlobalValue::isLocalLinkage(Linkage)) {
304+
Name.append(FileName.empty() ? "<unknown>" : FileName);
305+
Name.append(";");
306+
}
321307
Mangler().getNameWithPrefix(Name, &GO, /*CannotUsePrivateLabel=*/true);
322-
return GlobalValue::getGlobalIdentifier(Name, Linkage, FileName);
308+
return Name.str().str();
323309
}
324310

325311
static std::optional<std::string> lookupPGONameFromMetadata(MDNode *MD) {
@@ -366,9 +352,6 @@ std::string getIRPGOFuncName(const Function &F, bool InLTO) {
366352
return getIRPGOObjectName(F, InLTO, getPGOFuncNameMetadata(F));
367353
}
368354

369-
// Please use getIRPGOFuncName for LLVM IR instrumentation. This function is
370-
// for front-end (Clang, etc) instrumentation.
371-
// The implementation is kept for profile matching from older profiles.
372355
// This is similar to `getIRPGOFuncName` except that this function calls
373356
// 'getPGOFuncName' to get a name and `getIRPGOFuncName` calls
374357
// 'getIRPGONameForGlobalObject'. See the difference between two callees in the
@@ -401,8 +384,7 @@ getParsedIRPGOFuncName(StringRef IRPGOFuncName) {
401384
StringRef getFuncNameWithoutPrefix(StringRef PGOFuncName, StringRef FileName) {
402385
if (FileName.empty())
403386
return PGOFuncName;
404-
// Drop the file name including ':' or ';'. See getIRPGONameForGlobalObject as
405-
// well.
387+
// Drop the file name including ':'. See also getPGOFuncName.
406388
if (PGOFuncName.starts_with(FileName))
407389
PGOFuncName = PGOFuncName.drop_front(FileName.size() + 1);
408390
return PGOFuncName;

llvm/lib/ProfileData/InstrProfReader.cpp

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1008,13 +1008,12 @@ class llvm::InstrProfReaderItaniumRemapper
10081008

10091009
/// Extract the original function name from a PGO function name.
10101010
static StringRef extractName(StringRef Name) {
1011-
// We can have multiple pieces separated by kGlobalIdentifierDelimiter (
1012-
// semicolon now and colon in older profiles); there can be pieces both
1013-
// before and after the mangled name. Find the first part that starts with
1014-
// '_Z'; we'll assume that's the mangled name we want.
1011+
// We can have multiple :-separated pieces; there can be pieces both
1012+
// before and after the mangled name. Find the first part that starts
1013+
// with '_Z'; we'll assume that's the mangled name we want.
10151014
std::pair<StringRef, StringRef> Parts = {StringRef(), Name};
10161015
while (true) {
1017-
Parts = Parts.second.split(kGlobalIdentifierDelimiter);
1016+
Parts = Parts.second.split(':');
10181017
if (Parts.first.starts_with("_Z"))
10191018
return Parts.first;
10201019
if (Parts.second.empty())

llvm/test/Bitcode/thinlto-function-summary-originalnames.ll

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6,13 +6,13 @@
66
; COMBINED: <GLOBALVAL_SUMMARY_BLOCK
77
; COMBINED-NEXT: <VERSION
88
; COMBINED-NEXT: <FLAGS
9-
; COMBINED-NEXT: <VALUE_GUID {{.*}} op1=686735765308251824/>
10-
; COMBINED-NEXT: <VALUE_GUID {{.*}} op1=4507502870619175775/>
11-
; COMBINED-NEXT: <VALUE_GUID {{.*}} op1=-8118561185538785069/>
9+
; COMBINED-NEXT: <VALUE_GUID {{.*}} op1=4947176790635855146/>
10+
; COMBINED-NEXT: <VALUE_GUID {{.*}} op1=-6591587165810580810/>
11+
; COMBINED-NEXT: <VALUE_GUID {{.*}} op1=-4377693495213223786/>
1212
; COMBINED-DAG: <COMBINED_PROFILE{{ }}
13-
; COMBINED-DAG: <COMBINED_ORIGINAL_NAME op0=-2012135647395072713/>
14-
; COMBINED-DAG: <COMBINED_GLOBALVAR_INIT_REFS
1513
; COMBINED-DAG: <COMBINED_ORIGINAL_NAME op0=6699318081062747564/>
14+
; COMBINED-DAG: <COMBINED_GLOBALVAR_INIT_REFS
15+
; COMBINED-DAG: <COMBINED_ORIGINAL_NAME op0=-2012135647395072713/>
1616
; COMBINED-DAG: <COMBINED_ALIAS
1717
; COMBINED-DAG: <COMBINED_ORIGINAL_NAME op0=-4170563161550796836/>
1818
; COMBINED-NEXT: </GLOBALVAL_SUMMARY_BLOCK>

llvm/test/ThinLTO/X86/memprof-basic.ll

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -148,7 +148,7 @@ attributes #0 = { noinline optnone }
148148
; DUMP: Edge from Callee [[BAR]] to Caller: [[BAZ:0x[a-z0-9]+]] AllocTypes: NotColdCold ContextIds: 1 2
149149

150150
; DUMP: Node [[BAZ]]
151-
; DUMP: Callee: 11481133863268513686 (_Z3barv) Clones: 0 StackIds: 2 (clone 0)
151+
; DUMP: Callee: 9832687305761716512 (_Z3barv) Clones: 0 StackIds: 2 (clone 0)
152152
; DUMP: AllocTypes: NotColdCold
153153
; DUMP: ContextIds: 1 2
154154
; DUMP: CalleeEdges:
@@ -157,7 +157,7 @@ attributes #0 = { noinline optnone }
157157
; DUMP: Edge from Callee [[BAZ]] to Caller: [[FOO:0x[a-z0-9]+]] AllocTypes: NotColdCold ContextIds: 1 2
158158

159159
; DUMP: Node [[FOO]]
160-
; DUMP: Callee: 1807954217441101578 (_Z3bazv) Clones: 0 StackIds: 3 (clone 0)
160+
; DUMP: Callee: 5878270615442837395 (_Z3bazv) Clones: 0 StackIds: 3 (clone 0)
161161
; DUMP: AllocTypes: NotColdCold
162162
; DUMP: ContextIds: 1 2
163163
; DUMP: CalleeEdges:
@@ -167,15 +167,15 @@ attributes #0 = { noinline optnone }
167167
; DUMP: Edge from Callee [[FOO]] to Caller: [[MAIN2:0x[a-z0-9]+]] AllocTypes: Cold ContextIds: 2
168168

169169
; DUMP: Node [[MAIN1]]
170-
; DUMP: Callee: 8107868197919466657 (_Z3foov) Clones: 0 StackIds: 0 (clone 0)
170+
; DUMP: Callee: 6731117468105397038 (_Z3foov) Clones: 0 StackIds: 0 (clone 0)
171171
; DUMP: AllocTypes: NotCold
172172
; DUMP: ContextIds: 1
173173
; DUMP: CalleeEdges:
174174
; DUMP: Edge from Callee [[FOO]] to Caller: [[MAIN1]] AllocTypes: NotCold ContextIds: 1
175175
; DUMP: CallerEdges:
176176

177177
; DUMP: Node [[MAIN2]]
178-
; DUMP: Callee: 8107868197919466657 (_Z3foov) Clones: 0 StackIds: 1 (clone 0)
178+
; DUMP: Callee: 6731117468105397038 (_Z3foov) Clones: 0 StackIds: 1 (clone 0)
179179
; DUMP: AllocTypes: Cold
180180
; DUMP: ContextIds: 2
181181
; DUMP: CalleeEdges:
@@ -197,7 +197,7 @@ attributes #0 = { noinline optnone }
197197
; DUMP: Clones: [[BAR2:0x[a-z0-9]+]]
198198

199199
; DUMP: Node [[BAZ]]
200-
; DUMP: Callee: 11481133863268513686 (_Z3barv) Clones: 0 StackIds: 2 (clone 0)
200+
; DUMP: Callee: 9832687305761716512 (_Z3barv) Clones: 0 StackIds: 2 (clone 0)
201201
; DUMP: AllocTypes: NotCold
202202
; DUMP: ContextIds: 1
203203
; DUMP: CalleeEdges:
@@ -207,7 +207,7 @@ attributes #0 = { noinline optnone }
207207
; DUMP: Clones: [[BAZ2:0x[a-z0-9]+]]
208208

209209
; DUMP: Node [[FOO]]
210-
; DUMP: Callee: 1807954217441101578 (_Z3bazv) Clones: 0 StackIds: 3 (clone 0)
210+
; DUMP: Callee: 5878270615442837395 (_Z3bazv) Clones: 0 StackIds: 3 (clone 0)
211211
; DUMP: AllocTypes: NotCold
212212
; DUMP: ContextIds: 1
213213
; DUMP: CalleeEdges:
@@ -217,23 +217,23 @@ attributes #0 = { noinline optnone }
217217
; DUMP: Clones: [[FOO2:0x[a-z0-9]+]]
218218

219219
; DUMP: Node [[MAIN1]]
220-
; DUMP: Callee: 8107868197919466657 (_Z3foov) Clones: 0 StackIds: 0 (clone 0)
220+
; DUMP: Callee: 6731117468105397038 (_Z3foov) Clones: 0 StackIds: 0 (clone 0)
221221
; DUMP: AllocTypes: NotCold
222222
; DUMP: ContextIds: 1
223223
; DUMP: CalleeEdges:
224224
; DUMP: Edge from Callee [[FOO]] to Caller: [[MAIN1]] AllocTypes: NotCold ContextIds: 1
225225
; DUMP: CallerEdges:
226226

227227
; DUMP: Node [[MAIN2]]
228-
; DUMP: Callee: 8107868197919466657 (_Z3foov) Clones: 0 StackIds: 1 (clone 0)
228+
; DUMP: Callee: 6731117468105397038 (_Z3foov) Clones: 0 StackIds: 1 (clone 0)
229229
; DUMP: AllocTypes: Cold
230230
; DUMP: ContextIds: 2
231231
; DUMP: CalleeEdges:
232232
; DUMP: Edge from Callee [[FOO2]] to Caller: [[MAIN2]] AllocTypes: Cold ContextIds: 2
233233
; DUMP: CallerEdges:
234234

235235
; DUMP: Node [[FOO2]]
236-
; DUMP: Callee: 1807954217441101578 (_Z3bazv) Clones: 0 StackIds: 3 (clone 0)
236+
; DUMP: Callee: 5878270615442837395 (_Z3bazv) Clones: 0 StackIds: 3 (clone 0)
237237
; DUMP: AllocTypes: Cold
238238
; DUMP: ContextIds: 2
239239
; DUMP: CalleeEdges:
@@ -243,7 +243,7 @@ attributes #0 = { noinline optnone }
243243
; DUMP: Clone of [[FOO]]
244244

245245
; DUMP: Node [[BAZ2]]
246-
; DUMP: Callee: 11481133863268513686 (_Z3barv) Clones: 0 StackIds: 2 (clone 0)
246+
; DUMP: Callee: 9832687305761716512 (_Z3barv) Clones: 0 StackIds: 2 (clone 0)
247247
; DUMP: AllocTypes: Cold
248248
; DUMP: ContextIds: 2
249249
; DUMP: CalleeEdges:
@@ -344,7 +344,7 @@ attributes #0 = { noinline optnone }
344344
; DOTCLONED: }
345345

346346

347-
; DISTRIB: ^[[BAZ:[0-9]+]] = gv: (guid: 1807954217441101578, {{.*}} callsites: ((callee: ^[[BAR:[0-9]+]], clones: (0, 1)
348-
; DISTRIB: ^[[FOO:[0-9]+]] = gv: (guid: 8107868197919466657, {{.*}} callsites: ((callee: ^[[BAZ]], clones: (0, 1)
349-
; DISTRIB: ^[[BAR]] = gv: (guid: 11481133863268513686, {{.*}} allocs: ((versions: (notcold, cold)
347+
; DISTRIB: ^[[BAZ:[0-9]+]] = gv: (guid: 5878270615442837395, {{.*}} callsites: ((callee: ^[[BAR:[0-9]+]], clones: (0, 1)
348+
; DISTRIB: ^[[FOO:[0-9]+]] = gv: (guid: 6731117468105397038, {{.*}} callsites: ((callee: ^[[BAZ]], clones: (0, 1)
349+
; DISTRIB: ^[[BAR]] = gv: (guid: 9832687305761716512, {{.*}} allocs: ((versions: (notcold, cold)
350350
; DISTRIB: ^[[MAIN:[0-9]+]] = gv: (guid: 15822663052811949562, {{.*}} callsites: ((callee: ^[[FOO]], clones: (0), {{.*}} (callee: ^[[FOO]], clones: (1)

llvm/test/ThinLTO/X86/memprof-duplicate-context-ids.ll

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -260,8 +260,8 @@ attributes #0 = { noinline optnone}
260260
; STATS-BE: 1 memprof-context-disambiguation - Number of original (not cloned) allocations with memprof profiles during ThinLTO backend
261261

262262

263-
; DISTRIB: ^[[E:[0-9]+]] = gv: (guid: 331966645857188136, {{.*}} callsites: ((callee: ^[[D:[0-9]+]], clones: (1)
264-
; DISTRIB: ^[[D]] = gv: (guid: 11079124245221721799, {{.*}} allocs: ((versions: (notcold, cold)
265-
; DISTRIB: ^[[F:[0-9]+]] = gv: (guid: 11254287701717398916, {{.*}} callsites: ((callee: ^[[D]], clones: (0)
266-
; DISTRIB: ^[[B:[0-9]+]] = gv: (guid: 13579056193435805313, {{.*}} callsites: ((callee: ^[[D]], clones: (1)
267-
; DISTRIB: ^[[C:[0-9]+]] = gv: (guid: 15101436305866936160, {{.*}} callsites: ((callee: ^[[D:[0-9]+]], clones: (1)
263+
; DISTRIB: ^[[C:[0-9]+]] = gv: (guid: 1643923691937891493, {{.*}} callsites: ((callee: ^[[D:[0-9]+]], clones: (1)
264+
; DISTRIB: ^[[D]] = gv: (guid: 4881081444663423788, {{.*}} allocs: ((versions: (notcold, cold)
265+
; DISTRIB: ^[[B:[0-9]+]] = gv: (guid: 14590037969532473829, {{.*}} callsites: ((callee: ^[[D]], clones: (1)
266+
; DISTRIB: ^[[F:[0-9]+]] = gv: (guid: 17035303613541779335, {{.*}} callsites: ((callee: ^[[D]], clones: (0)
267+
; DISTRIB: ^[[E:[0-9]+]] = gv: (guid: 17820708772846654376, {{.*}} callsites: ((callee: ^[[D]], clones: (1)

llvm/test/ThinLTO/X86/memprof-funcassigncloning.ll

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -176,7 +176,7 @@ attributes #0 = { noinline optnone }
176176
; DUMP: Clones: [[ENEW1CLONE:0x[a-z0-9]+]]
177177

178178
; DUMP: Node [[D:0x[a-z0-9]+]]
179-
; DUMP: Callee: 16147627620923572899 (_Z1EPPcS0_) Clones: 0 StackIds: 0 (clone 0)
179+
; DUMP: Callee: 10758063066234039248 (_Z1EPPcS0_) Clones: 0 StackIds: 0 (clone 0)
180180
; DUMP: AllocTypes: NotColdCold
181181
; DUMP: ContextIds: 1 6
182182
; DUMP: CalleeEdges:
@@ -185,7 +185,7 @@ attributes #0 = { noinline optnone }
185185
; DUMP: CallerEdges:
186186

187187
; DUMP: Node [[C]]
188-
; DUMP: Callee: 16147627620923572899 (_Z1EPPcS0_) Clones: 0 StackIds: 1 (clone 0)
188+
; DUMP: Callee: 10758063066234039248 (_Z1EPPcS0_) Clones: 0 StackIds: 1 (clone 0)
189189
; DUMP: AllocTypes: NotColdCold
190190
; DUMP: ContextIds: 2 5
191191
; DUMP: CalleeEdges:
@@ -194,7 +194,7 @@ attributes #0 = { noinline optnone }
194194
; DUMP: CallerEdges:
195195

196196
; DUMP: Node [[B]]
197-
; DUMP: Callee: 16147627620923572899 (_Z1EPPcS0_) Clones: 0 StackIds: 2 (clone 0)
197+
; DUMP: Callee: 10758063066234039248 (_Z1EPPcS0_) Clones: 0 StackIds: 2 (clone 0)
198198
; DUMP: AllocTypes: NotCold
199199
; DUMP: ContextIds: 3 4
200200
; DUMP: CalleeEdges:

0 commit comments

Comments
 (0)