summaryrefslogtreecommitdiff
path: root/contrib/llvm/lib/CodeGen/PseudoSourceValue.cpp
diff options
context:
space:
mode:
authorDimitry Andric <dim@FreeBSD.org>2019-12-20 19:53:05 +0000
committerDimitry Andric <dim@FreeBSD.org>2019-12-20 19:53:05 +0000
commit0b57cec536236d46e3dba9bd041533462f33dbb7 (patch)
tree56229dbdbbf76d18580f72f789003db17246c8d9 /contrib/llvm/lib/CodeGen/PseudoSourceValue.cpp
parent718ef55ec7785aae63f98f8ca05dc07ed399c16d (diff)
Notes
Diffstat (limited to 'contrib/llvm/lib/CodeGen/PseudoSourceValue.cpp')
-rw-r--r--contrib/llvm/lib/CodeGen/PseudoSourceValue.cpp152
1 files changed, 0 insertions, 152 deletions
diff --git a/contrib/llvm/lib/CodeGen/PseudoSourceValue.cpp b/contrib/llvm/lib/CodeGen/PseudoSourceValue.cpp
deleted file mode 100644
index da3ef4b771f3..000000000000
--- a/contrib/llvm/lib/CodeGen/PseudoSourceValue.cpp
+++ /dev/null
@@ -1,152 +0,0 @@
-//===-- llvm/CodeGen/PseudoSourceValue.cpp ----------------------*- C++ -*-===//
-//
-// 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
-//
-//===----------------------------------------------------------------------===//
-//
-// This file implements the PseudoSourceValue class.
-//
-//===----------------------------------------------------------------------===//
-
-#include "llvm/CodeGen/PseudoSourceValue.h"
-#include "llvm/ADT/STLExtras.h"
-#include "llvm/CodeGen/MachineFrameInfo.h"
-#include "llvm/CodeGen/TargetInstrInfo.h"
-#include "llvm/IR/DerivedTypes.h"
-#include "llvm/IR/LLVMContext.h"
-#include "llvm/Support/ErrorHandling.h"
-#include "llvm/Support/raw_ostream.h"
-using namespace llvm;
-
-static const char *const PSVNames[] = {
- "Stack", "GOT", "JumpTable", "ConstantPool", "FixedStack",
- "GlobalValueCallEntry", "ExternalSymbolCallEntry"};
-
-PseudoSourceValue::PseudoSourceValue(unsigned Kind, const TargetInstrInfo &TII)
- : Kind(Kind) {
- AddressSpace = TII.getAddressSpaceForPseudoSourceKind(Kind);
-}
-
-
-PseudoSourceValue::~PseudoSourceValue() {}
-
-void PseudoSourceValue::printCustom(raw_ostream &O) const {
- if (Kind < TargetCustom)
- O << PSVNames[Kind];
- else
- O << "TargetCustom" << Kind;
-}
-
-bool PseudoSourceValue::isConstant(const MachineFrameInfo *) const {
- if (isStack())
- return false;
- if (isGOT() || isConstantPool() || isJumpTable())
- return true;
- llvm_unreachable("Unknown PseudoSourceValue!");
-}
-
-bool PseudoSourceValue::isAliased(const MachineFrameInfo *) const {
- if (isStack() || isGOT() || isConstantPool() || isJumpTable())
- return false;
- llvm_unreachable("Unknown PseudoSourceValue!");
-}
-
-bool PseudoSourceValue::mayAlias(const MachineFrameInfo *) const {
- return !(isGOT() || isConstantPool() || isJumpTable());
-}
-
-bool FixedStackPseudoSourceValue::isConstant(
- const MachineFrameInfo *MFI) const {
- return MFI && MFI->isImmutableObjectIndex(FI);
-}
-
-bool FixedStackPseudoSourceValue::isAliased(const MachineFrameInfo *MFI) const {
- if (!MFI)
- return true;
- return MFI->isAliasedObjectIndex(FI);
-}
-
-bool FixedStackPseudoSourceValue::mayAlias(const MachineFrameInfo *MFI) const {
- if (!MFI)
- return true;
- // Spill slots will not alias any LLVM IR value.
- return !MFI->isSpillSlotObjectIndex(FI);
-}
-
-void FixedStackPseudoSourceValue::printCustom(raw_ostream &OS) const {
- OS << "FixedStack" << FI;
-}
-
-CallEntryPseudoSourceValue::CallEntryPseudoSourceValue(
- unsigned Kind, const TargetInstrInfo &TII)
- : PseudoSourceValue(Kind, TII) {}
-
-bool CallEntryPseudoSourceValue::isConstant(const MachineFrameInfo *) const {
- return false;
-}
-
-bool CallEntryPseudoSourceValue::isAliased(const MachineFrameInfo *) const {
- return false;
-}
-
-bool CallEntryPseudoSourceValue::mayAlias(const MachineFrameInfo *) const {
- return false;
-}
-
-GlobalValuePseudoSourceValue::GlobalValuePseudoSourceValue(
- const GlobalValue *GV,
- const TargetInstrInfo &TII)
- : CallEntryPseudoSourceValue(GlobalValueCallEntry, TII), GV(GV) {}
-ExternalSymbolPseudoSourceValue::ExternalSymbolPseudoSourceValue(
- const char *ES, const TargetInstrInfo &TII)
- : CallEntryPseudoSourceValue(ExternalSymbolCallEntry, TII), ES(ES) {}
-
-PseudoSourceValueManager::PseudoSourceValueManager(
- const TargetInstrInfo &TIInfo)
- : TII(TIInfo),
- StackPSV(PseudoSourceValue::Stack, TII),
- GOTPSV(PseudoSourceValue::GOT, TII),
- JumpTablePSV(PseudoSourceValue::JumpTable, TII),
- ConstantPoolPSV(PseudoSourceValue::ConstantPool, TII) {}
-
-const PseudoSourceValue *PseudoSourceValueManager::getStack() {
- return &StackPSV;
-}
-
-const PseudoSourceValue *PseudoSourceValueManager::getGOT() { return &GOTPSV; }
-
-const PseudoSourceValue *PseudoSourceValueManager::getConstantPool() {
- return &ConstantPoolPSV;
-}
-
-const PseudoSourceValue *PseudoSourceValueManager::getJumpTable() {
- return &JumpTablePSV;
-}
-
-const PseudoSourceValue *
-PseudoSourceValueManager::getFixedStack(int FI) {
- std::unique_ptr<FixedStackPseudoSourceValue> &V = FSValues[FI];
- if (!V)
- V = llvm::make_unique<FixedStackPseudoSourceValue>(FI, TII);
- return V.get();
-}
-
-const PseudoSourceValue *
-PseudoSourceValueManager::getGlobalValueCallEntry(const GlobalValue *GV) {
- std::unique_ptr<const GlobalValuePseudoSourceValue> &E =
- GlobalCallEntries[GV];
- if (!E)
- E = llvm::make_unique<GlobalValuePseudoSourceValue>(GV, TII);
- return E.get();
-}
-
-const PseudoSourceValue *
-PseudoSourceValueManager::getExternalSymbolCallEntry(const char *ES) {
- std::unique_ptr<const ExternalSymbolPseudoSourceValue> &E =
- ExternalCallEntries[ES];
- if (!E)
- E = llvm::make_unique<ExternalSymbolPseudoSourceValue>(ES, TII);
- return E.get();
-}