diff options
author | Evan Cheng <evan.cheng@apple.com> | 2007-07-05 07:19:29 +0000 |
---|---|---|
committer | Evan Cheng <evan.cheng@apple.com> | 2007-07-05 07:19:29 +0000 |
commit | e32e7fb40d1145406e58d75e9143fa434d0c1377 (patch) | |
tree | e57b90d6ec31eb4632581eddc10b4343e6f98131 /llvm/utils/TableGen/CodeGenTarget.cpp | |
parent | 94f04c6fc9e9adf9db62f729526c244ea455fc81 (diff) | |
download | bcm5719-llvm-e32e7fb40d1145406e58d75e9143fa434d0c1377.tar.gz bcm5719-llvm-e32e7fb40d1145406e58d75e9143fa434d0c1377.zip |
Instructions with ImmutablePredicateOperand aren't really predicable since their predicates are fixed at isel time.
llvm-svn: 37899
Diffstat (limited to 'llvm/utils/TableGen/CodeGenTarget.cpp')
-rw-r--r-- | llvm/utils/TableGen/CodeGenTarget.cpp | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/llvm/utils/TableGen/CodeGenTarget.cpp b/llvm/utils/TableGen/CodeGenTarget.cpp index c54ecd02e48..e4d80ee6698 100644 --- a/llvm/utils/TableGen/CodeGenTarget.cpp +++ b/llvm/utils/TableGen/CodeGenTarget.cpp @@ -411,7 +411,10 @@ CodeGenInstruction::CodeGenInstruction(Record *R, const std::string &AsmStr) if (unsigned NumArgs = MIOpInfo->getNumArgs()) NumOps = NumArgs; - isPredicable |= Rec->isSubClassOf("PredicateOperand"); + if (Rec->isSubClassOf("PredicateOperand")) { + if (!Rec->getValueAsBit("isImmutable")) + isPredicable = true; + } } else if (Rec->getName() == "variable_ops") { hasVariableNumberOfOperands = true; continue; |