diff options
author | Evan Cheng <evan.cheng@apple.com> | 2008-06-16 20:29:38 +0000 |
---|---|---|
committer | Evan Cheng <evan.cheng@apple.com> | 2008-06-16 20:29:38 +0000 |
commit | 49bad4c9e1a5d09a374febfc042c9e4b8e07bf66 (patch) | |
tree | 3af35f7d1a7ca9779a1c80c4764930770c46162b /llvm/utils/TableGen/CodeGenTarget.cpp | |
parent | b90be27f8cae17d5da15095c1eae7f6a68dc107e (diff) | |
download | bcm5719-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.cpp | 3 |
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!"); } |