1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-24 11:42:57 +01:00

[TableGen] Remove an unnecessary outer 'if' around 3 separate inner ifs. No functional change intended.

The outer if had 3 separate conditions ORed together and then the inner ifs detected which of the three conditions it was by using only a portion of the specific condition. Just put the whole condition in each inner if and remove the outer if.

llvm-svn: 237343
This commit is contained in:
Craig Topper 2015-05-14 05:54:02 +00:00
parent ffac146078
commit 6a3db617a1

View File

@ -1096,35 +1096,31 @@ Init *TernOpInit::Fold(Record *CurRec, MultiClass *CurMultiClass) const {
VarInit *RHSv = dyn_cast<VarInit>(RHS);
StringInit *RHSs = dyn_cast<StringInit>(RHS);
if ((LHSd && MHSd && RHSd) ||
(LHSv && MHSv && RHSv) ||
(LHSs && MHSs && RHSs)) {
if (RHSd) {
Record *Val = RHSd->getDef();
if (LHSd->getAsString() == RHSd->getAsString())
Val = MHSd->getDef();
return DefInit::get(Val);
}
if (RHSv) {
std::string Val = RHSv->getName();
if (LHSv->getAsString() == RHSv->getAsString())
Val = MHSv->getName();
return VarInit::get(Val, getType());
}
if (RHSs) {
std::string Val = RHSs->getValue();
if (LHSd && MHSd && RHSd) {
Record *Val = RHSd->getDef();
if (LHSd->getAsString() == RHSd->getAsString())
Val = MHSd->getDef();
return DefInit::get(Val);
}
if (LHSv && MHSv && RHSv) {
std::string Val = RHSv->getName();
if (LHSv->getAsString() == RHSv->getAsString())
Val = MHSv->getName();
return VarInit::get(Val, getType());
}
if (LHSs && MHSs && RHSs) {
std::string Val = RHSs->getValue();
std::string::size_type found;
std::string::size_type idx = 0;
do {
found = Val.find(LHSs->getValue(), idx);
if (found != std::string::npos)
Val.replace(found, LHSs->getValue().size(), MHSs->getValue());
idx = found + MHSs->getValue().size();
} while (found != std::string::npos);
std::string::size_type found;
std::string::size_type idx = 0;
do {
found = Val.find(LHSs->getValue(), idx);
if (found != std::string::npos)
Val.replace(found, LHSs->getValue().size(), MHSs->getValue());
idx = found + MHSs->getValue().size();
} while (found != std::string::npos);
return StringInit::get(Val);
}
return StringInit::get(Val);
}
break;
}