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