diff options
| author | Amir Ayupov <aaupov@fb.com> | 2024-05-22 11:59:37 +0800 |
|---|---|---|
| committer | Wang Pengcheng <wangpengcheng.pp@bytedance.com> | 2024-05-22 11:59:37 +0800 |
| commit | 66c619ac3ec6f644d051914fe402c84177ab9437 (patch) | |
| tree | 9140fdac11dbe445151c892dc2c450bfcd6c7c86 /llvm/utils/TableGen/Common/CodeGenDAGPatterns.cpp | |
| parent | 591803e81f7ad7cd07ca129187504a867927a374 (diff) | |
| parent | 97025bd9d5b32f984f07d6ae20a3ce6ddb3fbe2a (diff) | |
[𝘀𝗽𝗿] changes introduced through rebaseusers/wangpc-pp/spr/main.aarch64-remove-usage-of-postrascheduler
Created using spr 1.3.6-beta.1
[skip ci]
Diffstat (limited to 'llvm/utils/TableGen/Common/CodeGenDAGPatterns.cpp')
| -rw-r--r-- | llvm/utils/TableGen/Common/CodeGenDAGPatterns.cpp | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/llvm/utils/TableGen/Common/CodeGenDAGPatterns.cpp b/llvm/utils/TableGen/Common/CodeGenDAGPatterns.cpp index 88d353e89a46..709aa00ae8b3 100644 --- a/llvm/utils/TableGen/Common/CodeGenDAGPatterns.cpp +++ b/llvm/utils/TableGen/Common/CodeGenDAGPatterns.cpp @@ -903,7 +903,7 @@ TreePredicateFn::TreePredicateFn(TreePattern *N) : PatFragRec(N) { } bool TreePredicateFn::hasPredCode() const { - return isLoad() || isStore() || isAtomic() || hasNoUse() || + return isLoad() || isStore() || isAtomic() || hasNoUse() || hasOneUse() || !PatFragRec->getRecord()->getValueAsString("PredicateCode").empty(); } @@ -1140,6 +1140,8 @@ std::string TreePredicateFn::getPredCode() const { if (hasNoUse()) Code += "if (!SDValue(N, 0).use_empty()) return false;\n"; + if (hasOneUse()) + Code += "if (!SDValue(N, 0).hasOneUse()) return false;\n"; std::string PredicateCode = std::string(PatFragRec->getRecord()->getValueAsString("PredicateCode")); @@ -1187,6 +1189,9 @@ bool TreePredicateFn::usesOperands() const { bool TreePredicateFn::hasNoUse() const { return isPredefinedPredicateEqualTo("HasNoUse", true); } +bool TreePredicateFn::hasOneUse() const { + return isPredefinedPredicateEqualTo("HasOneUse", true); +} bool TreePredicateFn::isLoad() const { return isPredefinedPredicateEqualTo("IsLoad", true); } |
