[ptr-traits] Split the MCFragment type hierarchy out of the MCAssembler
authorChandler Carruth <chandlerc@gmail.com>
Tue, 29 Dec 2015 09:06:16 +0000 (09:06 +0000)
committerChandler Carruth <chandlerc@gmail.com>
Tue, 29 Dec 2015 09:06:16 +0000 (09:06 +0000)
commit24cdab76e012b85ac1fcd5e519310730953e3910
treed8930e30b6654ce0a21dc93713d89c871c53f882
parent0d55429ae6c247401fbe6c11d17331b7e1bab11f
[ptr-traits] Split the MCFragment type hierarchy out of the MCAssembler
header to its own header, allowing users of fragments to have a narrower
header file, and avoid circular header dependencies when getting the
definition of MCSection prior to inspecting traits on MCSection
pointers.

This is part of a series of patches to allow LLVM to check for complete
pointee types when computing its pointer traits. This is absolutely
necessary to get correct (or reproducible) results for things like how
many low bits are guaranteed to be zero.

Note that this doesn't in any way change the design of MC, it is just
moving code around to allow the *header files* to be more fine grained.
Without this, it is impossible to get a complete type for MCSection
where it is needed.

If anyone would prefer a different slicing of the header files, I'm
happy to oblige of course. =]

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@256548 91177308-0d34-0410-b5e6-96231b3b80d8
include/llvm/MC/MCAssembler.h
include/llvm/MC/MCDwarf.h
include/llvm/MC/MCFragment.h [new file with mode: 0644]
include/llvm/MC/MCSection.h
lib/MC/CMakeLists.txt
lib/MC/MCAssembler.cpp
lib/MC/MCFragment.cpp [new file with mode: 0644]