projects
/
oota-llvm.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Rename LegalizeDAGTypes.cpp -> LegalizeTypes.cpp
[oota-llvm.git]
/
lib
/
CodeGen
/
IfConversion.cpp
diff --git
a/lib/CodeGen/IfConversion.cpp
b/lib/CodeGen/IfConversion.cpp
index b05f6630ea75a51219fc1c604a02312e811ac5c6..3bddc771ab1daa4ee2c80bd55bf58e1dd1fc0f22 100644
(file)
--- a/
lib/CodeGen/IfConversion.cpp
+++ b/
lib/CodeGen/IfConversion.cpp
@@
-84,7
+84,7
@@
namespace {
/// IsBrAnalyzable - True if AnalyzeBranch() returns false.
/// HasFallThrough - True if BB may fallthrough to the following BB.
/// IsUnpredicable - True if BB is known to be unpredicable.
/// IsBrAnalyzable - True if AnalyzeBranch() returns false.
/// HasFallThrough - True if BB may fallthrough to the following BB.
/// IsUnpredicable - True if BB is known to be unpredicable.
- /// ClobbersPred
icate- True if BB would modify the predicate
(e.g. has
+ /// ClobbersPred
- True if BB could modify predicates
(e.g. has
/// cmp, call, etc.)
/// NonPredSize - Number of non-predicated instructions.
/// BB - Corresponding MachineBasicBlock.
/// cmp, call, etc.)
/// NonPredSize - Number of non-predicated instructions.
/// BB - Corresponding MachineBasicBlock.
@@
-588,7
+588,10
@@
void IfConverter::ScanInstructions(BBInfo &BBI) {
return;
}
return;
}
- if (TID->Flags & M_CLOBBERS_PRED)
+ // FIXME: Make use of PredDefs? e.g. ADDC, SUBC sets predicates but are
+ // still potentially predicable.
+ std::vector<MachineOperand> PredDefs;
+ if (TII->DefinesPredicate(I, PredDefs))
BBI.ClobbersPred = true;
if ((TID->Flags & M_PREDICABLE) == 0) {
BBI.ClobbersPred = true;
if ((TID->Flags & M_PREDICABLE) == 0) {