aboutsummaryrefslogtreecommitdiff
path: root/contrib/llvm/lib/MC/MCSection.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/llvm/lib/MC/MCSection.cpp')
-rw-r--r--contrib/llvm/lib/MC/MCSection.cpp102
1 files changed, 0 insertions, 102 deletions
diff --git a/contrib/llvm/lib/MC/MCSection.cpp b/contrib/llvm/lib/MC/MCSection.cpp
deleted file mode 100644
index 2c892ab81608..000000000000
--- a/contrib/llvm/lib/MC/MCSection.cpp
+++ /dev/null
@@ -1,102 +0,0 @@
-//===- lib/MC/MCSection.cpp - Machine Code Section Representation ---------===//
-//
-// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
-// See https://llvm.org/LICENSE.txt for license information.
-// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-//
-//===----------------------------------------------------------------------===//
-
-#include "llvm/MC/MCSection.h"
-#include "llvm/ADT/SmallVector.h"
-#include "llvm/Config/llvm-config.h"
-#include "llvm/MC/MCContext.h"
-#include "llvm/MC/MCFragment.h"
-#include "llvm/MC/MCSymbol.h"
-#include "llvm/Support/Compiler.h"
-#include "llvm/Support/ErrorHandling.h"
-#include "llvm/Support/raw_ostream.h"
-#include <algorithm>
-#include <utility>
-
-using namespace llvm;
-
-MCSection::MCSection(SectionVariant V, SectionKind K, MCSymbol *Begin)
- : Begin(Begin), BundleGroupBeforeFirstInst(false), HasInstructions(false),
- HasData(false), IsRegistered(false), DummyFragment(this), Variant(V),
- Kind(K) {}
-
-MCSymbol *MCSection::getEndSymbol(MCContext &Ctx) {
- if (!End)
- End = Ctx.createTempSymbol("sec_end", true);
- return End;
-}
-
-bool MCSection::hasEnded() const { return End && End->isInSection(); }
-
-MCSection::~MCSection() = default;
-
-void MCSection::setBundleLockState(BundleLockStateType NewState) {
- if (NewState == NotBundleLocked) {
- if (BundleLockNestingDepth == 0) {
- report_fatal_error("Mismatched bundle_lock/unlock directives");
- }
- if (--BundleLockNestingDepth == 0) {
- BundleLockState = NotBundleLocked;
- }
- return;
- }
-
- // If any of the directives is an align_to_end directive, the whole nested
- // group is align_to_end. So don't downgrade from align_to_end to just locked.
- if (BundleLockState != BundleLockedAlignToEnd) {
- BundleLockState = NewState;
- }
- ++BundleLockNestingDepth;
-}
-
-MCSection::iterator
-MCSection::getSubsectionInsertionPoint(unsigned Subsection) {
- if (Subsection == 0 && SubsectionFragmentMap.empty())
- return end();
-
- SmallVectorImpl<std::pair<unsigned, MCFragment *>>::iterator MI =
- std::lower_bound(SubsectionFragmentMap.begin(),
- SubsectionFragmentMap.end(),
- std::make_pair(Subsection, (MCFragment *)nullptr));
- bool ExactMatch = false;
- if (MI != SubsectionFragmentMap.end()) {
- ExactMatch = MI->first == Subsection;
- if (ExactMatch)
- ++MI;
- }
- iterator IP;
- if (MI == SubsectionFragmentMap.end())
- IP = end();
- else
- IP = MI->second->getIterator();
- if (!ExactMatch && Subsection != 0) {
- // The GNU as documentation claims that subsections have an alignment of 4,
- // although this appears not to be the case.
- MCFragment *F = new MCDataFragment();
- SubsectionFragmentMap.insert(MI, std::make_pair(Subsection, F));
- getFragmentList().insert(IP, F);
- F->setParent(this);
- }
-
- return IP;
-}
-
-#if !defined(NDEBUG) || defined(LLVM_ENABLE_DUMP)
-LLVM_DUMP_METHOD void MCSection::dump() const {
- raw_ostream &OS = errs();
-
- OS << "<MCSection";
- OS << " Fragments:[\n ";
- for (auto it = begin(), ie = end(); it != ie; ++it) {
- if (it != begin())
- OS << ",\n ";
- it->dump();
- }
- OS << "]>";
-}
-#endif