[RewriteStatepointsForGC] Reduce indentation via early continue [NFC]

llvm-svn: 230829
This commit is contained in:
Philip Reames 2015-02-28 00:54:41 +00:00
parent 7863d7634e
commit f986d68b36
1 changed files with 36 additions and 35 deletions

View File

@ -782,41 +782,42 @@ static Value *findBasePointer(Value *I, DefiningValueMapTy &cache,
PhiState state = Pair.second; PhiState state = Pair.second;
assert(!isKnownBaseResult(v) && "why did it get added?"); assert(!isKnownBaseResult(v) && "why did it get added?");
assert(!state.isUnknown() && "Optimistic algorithm didn't complete!"); assert(!state.isUnknown() && "Optimistic algorithm didn't complete!");
if (state.isConflict()) { if (!state.isConflict())
if (isa<PHINode>(v)) { continue;
int num_preds =
std::distance(pred_begin(v->getParent()), pred_end(v->getParent())); if (isa<PHINode>(v)) {
assert(num_preds > 0 && "how did we reach here"); int num_preds =
PHINode *phi = PHINode::Create(v->getType(), num_preds, "base_phi", v); std::distance(pred_begin(v->getParent()), pred_end(v->getParent()));
NewInsertedDefs.insert(phi); assert(num_preds > 0 && "how did we reach here");
// Add metadata marking this as a base value PHINode *phi = PHINode::Create(v->getType(), num_preds, "base_phi", v);
auto *const_1 = ConstantInt::get( NewInsertedDefs.insert(phi);
Type::getInt32Ty( // Add metadata marking this as a base value
v->getParent()->getParent()->getParent()->getContext()), auto *const_1 = ConstantInt::get(
1); Type::getInt32Ty(
auto MDConst = ConstantAsMetadata::get(const_1); v->getParent()->getParent()->getParent()->getContext()),
MDNode *md = MDNode::get( 1);
v->getParent()->getParent()->getParent()->getContext(), MDConst); auto MDConst = ConstantAsMetadata::get(const_1);
phi->setMetadata("is_base_value", md); MDNode *md = MDNode::get(
states[v] = PhiState(PhiState::Conflict, phi); v->getParent()->getParent()->getParent()->getContext(), MDConst);
} else if (SelectInst *sel = dyn_cast<SelectInst>(v)) { phi->setMetadata("is_base_value", md);
// The undef will be replaced later states[v] = PhiState(PhiState::Conflict, phi);
UndefValue *undef = UndefValue::get(sel->getType()); } else {
SelectInst *basesel = SelectInst::Create(sel->getCondition(), undef, SelectInst *sel = cast<SelectInst>(v);
undef, "base_select", sel); // The undef will be replaced later
NewInsertedDefs.insert(basesel); UndefValue *undef = UndefValue::get(sel->getType());
// Add metadata marking this as a base value SelectInst *basesel = SelectInst::Create(sel->getCondition(), undef,
auto *const_1 = ConstantInt::get( undef, "base_select", sel);
Type::getInt32Ty( NewInsertedDefs.insert(basesel);
v->getParent()->getParent()->getParent()->getContext()), // Add metadata marking this as a base value
1); auto *const_1 = ConstantInt::get(
auto MDConst = ConstantAsMetadata::get(const_1); Type::getInt32Ty(
MDNode *md = MDNode::get( v->getParent()->getParent()->getParent()->getContext()),
v->getParent()->getParent()->getParent()->getContext(), MDConst); 1);
basesel->setMetadata("is_base_value", md); auto MDConst = ConstantAsMetadata::get(const_1);
states[v] = PhiState(PhiState::Conflict, basesel); MDNode *md = MDNode::get(
} else v->getParent()->getParent()->getParent()->getContext(), MDConst);
llvm_unreachable("unknown conflict type"); basesel->setMetadata("is_base_value", md);
states[v] = PhiState(PhiState::Conflict, basesel);
} }
} }