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:
parent
ffac146078
commit
6a3db617a1
@ -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;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user