| Index: src/IceTargetLowering.cpp
|
| diff --git a/src/IceTargetLowering.cpp b/src/IceTargetLowering.cpp
|
| index 93b48844f41f828673964af1e2164a8fd21a30f4..22f698acd6d8d0874c42241c415a9fad64b5a2d2 100644
|
| --- a/src/IceTargetLowering.cpp
|
| +++ b/src/IceTargetLowering.cpp
|
| @@ -80,15 +80,10 @@ TargetLowering::TargetLowering(Cfg *Func)
|
|
|
| std::unique_ptr<Assembler> TargetLowering::createAssembler(TargetArch Target,
|
| Cfg *Func) {
|
| - // These statements can be #ifdef'd to specialize the assembler
|
| - // to a subset of the available targets. TODO: use CRTP.
|
| - // TODO(jvoung): use SZTargets.def (rename AssemblerX86 -> AssemblerX8632),
|
| - // and make the namespaces consistent.
|
| - if (Target == Target_X8632)
|
| - return std::unique_ptr<Assembler>(new x86::AssemblerX86());
|
| -
|
| - if (Target == Target_ARM32)
|
| - return std::unique_ptr<Assembler>(new AssemblerARM32());
|
| +#define SUBZERO_TARGET(X) \
|
| + if (Target == Target_##X) \
|
| + return std::unique_ptr<Assembler>(new X::Assembler##X());
|
| +#include "llvm/Config/SZTargets.def"
|
|
|
| Func->setError("Unsupported target assembler");
|
| return nullptr;
|
|
|