diff options
author | Nate Begeman <natebegeman@mac.com> | 2009-02-04 19:47:21 +0000 |
---|---|---|
committer | Nate Begeman <natebegeman@mac.com> | 2009-02-04 19:47:21 +0000 |
commit | 6ae3aa83d0383dd86f5e54db3d4930a4e6fe0712 (patch) | |
tree | a230ae492d7e6949201c1d2ad0b901da5a0cad4c /llvm/utils/TableGen/CodeGenTarget.cpp | |
parent | 022923a22a616a97685af71862a7a9833af23b65 (diff) | |
download | bcm5719-llvm-6ae3aa83d0383dd86f5e54db3d4930a4e6fe0712.tar.gz bcm5719-llvm-6ae3aa83d0383dd86f5e54db3d4930a4e6fe0712.zip |
New feature: add support for target intrinsics being defined in the
target directories themselves. This also means that VMCore no longer
needs to know about every target's list of intrinsics. Future work
will include converting the PowerPC target to this interface as an
example implementation.
llvm-svn: 63765
Diffstat (limited to 'llvm/utils/TableGen/CodeGenTarget.cpp')
-rw-r--r-- | llvm/utils/TableGen/CodeGenTarget.cpp | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/llvm/utils/TableGen/CodeGenTarget.cpp b/llvm/utils/TableGen/CodeGenTarget.cpp index 274cc78c35b..9ef64d66b5c 100644 --- a/llvm/utils/TableGen/CodeGenTarget.cpp +++ b/llvm/utils/TableGen/CodeGenTarget.cpp @@ -426,13 +426,17 @@ ComplexPattern::ComplexPattern(Record *R) { // CodeGenIntrinsic Implementation //===----------------------------------------------------------------------===// -std::vector<CodeGenIntrinsic> llvm::LoadIntrinsics(const RecordKeeper &RC) { +std::vector<CodeGenIntrinsic> llvm::LoadIntrinsics(const RecordKeeper &RC, + bool TargetOnly) { std::vector<Record*> I = RC.getAllDerivedDefinitions("Intrinsic"); std::vector<CodeGenIntrinsic> Result; - for (unsigned i = 0, e = I.size(); i != e; ++i) - Result.push_back(CodeGenIntrinsic(I[i])); + for (unsigned i = 0, e = I.size(); i != e; ++i) { + bool isTarget = I[i]->getValueAsBit("isTarget"); + if (isTarget == TargetOnly) + Result.push_back(CodeGenIntrinsic(I[i])); + } return Result; } |