Enables llvm dyn_cast for Assemblers.
IceCfg::getAssembler() is a template that simply static_casts the CFG's assembler. This could potentially be problematic in the future, so we enabled the (relatively) cheap llvm dyn_cast operator for Assemblers.
This CL also renames assembler_mips32.h to IceAssemblerMIPS32.h.
BUG=
R=stichnot@chromium.org
Review URL: https://codereview.chromium.org/1211863004.
diff --git a/src/IceCfg.h b/src/IceCfg.h
index 83c4ddd..800bf40 100644
--- a/src/IceCfg.h
+++ b/src/IceCfg.h
@@ -127,7 +127,7 @@
VariablesMetadata *getVMetadata() const { return VMetadata.get(); }
Liveness *getLiveness() const { return Live.get(); }
template <typename T = Assembler> T *getAssembler() const {
- return static_cast<T *>(TargetAssembler.get());
+ return llvm::dyn_cast<T>(TargetAssembler.get());
}
Assembler *releaseAssembler() { return TargetAssembler.release(); }
std::unique_ptr<VariableDeclarationList> getGlobalInits() {