Give the MCStreamer class hierarchy LLVM RTTI facilities for use with
authorChandler Carruth <chandlerc@gmail.com>
Thu, 31 Jan 2013 23:29:57 +0000 (23:29 +0000)
committerChandler Carruth <chandlerc@gmail.com>
Thu, 31 Jan 2013 23:29:57 +0000 (23:29 +0000)
commit5da3665cc501ed8928e63678254357214ec0b9eb
tree69df5614946e3710e33f0501737b22a81dfa9957
parent169d5270751597aed4095ead00401a3374906147
Give the MCStreamer class hierarchy LLVM RTTI facilities for use with
isa<> and dyn_cast<>. In several places, code is already hacking around
the absence of this, and there seem to be several interfaces that might
be lifted and/or devirtualized using this.

This change was based on a discussion with Jim Grosbach about how best
to handle testing for specific MCStreamer subclasses. He said that this
was the correct end state, and everything else was too hacky so
I decided to just make it so.

No functionality should be changed here, this is just threading the kind
through all the constructors and setting up the classof overloads.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@174113 91177308-0d34-0410-b5e6-96231b3b80d8
12 files changed:
include/llvm/MC/MCELFStreamer.h
include/llvm/MC/MCObjectStreamer.h
include/llvm/MC/MCStreamer.h
lib/MC/MCAsmStreamer.cpp
lib/MC/MCMachOStreamer.cpp
lib/MC/MCNullStreamer.cpp
lib/MC/MCObjectStreamer.cpp
lib/MC/MCPureStreamer.cpp
lib/MC/MCStreamer.cpp
lib/MC/WinCOFFStreamer.cpp
lib/Target/ARM/MCTargetDesc/ARMELFStreamer.cpp
tools/lto/LTOModule.cpp