summaryrefslogtreecommitdiffstats
path: root/llvm/utils/TableGen/CodeGenTarget.cpp
diff options
context:
space:
mode:
authorEvan Cheng <evan.cheng@apple.com>2008-06-16 20:29:38 +0000
committerEvan Cheng <evan.cheng@apple.com>2008-06-16 20:29:38 +0000
commit49bad4c9e1a5d09a374febfc042c9e4b8e07bf66 (patch)
tree3af35f7d1a7ca9779a1c80c4764930770c46162b /llvm/utils/TableGen/CodeGenTarget.cpp
parentb90be27f8cae17d5da15095c1eae7f6a68dc107e (diff)
downloadbcm5719-llvm-49bad4c9e1a5d09a374febfc042c9e4b8e07bf66.tar.gz
bcm5719-llvm-49bad4c9e1a5d09a374febfc042c9e4b8e07bf66.zip
- Add "Commutative" property to intrinsics. This allows tblgen to generate the commuted variants for dagisel matching code.
- Mark lots of X86 intrinsics as "Commutative" to allow load folding. llvm-svn: 52353
Diffstat (limited to 'llvm/utils/TableGen/CodeGenTarget.cpp')
-rw-r--r--llvm/utils/TableGen/CodeGenTarget.cpp3
1 files changed, 3 insertions, 0 deletions
diff --git a/llvm/utils/TableGen/CodeGenTarget.cpp b/llvm/utils/TableGen/CodeGenTarget.cpp
index a76f5cd55f8..9b3864780da 100644
--- a/llvm/utils/TableGen/CodeGenTarget.cpp
+++ b/llvm/utils/TableGen/CodeGenTarget.cpp
@@ -404,6 +404,7 @@ CodeGenIntrinsic::CodeGenIntrinsic(Record *R) {
std::string DefName = R->getName();
ModRef = WriteMem;
isOverloaded = false;
+ isCommutative = false;
if (DefName.size() <= 4 ||
std::string(DefName.begin(), DefName.begin()+4) != "int_")
@@ -469,6 +470,8 @@ CodeGenIntrinsic::CodeGenIntrinsic(Record *R) {
ModRef = WriteArgMem;
else if (Property->getName() == "IntrWriteMem")
ModRef = WriteMem;
+ else if (Property->getName() == "Commutative")
+ isCommutative = true;
else
assert(0 && "Unknown property!");
}
OpenPOWER on IntegriCloud