diff options
author | Daniel Sanders <daniel_l_sanders@apple.com> | 2017-10-15 19:01:32 +0000 |
---|---|---|
committer | Daniel Sanders <daniel_l_sanders@apple.com> | 2017-10-15 19:01:32 +0000 |
commit | adbf58dc0b3cc85f02c379ee372c9fc06517e227 (patch) | |
tree | 0a9347b18269102aa01cc5c3f6e1d6258c4a2ee6 /llvm/utils/TableGen/CodeGenDAGPatterns.cpp | |
parent | 6d989436d063502266f8bc27007e6bb294ef4ec7 (diff) | |
download | bcm5719-llvm-adbf58dc0b3cc85f02c379ee372c9fc06517e227.tar.gz bcm5719-llvm-adbf58dc0b3cc85f02c379ee372c9fc06517e227.zip |
[tablegen] Use hasPredCode()/hasImmCode() instead of getPredCode().empty()/getImmCode().empty(). NFC
These are cheaper ways of testing for the presence of code than generating the C++ code and testing it's empty.
llvm-svn: 315872
Diffstat (limited to 'llvm/utils/TableGen/CodeGenDAGPatterns.cpp')
-rw-r--r-- | llvm/utils/TableGen/CodeGenDAGPatterns.cpp | 18 |
1 files changed, 14 insertions, 4 deletions
diff --git a/llvm/utils/TableGen/CodeGenDAGPatterns.cpp b/llvm/utils/TableGen/CodeGenDAGPatterns.cpp index f6ef35a68c6..f6be8da02c3 100644 --- a/llvm/utils/TableGen/CodeGenDAGPatterns.cpp +++ b/llvm/utils/TableGen/CodeGenDAGPatterns.cpp @@ -807,8 +807,14 @@ TypeSetByHwMode TypeInfer::getLegalTypes() { /// TreePredicateFn constructor. Here 'N' is a subclass of PatFrag. TreePredicateFn::TreePredicateFn(TreePattern *N) : PatFragRec(N) { - assert((getPredCode().empty() || getImmCode().empty()) && - ".td file corrupt: can't have a node predicate *and* an imm predicate"); + assert( + (!hasPredCode() || !hasImmCode()) && + ".td file corrupt: can't have a node predicate *and* an imm predicate"); +} + +bool TreePredicateFn::hasPredCode() const { + return isLoad() || isStore() || + !PatFragRec->getRecord()->getValueAsString("PredicateCode").empty(); } std::string TreePredicateFn::getPredCode() const { @@ -933,6 +939,10 @@ std::string TreePredicateFn::getPredCode() const { return Code; } +bool TreePredicateFn::hasImmCode() const { + return !PatFragRec->getRecord()->getValueAsString("ImmediateCode").empty(); +} + std::string TreePredicateFn::getImmCode() const { return PatFragRec->getRecord()->getValueAsString("ImmediateCode"); } @@ -1015,7 +1025,7 @@ StringRef TreePredicateFn::getImmTypeIdentifier() const { /// isAlwaysTrue - Return true if this is a noop predicate. bool TreePredicateFn::isAlwaysTrue() const { - return getPredCode().empty() && getImmCode().empty(); + return !hasPredCode() && !hasImmCode(); } /// Return the name to use in the generated code to reference this, this is @@ -1085,7 +1095,7 @@ std::string TreePredicateFn::getCodeToRunOnSDNode() const { } // Handle arbitrary node predicates. - assert(!getPredCode().empty() && "Don't have any predicate code!"); + assert(hasPredCode() && "Don't have any predicate code!"); StringRef ClassName; if (PatFragRec->getOnlyTree()->isLeaf()) ClassName = "SDNode"; |