diff options
author | Diana Picus <diana.picus@linaro.org> | 2017-05-02 09:40:49 +0000 |
---|---|---|
committer | Diana Picus <diana.picus@linaro.org> | 2017-05-02 09:40:49 +0000 |
commit | 8abcbbb24bd3dabfce0c7476882cbddcee39c2e9 (patch) | |
tree | 1cd33e44fef0d165050c695598a20288c4842f45 /llvm/utils | |
parent | b7101479a899f7b1da92b1c1e956394e43789c0a (diff) | |
download | bcm5719-llvm-8abcbbb24bd3dabfce0c7476882cbddcee39c2e9.tar.gz bcm5719-llvm-8abcbbb24bd3dabfce0c7476882cbddcee39c2e9.zip |
[ARM] GlobalISel: Use TableGen instruction selector
Emit and use the TableGen instruction selector for ARM. At the moment,
this allows us to remove the hand-written code for selecting G_SDIV and
G_UDIV.
Future commits will focus on increasing the code coverage for it and
removing more dead code from the current instruction selector.
llvm-svn: 301905
Diffstat (limited to 'llvm/utils')
-rw-r--r-- | llvm/utils/TableGen/GlobalISelEmitter.cpp | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/llvm/utils/TableGen/GlobalISelEmitter.cpp b/llvm/utils/TableGen/GlobalISelEmitter.cpp index a25429ba460..65a1ea2f0f2 100644 --- a/llvm/utils/TableGen/GlobalISelEmitter.cpp +++ b/llvm/utils/TableGen/GlobalISelEmitter.cpp @@ -854,7 +854,9 @@ public: } void emitCxxRenderStmts(raw_ostream &OS, RuleMatcher &Rule) const override { - OS << " MIB.addReg(" << RegisterDef->getValueAsString("Namespace") + OS << " MIB.addReg(" << (RegisterDef->getValue("Namespace") + ? RegisterDef->getValueAsString("Namespace") + : "") << "::" << RegisterDef->getName() << ");\n"; } }; @@ -987,12 +989,16 @@ public: << ");\n"; for (auto Def : I->ImplicitDefs) { - auto Namespace = Def->getValueAsString("Namespace"); + auto Namespace = Def->getValue("Namespace") + ? Def->getValueAsString("Namespace") + : ""; OS << " MIB.addDef(" << Namespace << "::" << Def->getName() << ", RegState::Implicit);\n"; } for (auto Use : I->ImplicitUses) { - auto Namespace = Use->getValueAsString("Namespace"); + auto Namespace = Use->getValue("Namespace") + ? Use->getValueAsString("Namespace") + : ""; OS << " MIB.addUse(" << Namespace << "::" << Use->getName() << ", RegState::Implicit);\n"; } |