12 #include "llvm/Config/llvm-config.h" 25 : Begin(Begin), BundleGroupBeforeFirstInst(
false), HasInstructions(
false),
26 HasData(
false), IsRegistered(
false), DummyFragment(this), Variant(V),
41 if (BundleLockNestingDepth == 0) {
44 if (--BundleLockNestingDepth == 0) {
53 BundleLockState = NewState;
55 ++BundleLockNestingDepth;
60 if (Subsection == 0 && SubsectionFragmentMap.empty())
65 SubsectionFragmentMap.end(),
66 std::make_pair(Subsection, (
MCFragment *)
nullptr));
67 bool ExactMatch =
false;
68 if (MI != SubsectionFragmentMap.end()) {
69 ExactMatch = MI->first == Subsection;
74 if (MI == SubsectionFragmentMap.end())
77 IP = MI->second->getIterator();
78 if (!ExactMatch && Subsection != 0) {
82 SubsectionFragmentMap.insert(MI, std::make_pair(Subsection, F));
90 #if !defined(NDEBUG) || defined(LLVM_ENABLE_DUMP) 95 OS <<
" Fragments:[\n ";
96 for (
auto it =
begin(), ie =
end(); it != ie; ++it) {
raw_ostream & errs()
This returns a reference to a raw_ostream for standard error.
LLVM_ATTRIBUTE_NORETURN void report_fatal_error(Error Err, bool gen_crash_diag=true)
Report a serious error, calling any installed error handler.
This class represents lattice values for constants.
MCSymbol - Instances of this class represent a symbol name in the MC file, and MCSymbols are created ...
MCSection(SectionVariant V, SectionKind K, MCSymbol *Begin)
void setBundleLockState(BundleLockStateType NewState)
BundleLockStateType
Express the state of bundle locked groups while emitting code.
This class consists of common code factored out of the SmallVector class to reduce code duplication b...
bool isInSection() const
isInSection - Check if this symbol is defined in some section (i.e., it is defined but not absolute)...
MCSymbol * getEndSymbol(MCContext &Ctx)
Context object for machine code objects.
auto lower_bound(R &&Range, ForwardIt I) -> decltype(adl_begin(Range))
Provide wrappers to std::lower_bound which take ranges instead of having to pass begin/end explicitly...
MCSymbol * createTempSymbol(bool CanBeUnnamed=true)
Create and return a new assembler temporary symbol with a unique but unspecified name.
SectionKind - This is a simple POD value that classifies the properties of a section.
Iterator for intrusive lists based on ilist_node.
iterator insert(iterator where, pointer New)
Fragment for data and encoded instructions.
MCSection::iterator getSubsectionInsertionPoint(unsigned Subsection)
This class implements an extremely fast bulk output stream that can only output to a stream...
void setParent(MCSection *Value)
MCSection::FragmentListType & getFragmentList()