@@ -160,7 +160,7 @@ struct LifetimeCheckPass : public LifetimeCheckBase<LifetimeCheckPass> {
160
160
return val.getPointer ();
161
161
}
162
162
163
- void dump (llvm::raw_ostream &OS = llvm::errs());
163
+ void dump (llvm::raw_ostream &OS = llvm::errs(), int ownedGen = 0 );
164
164
165
165
static State getInvalid () { return {Invalid}; }
166
166
static State getNullPtr () { return {NullPtr}; }
@@ -1119,8 +1119,6 @@ void LifetimeCheckPass::checkCall(CallOp callOp) {
1119
1119
// o’s first non-const use pset(o) becomes {o__2'}, on o’s second non-const
1120
1120
// use pset(o) becomes {o__3'}, and so on.
1121
1121
incOwner (ownerAddr);
1122
- // markPsetInvalid(addr, InvalidStyle::NonConstUseOfOwner,
1123
- // callOp.getLoc());
1124
1122
return ;
1125
1123
}
1126
1124
@@ -1207,7 +1205,7 @@ void LifetimeCheckPass::LexicalScopeContext::dumpLocalValues() {
1207
1205
llvm::errs () << " }\n " ;
1208
1206
}
1209
1207
1210
- void LifetimeCheckPass::State::dump (llvm::raw_ostream &OS) {
1208
+ void LifetimeCheckPass::State::dump (llvm::raw_ostream &OS, int ownedGen ) {
1211
1209
switch (val.getInt ()) {
1212
1210
case Invalid:
1213
1211
OS << " invalid" ;
@@ -1222,7 +1220,8 @@ void LifetimeCheckPass::State::dump(llvm::raw_ostream &OS) {
1222
1220
OS << getVarNameFromValue (val.getPointer ());
1223
1221
break ;
1224
1222
case OwnedBy:
1225
- OS << getVarNameFromValue (val.getPointer ()) << " '" ;
1223
+ ownedGen++; // Start from 1.
1224
+ OS << getVarNameFromValue (val.getPointer ()) << " __" << ownedGen << " '" ;
1226
1225
break ;
1227
1226
default :
1228
1227
llvm_unreachable (" Not handled" );
@@ -1233,7 +1232,10 @@ void LifetimeCheckPass::printPset(PSetType &pset, llvm::raw_ostream &OS) {
1233
1232
OS << " { " ;
1234
1233
auto size = pset.size ();
1235
1234
for (auto s : pset) {
1236
- s.dump (OS);
1235
+ int ownerGen = 0 ;
1236
+ if (s.isOwnedBy ())
1237
+ ownerGen = owners[s.getData ()];
1238
+ s.dump (OS, ownerGen);
1237
1239
size--;
1238
1240
if (size > 0 )
1239
1241
OS << " , " ;
0 commit comments