mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-22 10:42:39 +01:00
Unweaken vtables as per http://llvm.org/docs/CodingStandards.html#ll_virtual_anch
llvm-svn: 146960
This commit is contained in:
parent
a1c4f73f87
commit
576aba04f1
@ -65,6 +65,7 @@ namespace llvm {
|
||||
//===----------------------------------------------------------------------===//
|
||||
class RefCountedBaseVPTR {
|
||||
mutable unsigned ref_cnt;
|
||||
virtual void anchor();
|
||||
|
||||
protected:
|
||||
RefCountedBaseVPTR() : ref_cnt(0) {}
|
||||
|
@ -153,6 +153,7 @@ namespace llvm {
|
||||
|
||||
/// DIScope - A base class for various scopes.
|
||||
class DIScope : public DIDescriptor {
|
||||
virtual void anchor();
|
||||
public:
|
||||
explicit DIScope(const MDNode *N = 0) : DIDescriptor (N) {}
|
||||
virtual ~DIScope() {}
|
||||
@ -163,6 +164,7 @@ namespace llvm {
|
||||
|
||||
/// DICompileUnit - A wrapper for a compile unit.
|
||||
class DICompileUnit : public DIScope {
|
||||
virtual void anchor();
|
||||
public:
|
||||
explicit DICompileUnit(const MDNode *N = 0) : DIScope(N) {}
|
||||
|
||||
@ -202,6 +204,7 @@ namespace llvm {
|
||||
|
||||
/// DIFile - This is a wrapper for a file.
|
||||
class DIFile : public DIScope {
|
||||
virtual void anchor();
|
||||
public:
|
||||
explicit DIFile(const MDNode *N = 0) : DIScope(N) {
|
||||
if (DbgNode && !isFile())
|
||||
@ -230,7 +233,7 @@ namespace llvm {
|
||||
/// FIXME: Types should be factored much better so that CV qualifiers and
|
||||
/// others do not require a huge and empty descriptor full of zeros.
|
||||
class DIType : public DIScope {
|
||||
public:
|
||||
virtual void anchor();
|
||||
protected:
|
||||
// This ctor is used when the Tag has already been validated by a derived
|
||||
// ctor.
|
||||
@ -240,7 +243,6 @@ namespace llvm {
|
||||
|
||||
/// Verify - Verify that a type descriptor is well formed.
|
||||
bool Verify() const;
|
||||
public:
|
||||
explicit DIType(const MDNode *N);
|
||||
explicit DIType() {}
|
||||
virtual ~DIType() {}
|
||||
@ -320,6 +322,7 @@ namespace llvm {
|
||||
|
||||
/// DIBasicType - A basic type, like 'int' or 'float'.
|
||||
class DIBasicType : public DIType {
|
||||
virtual void anchor();
|
||||
public:
|
||||
explicit DIBasicType(const MDNode *N = 0) : DIType(N) {}
|
||||
|
||||
@ -338,6 +341,7 @@ namespace llvm {
|
||||
/// DIDerivedType - A simple derived type, like a const qualified type,
|
||||
/// a typedef, a pointer or reference, etc.
|
||||
class DIDerivedType : public DIType {
|
||||
virtual void anchor();
|
||||
protected:
|
||||
explicit DIDerivedType(const MDNode *N, bool, bool)
|
||||
: DIType(N, true, true) {}
|
||||
@ -391,6 +395,7 @@ namespace llvm {
|
||||
/// other types, like a function or struct.
|
||||
/// FIXME: Why is this a DIDerivedType??
|
||||
class DICompositeType : public DIDerivedType {
|
||||
virtual void anchor();
|
||||
public:
|
||||
explicit DICompositeType(const MDNode *N = 0)
|
||||
: DIDerivedType(N, true, true) {
|
||||
@ -454,6 +459,7 @@ namespace llvm {
|
||||
|
||||
/// DISubprogram - This is a wrapper for a subprogram (e.g. a function).
|
||||
class DISubprogram : public DIScope {
|
||||
virtual void anchor();
|
||||
public:
|
||||
explicit DISubprogram(const MDNode *N = 0) : DIScope(N) {}
|
||||
|
||||
@ -687,6 +693,7 @@ namespace llvm {
|
||||
|
||||
/// DILexicalBlock - This is a wrapper for a lexical block.
|
||||
class DILexicalBlock : public DIScope {
|
||||
virtual void anchor();
|
||||
public:
|
||||
explicit DILexicalBlock(const MDNode *N = 0) : DIScope(N) {}
|
||||
DIScope getContext() const { return getFieldAs<DIScope>(1); }
|
||||
@ -705,6 +712,7 @@ namespace llvm {
|
||||
/// DILexicalBlockFile - This is a wrapper for a lexical block with
|
||||
/// a filename change.
|
||||
class DILexicalBlockFile : public DIScope {
|
||||
virtual void anchor();
|
||||
public:
|
||||
explicit DILexicalBlockFile(const MDNode *N = 0) : DIScope(N) {}
|
||||
DIScope getContext() const { return getScope().getContext(); }
|
||||
@ -724,6 +732,7 @@ namespace llvm {
|
||||
|
||||
/// DINameSpace - A wrapper for a C++ style name space.
|
||||
class DINameSpace : public DIScope {
|
||||
virtual void anchor();
|
||||
public:
|
||||
explicit DINameSpace(const MDNode *N = 0) : DIScope(N) {}
|
||||
DIScope getContext() const { return getFieldAs<DIScope>(1); }
|
||||
|
@ -154,6 +154,7 @@ public:
|
||||
/// used to compute a forward dominator frontiers.
|
||||
///
|
||||
class DominanceFrontier : public DominanceFrontierBase {
|
||||
virtual void anchor();
|
||||
public:
|
||||
static char ID; // Pass ID, replacement for typeid
|
||||
DominanceFrontier() :
|
||||
|
@ -30,6 +30,7 @@ template<typename ValueSubClass, typename ItemParentClass>
|
||||
/// the function was called with.
|
||||
/// @brief LLVM Argument representation
|
||||
class Argument : public Value, public ilist_node<Argument> {
|
||||
virtual void anchor();
|
||||
Function *Parent;
|
||||
|
||||
friend class SymbolTableListTraits<Argument, Function>;
|
||||
|
@ -51,6 +51,7 @@ class Function;
|
||||
/// occurred, more memory is allocated, and we reemit the code into it.
|
||||
///
|
||||
class JITCodeEmitter : public MachineCodeEmitter {
|
||||
virtual void anchor();
|
||||
public:
|
||||
virtual ~JITCodeEmitter() {}
|
||||
|
||||
|
@ -153,6 +153,7 @@ private:
|
||||
/// LexicalScope - This class is used to track scope information.
|
||||
///
|
||||
class LexicalScope {
|
||||
virtual void anchor();
|
||||
|
||||
public:
|
||||
LexicalScope(LexicalScope *P, const MDNode *D, const MDNode *I, bool A)
|
||||
|
@ -25,6 +25,7 @@ class raw_ostream;
|
||||
class MachineBasicBlock;
|
||||
|
||||
class MachineBranchProbabilityInfo : public ImmutablePass {
|
||||
virtual void anchor();
|
||||
|
||||
// Default weight value. Used when we don't have information about the edge.
|
||||
// TODO: DEFAULT_WEIGHT makes sense during static predication, when none of
|
||||
|
@ -20,6 +20,8 @@
|
||||
#include "llvm/Support/DataTypes.h"
|
||||
#include "llvm/Support/DebugLoc.h"
|
||||
|
||||
#include <string>
|
||||
|
||||
namespace llvm {
|
||||
|
||||
class MachineBasicBlock;
|
||||
@ -49,6 +51,7 @@ class MCSymbol;
|
||||
/// occurred, more memory is allocated, and we reemit the code into it.
|
||||
///
|
||||
class MachineCodeEmitter {
|
||||
virtual void anchor();
|
||||
protected:
|
||||
/// BufferBegin/BufferEnd - Pointers to the start and end of the memory
|
||||
/// allocated for this code buffer.
|
||||
|
@ -34,6 +34,7 @@ class raw_ostream;
|
||||
/// Abstract base class for all machine specific constantpool value subclasses.
|
||||
///
|
||||
class MachineConstantPoolValue {
|
||||
virtual void anchor();
|
||||
Type *Ty;
|
||||
|
||||
public:
|
||||
|
@ -33,6 +33,7 @@ typedef void *(*MachinePassCtor)();
|
||||
///
|
||||
//===----------------------------------------------------------------------===//
|
||||
class MachinePassRegistryListener {
|
||||
virtual void anchor();
|
||||
public:
|
||||
MachinePassRegistryListener() {}
|
||||
virtual ~MachinePassRegistryListener() {}
|
||||
|
@ -427,6 +427,7 @@ namespace llvm {
|
||||
/// implementation to decide.
|
||||
///
|
||||
class SchedulingPriorityQueue {
|
||||
virtual void anchor();
|
||||
unsigned CurCycle;
|
||||
bool HasReadyFilter;
|
||||
public:
|
||||
|
@ -181,6 +181,7 @@ protected:
|
||||
/// ISelUpdater - helper class to handle updates of the
|
||||
/// instruction selection graph.
|
||||
class ISelUpdater : public SelectionDAG::DAGUpdateListener {
|
||||
virtual void anchor();
|
||||
SelectionDAG::allnodes_iterator &ISelPosition;
|
||||
public:
|
||||
explicit ISelUpdater(SelectionDAG::allnodes_iterator &isp)
|
||||
|
@ -41,6 +41,7 @@ namespace llvm {
|
||||
class Constant : public User {
|
||||
void operator=(const Constant &); // Do not implement
|
||||
Constant(const Constant &); // Do not implement
|
||||
virtual void anchor();
|
||||
|
||||
protected:
|
||||
Constant(Type *ty, ValueTy vty, Use *Ops, unsigned NumOps)
|
||||
|
@ -45,6 +45,7 @@ struct ConvertConstantType;
|
||||
/// represents both boolean and integral constants.
|
||||
/// @brief Class for constant integers.
|
||||
class ConstantInt : public Constant {
|
||||
virtual void anchor();
|
||||
void *operator new(size_t, unsigned); // DO NOT IMPLEMENT
|
||||
ConstantInt(const ConstantInt &); // DO NOT IMPLEMENT
|
||||
ConstantInt(IntegerType *Ty, const APInt& V);
|
||||
@ -229,6 +230,7 @@ public:
|
||||
///
|
||||
class ConstantFP : public Constant {
|
||||
APFloat Val;
|
||||
virtual void anchor();
|
||||
void *operator new(size_t, unsigned);// DO NOT IMPLEMENT
|
||||
ConstantFP(const ConstantFP &); // DO NOT IMPLEMENT
|
||||
friend class LLVMContextImpl;
|
||||
|
@ -14,17 +14,19 @@
|
||||
|
||||
namespace llvm {
|
||||
class MCAsmInfoCOFF : public MCAsmInfo {
|
||||
virtual void anchor();
|
||||
protected:
|
||||
explicit MCAsmInfoCOFF();
|
||||
|
||||
};
|
||||
|
||||
class MCAsmInfoMicrosoft : public MCAsmInfoCOFF {
|
||||
virtual void anchor();
|
||||
protected:
|
||||
explicit MCAsmInfoMicrosoft();
|
||||
};
|
||||
|
||||
class MCAsmInfoGNUCOFF : public MCAsmInfoCOFF {
|
||||
virtual void anchor();
|
||||
protected:
|
||||
explicit MCAsmInfoGNUCOFF();
|
||||
};
|
||||
|
@ -18,7 +18,9 @@
|
||||
#include "llvm/MC/MCAsmInfo.h"
|
||||
|
||||
namespace llvm {
|
||||
struct MCAsmInfoDarwin : public MCAsmInfo {
|
||||
class MCAsmInfoDarwin : public MCAsmInfo {
|
||||
virtual void anchor();
|
||||
public:
|
||||
explicit MCAsmInfoDarwin();
|
||||
};
|
||||
}
|
||||
|
@ -106,6 +106,7 @@ public:
|
||||
};
|
||||
|
||||
class MCDataFragment : public MCFragment {
|
||||
virtual void anchor();
|
||||
SmallString<32> Contents;
|
||||
|
||||
/// Fixups - The list of fixups in this fragment.
|
||||
@ -160,6 +161,8 @@ public:
|
||||
// object with just the MCInst and a code size, then we should just change
|
||||
// MCDataFragment to have an optional MCInst at its end.
|
||||
class MCInstFragment : public MCFragment {
|
||||
virtual void anchor();
|
||||
|
||||
/// Inst - The instruction this is a fragment for.
|
||||
MCInst Inst;
|
||||
|
||||
@ -215,6 +218,8 @@ public:
|
||||
};
|
||||
|
||||
class MCAlignFragment : public MCFragment {
|
||||
virtual void anchor();
|
||||
|
||||
/// Alignment - The alignment to ensure, in bytes.
|
||||
unsigned Alignment;
|
||||
|
||||
@ -263,6 +268,8 @@ public:
|
||||
};
|
||||
|
||||
class MCFillFragment : public MCFragment {
|
||||
virtual void anchor();
|
||||
|
||||
/// Value - Value to use for filling bytes.
|
||||
int64_t Value;
|
||||
|
||||
@ -300,6 +307,8 @@ public:
|
||||
};
|
||||
|
||||
class MCOrgFragment : public MCFragment {
|
||||
virtual void anchor();
|
||||
|
||||
/// Offset - The offset this fragment should start at.
|
||||
const MCExpr *Offset;
|
||||
|
||||
@ -327,6 +336,8 @@ public:
|
||||
};
|
||||
|
||||
class MCLEBFragment : public MCFragment {
|
||||
virtual void anchor();
|
||||
|
||||
/// Value - The value this fragment should contain.
|
||||
const MCExpr *Value;
|
||||
|
||||
@ -358,6 +369,8 @@ public:
|
||||
};
|
||||
|
||||
class MCDwarfLineAddrFragment : public MCFragment {
|
||||
virtual void anchor();
|
||||
|
||||
/// LineDelta - the value of the difference between the two line numbers
|
||||
/// between two .loc dwarf directives.
|
||||
int64_t LineDelta;
|
||||
@ -393,6 +406,8 @@ public:
|
||||
};
|
||||
|
||||
class MCDwarfCallFrameFragment : public MCFragment {
|
||||
virtual void anchor();
|
||||
|
||||
/// AddrDelta - The expression for the difference of the two symbols that
|
||||
/// make up the address delta between two .cfi_* dwarf directives.
|
||||
const MCExpr *AddrDelta;
|
||||
|
@ -36,6 +36,7 @@ template<typename ValueSubClass, typename ItemParentClass>
|
||||
/// These are used to efficiently contain a byte sequence for metadata.
|
||||
/// MDString is always unnamed.
|
||||
class MDString : public Value {
|
||||
virtual void anchor();
|
||||
MDString(const MDString &); // DO NOT IMPLEMENT
|
||||
|
||||
StringRef Str;
|
||||
|
@ -22,6 +22,7 @@ namespace llvm {
|
||||
namespace object {
|
||||
|
||||
class Archive : public Binary {
|
||||
virtual void anchor();
|
||||
public:
|
||||
class Child {
|
||||
const Archive *Parent;
|
||||
|
@ -232,7 +232,7 @@ const uint64_t UnknownAddressOrSize = ~0ULL;
|
||||
/// Concrete instances of this object are created by createObjectFile, which
|
||||
/// figure out which type to create.
|
||||
class ObjectFile : public Binary {
|
||||
private:
|
||||
virtual void anchor();
|
||||
ObjectFile(); // = delete
|
||||
ObjectFile(const ObjectFile &other); // = delete
|
||||
|
||||
|
@ -68,6 +68,7 @@ class RecordKeeper;
|
||||
|
||||
class RecTy {
|
||||
ListRecTy *ListTy;
|
||||
virtual void anchor();
|
||||
public:
|
||||
RecTy() : ListTy(0) {}
|
||||
virtual ~RecTy() {}
|
||||
@ -489,6 +490,7 @@ RecTy *resolveTypes(RecTy *T1, RecTy *T2);
|
||||
class Init {
|
||||
Init(const Init &); // Do not define.
|
||||
Init &operator=(const Init &); // Do not define.
|
||||
virtual void anchor();
|
||||
|
||||
protected:
|
||||
Init(void) {}
|
||||
@ -617,6 +619,7 @@ class UnsetInit : public Init {
|
||||
UnsetInit() : Init() {}
|
||||
UnsetInit(const UnsetInit &); // Do not define.
|
||||
UnsetInit &operator=(const UnsetInit &Other); // Do not define.
|
||||
virtual void anchor();
|
||||
|
||||
public:
|
||||
static UnsetInit *get();
|
||||
@ -638,6 +641,7 @@ class BitInit : public Init {
|
||||
explicit BitInit(bool V) : Value(V) {}
|
||||
BitInit(const BitInit &Other); // Do not define.
|
||||
BitInit &operator=(BitInit &Other); // Do not define.
|
||||
virtual void anchor();
|
||||
|
||||
public:
|
||||
static BitInit *get(bool V);
|
||||
@ -750,6 +754,7 @@ class StringInit : public TypedInit {
|
||||
|
||||
StringInit(const StringInit &Other); // Do not define.
|
||||
StringInit &operator=(const StringInit &Other); // Do not define.
|
||||
virtual void anchor();
|
||||
|
||||
public:
|
||||
static StringInit *get(const std::string &V);
|
||||
@ -792,6 +797,7 @@ class CodeInit : public Init {
|
||||
|
||||
CodeInit(const CodeInit &Other); // Do not define.
|
||||
CodeInit &operator=(const CodeInit &Other); // Do not define.
|
||||
virtual void anchor();
|
||||
|
||||
public:
|
||||
static CodeInit *get(const std::string &V);
|
||||
|
@ -21,6 +21,7 @@ class raw_ostream;
|
||||
class RecordKeeper;
|
||||
|
||||
class TableGenAction {
|
||||
virtual void anchor();
|
||||
public:
|
||||
virtual ~TableGenAction() {}
|
||||
|
||||
|
@ -24,6 +24,7 @@ class Record;
|
||||
class RecordKeeper;
|
||||
|
||||
struct TableGenBackend {
|
||||
virtual void anchor();
|
||||
virtual ~TableGenBackend() {}
|
||||
|
||||
// run - All TableGen backends should implement the run method, which should
|
||||
|
@ -30,6 +30,7 @@ namespace llvm {
|
||||
/// TargetJITInfo - Target specific information required by the Just-In-Time
|
||||
/// code generator.
|
||||
class TargetJITInfo {
|
||||
virtual void anchor();
|
||||
public:
|
||||
virtual ~TargetJITInfo() {}
|
||||
|
||||
|
@ -208,6 +208,7 @@ namespace llvm {
|
||||
/// library functions are available for the current target, and allows a
|
||||
/// frontend to disable optimizations through -fno-builtin etc.
|
||||
class TargetLibraryInfo : public ImmutablePass {
|
||||
virtual void anchor();
|
||||
unsigned char AvailableArray[(LibFunc::NumLibFuncs+3)/4];
|
||||
llvm::DenseMap<unsigned, std::string> CustomNames;
|
||||
static const char* StandardNames[LibFunc::NumLibFuncs];
|
||||
|
@ -38,6 +38,7 @@ public:
|
||||
typedef const EVT* vt_iterator;
|
||||
typedef const TargetRegisterClass* const * sc_iterator;
|
||||
private:
|
||||
virtual void anchor();
|
||||
const MCRegisterClass *MC;
|
||||
const vt_iterator VTs;
|
||||
const unsigned *SubClassMask;
|
||||
|
@ -33,6 +33,7 @@ class ScalarEvolution;
|
||||
/// Interface for visiting interesting IV users that are recognized but not
|
||||
/// simplified by this utility.
|
||||
class IVVisitor {
|
||||
virtual void anchor();
|
||||
public:
|
||||
virtual ~IVVisitor() {}
|
||||
virtual void visitCast(CastInst *Cast) = 0;
|
||||
|
@ -637,6 +637,32 @@ DIArray DICompileUnit::getGlobalVariables() const {
|
||||
return DIArray();
|
||||
}
|
||||
|
||||
//===----------------------------------------------------------------------===//
|
||||
// DIDescriptor: vtable anchors for all descriptors.
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
void DIScope::anchor() { }
|
||||
|
||||
void DICompileUnit::anchor() { }
|
||||
|
||||
void DIFile::anchor() { }
|
||||
|
||||
void DIType::anchor() { }
|
||||
|
||||
void DIBasicType::anchor() { }
|
||||
|
||||
void DIDerivedType::anchor() { }
|
||||
|
||||
void DICompositeType::anchor() { }
|
||||
|
||||
void DISubprogram::anchor() { }
|
||||
|
||||
void DILexicalBlock::anchor() { }
|
||||
|
||||
void DINameSpace::anchor() { }
|
||||
|
||||
void DILexicalBlockFile::anchor() { }
|
||||
|
||||
//===----------------------------------------------------------------------===//
|
||||
// DIDescriptor: dump routines for all descriptors.
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
@ -35,6 +35,8 @@ namespace {
|
||||
};
|
||||
}
|
||||
|
||||
void DominanceFrontier::anchor() { }
|
||||
|
||||
const DominanceFrontier::DomSetType &
|
||||
DominanceFrontier::calculate(const DominatorTree &DT,
|
||||
const DomTreeNode *Node) {
|
||||
|
@ -174,6 +174,7 @@ void DIE::dump() {
|
||||
}
|
||||
#endif
|
||||
|
||||
void DIEValue::anchor() { }
|
||||
|
||||
#ifndef NDEBUG
|
||||
void DIEValue::dump() {
|
||||
|
@ -195,6 +195,7 @@ namespace llvm {
|
||||
/// DIEValue - A debug information entry value.
|
||||
///
|
||||
class DIEValue {
|
||||
virtual void anchor();
|
||||
public:
|
||||
enum {
|
||||
isInteger,
|
||||
|
14
lib/CodeGen/JITCodeEmitter.cpp
Normal file
14
lib/CodeGen/JITCodeEmitter.cpp
Normal file
@ -0,0 +1,14 @@
|
||||
//===-- llvm/CodeGen/JITCodeEmitter.cpp - Code emission --------*- C++ -*-===//
|
||||
//
|
||||
// The LLVM Compiler Infrastructure
|
||||
//
|
||||
// This file is distributed under the University of Illinois Open Source
|
||||
// License. See LICENSE.TXT for details.
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
#include "llvm/CodeGen/JITCodeEmitter.h"
|
||||
|
||||
using namespace llvm;
|
||||
|
||||
void JITCodeEmitter::anchor() { }
|
@ -311,6 +311,8 @@ bool LexicalScopes::dominates(DebugLoc DL, MachineBasicBlock *MBB) {
|
||||
return Result;
|
||||
}
|
||||
|
||||
void LexicalScope::anchor() { }
|
||||
|
||||
/// dump - Print data structures.
|
||||
void LexicalScope::dump() const {
|
||||
#ifndef NDEBUG
|
||||
|
@ -29,6 +29,8 @@ STATISTIC(NumDCEDeleted, "Number of instructions deleted by DCE");
|
||||
STATISTIC(NumDCEFoldedLoads, "Number of single use loads folded after DCE");
|
||||
STATISTIC(NumFracRanges, "Number of live ranges fractured by DCE");
|
||||
|
||||
void LiveRangeEdit::Delegate::anchor() { }
|
||||
|
||||
LiveInterval &LiveRangeEdit::createFrom(unsigned OldReg,
|
||||
LiveIntervals &LIS,
|
||||
VirtRegMap &VRM) {
|
||||
|
@ -33,7 +33,9 @@ class VirtRegMap;
|
||||
class LiveRangeEdit {
|
||||
public:
|
||||
/// Callback methods for LiveRangeEdit owners.
|
||||
struct Delegate {
|
||||
class Delegate {
|
||||
virtual void anchor();
|
||||
public:
|
||||
/// Called immediately before erasing a dead machine instruction.
|
||||
virtual void LRE_WillEraseInstruction(MachineInstr *MI) {}
|
||||
|
||||
|
@ -26,6 +26,8 @@ INITIALIZE_PASS_END(MachineBranchProbabilityInfo, "machine-branch-prob",
|
||||
|
||||
char MachineBranchProbabilityInfo::ID = 0;
|
||||
|
||||
void MachineBranchProbabilityInfo::anchor() { }
|
||||
|
||||
uint32_t MachineBranchProbabilityInfo::
|
||||
getSumForBlock(MachineBasicBlock *MBB, uint32_t &Scale) const {
|
||||
// First we compute the sum with 64-bits of precision, ensuring that cannot
|
||||
|
14
lib/CodeGen/MachineCodeEmitter.cpp
Normal file
14
lib/CodeGen/MachineCodeEmitter.cpp
Normal file
@ -0,0 +1,14 @@
|
||||
//===-- llvm/CodeGen/MachineCodeEmitter.cpp - Code emission -----*- C++ -*-===//
|
||||
//
|
||||
// The LLVM Compiler Infrastructure
|
||||
//
|
||||
// This file is distributed under the University of Illinois Open Source
|
||||
// License. See LICENSE.TXT for details.
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
#include "llvm/CodeGen/MachineCodeEmitter.h"
|
||||
|
||||
using namespace llvm;
|
||||
|
||||
void MachineCodeEmitter::anchor() { }
|
@ -619,6 +619,8 @@ void MachineJumpTableInfo::dump() const { print(dbgs()); }
|
||||
// MachineConstantPool implementation
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
void MachineConstantPoolValue::anchor() { }
|
||||
|
||||
Type *MachineConstantPoolEntry::getType() const {
|
||||
if (isMachineConstantPoolEntry())
|
||||
return Val.MachineCPVal->getType();
|
||||
|
@ -16,6 +16,7 @@
|
||||
|
||||
using namespace llvm;
|
||||
|
||||
void MachinePassRegistryListener::anchor() { }
|
||||
|
||||
/// Add - Adds a function pass to the registration list.
|
||||
///
|
||||
|
@ -31,6 +31,8 @@ static cl::opt<bool> StressSchedOpt(
|
||||
cl::desc("Stress test instruction scheduling"));
|
||||
#endif
|
||||
|
||||
void SchedulingPriorityQueue::anchor() { }
|
||||
|
||||
ScheduleDAG::ScheduleDAG(MachineFunction &mf)
|
||||
: TM(mf.getTarget()),
|
||||
TII(TM.getInstrInfo()),
|
||||
|
@ -262,6 +262,8 @@ void TargetLowering::AdjustInstrPostInstrSelection(MachineInstr *MI,
|
||||
// SelectionDAGISel code
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
void SelectionDAGISel::ISelUpdater::anchor() { }
|
||||
|
||||
SelectionDAGISel::SelectionDAGISel(const TargetMachine &tm,
|
||||
CodeGenOpt::Level OL) :
|
||||
MachineFunctionPass(ID), TM(tm), TLI(*tm.getTargetLowering()),
|
||||
|
@ -185,6 +185,8 @@ public:
|
||||
|
||||
} // end anonymous namespace
|
||||
|
||||
void Spiller::anchor() { }
|
||||
|
||||
llvm::Spiller* llvm::createSpiller(MachineFunctionPass &pass,
|
||||
MachineFunction &mf,
|
||||
VirtRegMap &vrm) {
|
||||
|
@ -22,6 +22,7 @@ namespace llvm {
|
||||
/// Implementations are utility classes which insert spill or remat code on
|
||||
/// demand.
|
||||
class Spiller {
|
||||
virtual void anchor();
|
||||
public:
|
||||
virtual ~Spiller() = 0;
|
||||
|
||||
|
@ -165,3 +165,5 @@ DILineInfo DWARFContext::getLineInfoForAddress(uint64_t address) {
|
||||
|
||||
return DILineInfo(fileName.c_str(), row.Line, row.Column);
|
||||
}
|
||||
|
||||
void DWARFContextInMemory::anchor() { }
|
||||
|
@ -86,6 +86,7 @@ public:
|
||||
/// DWARFContext. It assumes all content is available in memory and stores
|
||||
/// pointers to it.
|
||||
class DWARFContextInMemory : public DWARFContext {
|
||||
virtual void anchor();
|
||||
StringRef InfoSection;
|
||||
StringRef AbbrevSection;
|
||||
StringRef ARangeSection;
|
||||
|
14
lib/ExecutionEngine/MCJIT/MCJITMemoryManager.cpp
Normal file
14
lib/ExecutionEngine/MCJIT/MCJITMemoryManager.cpp
Normal file
@ -0,0 +1,14 @@
|
||||
//==-- MCJITMemoryManager.cpp - Definition for the Memory Manager -*-C++ -*-==//
|
||||
//
|
||||
// The LLVM Compiler Infrastructure
|
||||
//
|
||||
// This file is distributed under the University of Illinois Open Source
|
||||
// License. See LICENSE.TXT for details.
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
#include "MCJITMemoryManager.h"
|
||||
|
||||
using namespace llvm;
|
||||
|
||||
void MCJITMemoryManager::anchor() { }
|
@ -21,6 +21,7 @@ namespace llvm {
|
||||
// and the RuntimeDyld interface that maps objects, by name, onto their
|
||||
// matching LLVM IR counterparts in the module(s) being compiled.
|
||||
class MCJITMemoryManager : public RTDyldMemoryManager {
|
||||
virtual void anchor();
|
||||
JITMemoryManager *JMM;
|
||||
|
||||
// FIXME: Multiple modules.
|
||||
|
@ -16,6 +16,8 @@
|
||||
#include "llvm/ADT/SmallVector.h"
|
||||
using namespace llvm;
|
||||
|
||||
void MCAsmInfoCOFF::anchor() { }
|
||||
|
||||
MCAsmInfoCOFF::MCAsmInfoCOFF() {
|
||||
GlobalPrefix = "_";
|
||||
COMMDirectiveAlignmentIsInBytes = false;
|
||||
@ -39,10 +41,14 @@ MCAsmInfoCOFF::MCAsmInfoCOFF() {
|
||||
SupportsDataRegions = false;
|
||||
}
|
||||
|
||||
void MCAsmInfoMicrosoft::anchor() { }
|
||||
|
||||
MCAsmInfoMicrosoft::MCAsmInfoMicrosoft() {
|
||||
AllowQuotesInName = true;
|
||||
}
|
||||
|
||||
void MCAsmInfoGNUCOFF::anchor() { }
|
||||
|
||||
MCAsmInfoGNUCOFF::MCAsmInfoGNUCOFF() {
|
||||
|
||||
}
|
||||
|
@ -18,6 +18,8 @@
|
||||
#include "llvm/MC/MCStreamer.h"
|
||||
using namespace llvm;
|
||||
|
||||
void MCAsmInfoDarwin::anchor() { }
|
||||
|
||||
MCAsmInfoDarwin::MCAsmInfoDarwin() {
|
||||
// Common settings for all Darwin targets.
|
||||
// Syntax:
|
||||
|
@ -972,3 +972,13 @@ void MCAssembler::dump() {
|
||||
}
|
||||
OS << "]>\n";
|
||||
}
|
||||
|
||||
// anchors for MC*Fragment vtables
|
||||
void MCDataFragment::anchor() { }
|
||||
void MCInstFragment::anchor() { }
|
||||
void MCAlignFragment::anchor() { }
|
||||
void MCFillFragment::anchor() { }
|
||||
void MCOrgFragment::anchor() { }
|
||||
void MCLEBFragment::anchor() { }
|
||||
void MCDwarfLineAddrFragment::anchor() { }
|
||||
void MCDwarfCallFrameFragment::anchor() { }
|
||||
|
@ -74,6 +74,8 @@ static bool isInternalMember(const ArchiveMemberHeader &amh) {
|
||||
return false;
|
||||
}
|
||||
|
||||
void Archive::anchor() { }
|
||||
|
||||
Archive::Child Archive::Child::getNext() const {
|
||||
size_t SpaceToSkip = sizeof(ArchiveMemberHeader) +
|
||||
ToHeader(Data.data())->getSize();
|
||||
|
@ -21,6 +21,8 @@
|
||||
using namespace llvm;
|
||||
using namespace object;
|
||||
|
||||
void ObjectFile::anchor() { }
|
||||
|
||||
ObjectFile::ObjectFile(unsigned int Type, MemoryBuffer *source, error_code &ec)
|
||||
: Binary(Type, source) {
|
||||
}
|
||||
|
14
lib/Support/IntrusiveRefCntPtr.cpp
Normal file
14
lib/Support/IntrusiveRefCntPtr.cpp
Normal file
@ -0,0 +1,14 @@
|
||||
//== IntrusiveRefCntPtr.cpp - Smart Refcounting Pointer ----------*- C++ -*-==//
|
||||
//
|
||||
// The LLVM Compiler Infrastructure
|
||||
//
|
||||
// This file is distributed under the University of Illinois Open Source
|
||||
// License. See LICENSE.TXT for details.
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
#include "llvm/ADT/IntrusiveRefCntPtr.h"
|
||||
|
||||
using namespace llvm;
|
||||
|
||||
void RefCountedBaseVPTR::anchor() { }
|
@ -81,6 +81,7 @@ StringRecTy StringRecTy::Shared;
|
||||
CodeRecTy CodeRecTy::Shared;
|
||||
DagRecTy DagRecTy::Shared;
|
||||
|
||||
void RecTy::anchor() { }
|
||||
void RecTy::dump() const { print(errs()); }
|
||||
|
||||
ListRecTy *RecTy::getListTy() {
|
||||
@ -444,13 +445,18 @@ RecTy *llvm::resolveTypes(RecTy *T1, RecTy *T2) {
|
||||
// Initializer implementations
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
void Init::anchor() { }
|
||||
void Init::dump() const { return print(errs()); }
|
||||
|
||||
void UnsetInit::anchor() { }
|
||||
|
||||
UnsetInit *UnsetInit::get() {
|
||||
static UnsetInit TheInit;
|
||||
return &TheInit;
|
||||
}
|
||||
|
||||
void BitInit::anchor() { }
|
||||
|
||||
BitInit *BitInit::get(bool V) {
|
||||
static BitInit True(true);
|
||||
static BitInit False(false);
|
||||
@ -565,6 +571,8 @@ IntInit::convertInitializerBitRange(const std::vector<unsigned> &Bits) const {
|
||||
return BitsInit::get(NewBits);
|
||||
}
|
||||
|
||||
void StringInit::anchor() { }
|
||||
|
||||
StringInit *StringInit::get(const std::string &V) {
|
||||
typedef StringMap<StringInit *> Pool;
|
||||
static Pool ThePool;
|
||||
@ -574,6 +582,8 @@ StringInit *StringInit::get(const std::string &V) {
|
||||
return I;
|
||||
}
|
||||
|
||||
void CodeInit::anchor() { }
|
||||
|
||||
CodeInit *CodeInit::get(const std::string &V) {
|
||||
typedef StringMap<CodeInit *> Pool;
|
||||
static Pool ThePool;
|
||||
|
15
lib/TableGen/TableGenAction.cpp
Normal file
15
lib/TableGen/TableGenAction.cpp
Normal file
@ -0,0 +1,15 @@
|
||||
//===- TableGenAction.cpp - defines TableGenAction --------------*- C++ -*-===//
|
||||
//
|
||||
// The LLVM Compiler Infrastructure
|
||||
//
|
||||
// This file is distributed under the University of Illinois Open Source
|
||||
// License. See LICENSE.TXT for details.
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
#include "llvm/TableGen/TableGenAction.h"
|
||||
|
||||
using namespace llvm;
|
||||
|
||||
void TableGenAction::anchor() { }
|
||||
|
@ -15,6 +15,8 @@
|
||||
#include "llvm/TableGen/Record.h"
|
||||
using namespace llvm;
|
||||
|
||||
void TableGenBackend::anchor() { }
|
||||
|
||||
void TableGenBackend::EmitSourceFileHeader(const std::string &Desc,
|
||||
raw_ostream &OS) const {
|
||||
OS << "//===- TableGen'erated file -------------------------------------*-"
|
||||
|
14
lib/Target/ARM/ARMMachineFunctionInfo.cpp
Normal file
14
lib/Target/ARM/ARMMachineFunctionInfo.cpp
Normal file
@ -0,0 +1,14 @@
|
||||
//====- ARMMachineFuctionInfo.cpp - ARM machine function info ---*- C++ -*-===//
|
||||
//
|
||||
// The LLVM Compiler Infrastructure
|
||||
//
|
||||
// This file is distributed under the University of Illinois Open Source
|
||||
// License. See LICENSE.TXT for details.
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
#include "ARMMachineFunctionInfo.h"
|
||||
|
||||
using namespace llvm;
|
||||
|
||||
void ARMFunctionInfo::anchor() { }
|
@ -25,6 +25,7 @@ namespace llvm {
|
||||
/// ARMFunctionInfo - This class is derived from MachineFunctionInfo and
|
||||
/// contains private ARM-specific information for each MachineFunction.
|
||||
class ARMFunctionInfo : public MachineFunctionInfo {
|
||||
virtual void anchor();
|
||||
|
||||
/// isThumb - True if this function is compiled under Thumb mode.
|
||||
/// Used to initialized Align, so must precede it.
|
||||
|
@ -16,6 +16,8 @@
|
||||
#include "ARMRegisterInfo.h"
|
||||
using namespace llvm;
|
||||
|
||||
void ARMRegisterInfo::anchor() { }
|
||||
|
||||
ARMRegisterInfo::ARMRegisterInfo(const ARMBaseInstrInfo &tii,
|
||||
const ARMSubtarget &sti)
|
||||
: ARMBaseRegisterInfo(tii, sti) {
|
||||
|
@ -24,6 +24,7 @@ namespace llvm {
|
||||
class Type;
|
||||
|
||||
struct ARMRegisterInfo : public ARMBaseRegisterInfo {
|
||||
virtual void anchor();
|
||||
public:
|
||||
ARMRegisterInfo(const ARMBaseInstrInfo &tii, const ARMSubtarget &STI);
|
||||
};
|
||||
|
@ -34,6 +34,7 @@ extern "C" void LLVMInitializeARMTarget() {
|
||||
RegisterTargetMachine<ThumbTargetMachine> Y(TheThumbTarget);
|
||||
}
|
||||
|
||||
|
||||
/// TargetMachine ctor - Create an ARM architecture model.
|
||||
///
|
||||
ARMBaseTargetMachine::ARMBaseTargetMachine(const Target &T, StringRef TT,
|
||||
@ -50,6 +51,8 @@ ARMBaseTargetMachine::ARMBaseTargetMachine(const Target &T, StringRef TT,
|
||||
this->Options.FloatABIType = FloatABI::Soft;
|
||||
}
|
||||
|
||||
void ARMTargetMachine::anchor() { }
|
||||
|
||||
ARMTargetMachine::ARMTargetMachine(const Target &T, StringRef TT,
|
||||
StringRef CPU, StringRef FS,
|
||||
const TargetOptions &Options,
|
||||
@ -74,6 +77,8 @@ ARMTargetMachine::ARMTargetMachine(const Target &T, StringRef TT,
|
||||
"support ARM mode execution!");
|
||||
}
|
||||
|
||||
void ThumbTargetMachine::anchor() { }
|
||||
|
||||
ThumbTargetMachine::ThumbTargetMachine(const Target &T, StringRef TT,
|
||||
StringRef CPU, StringRef FS,
|
||||
const TargetOptions &Options,
|
||||
|
@ -63,6 +63,7 @@ public:
|
||||
/// ARMTargetMachine - ARM target machine.
|
||||
///
|
||||
class ARMTargetMachine : public ARMBaseTargetMachine {
|
||||
virtual void anchor();
|
||||
ARMInstrInfo InstrInfo;
|
||||
const TargetData DataLayout; // Calculates type size & alignment
|
||||
ARMELFWriterInfo ELFWriterInfo;
|
||||
@ -103,6 +104,7 @@ class ARMTargetMachine : public ARMBaseTargetMachine {
|
||||
/// Thumb-1 and Thumb-2.
|
||||
///
|
||||
class ThumbTargetMachine : public ARMBaseTargetMachine {
|
||||
virtual void anchor();
|
||||
// Either Thumb1InstrInfo or Thumb2InstrInfo.
|
||||
OwningPtr<ARMBaseInstrInfo> InstrInfo;
|
||||
const TargetData DataLayout; // Calculates type size & alignment
|
||||
|
@ -48,6 +48,8 @@ static const char *const arm_asm_table[] = {
|
||||
0,0
|
||||
};
|
||||
|
||||
void ARMMCAsmInfoDarwin::anchor() { }
|
||||
|
||||
ARMMCAsmInfoDarwin::ARMMCAsmInfoDarwin() {
|
||||
AsmTransCBE = arm_asm_table;
|
||||
Data64bitsDirective = 0;
|
||||
@ -61,6 +63,8 @@ ARMMCAsmInfoDarwin::ARMMCAsmInfoDarwin() {
|
||||
ExceptionsType = ExceptionHandling::SjLj;
|
||||
}
|
||||
|
||||
void ARMELFMCAsmInfo::anchor() { }
|
||||
|
||||
ARMELFMCAsmInfo::ARMELFMCAsmInfo() {
|
||||
// ".comm align is in bytes but .align is pow-2."
|
||||
AlignmentIsInBytes = false;
|
||||
|
@ -18,11 +18,15 @@
|
||||
|
||||
namespace llvm {
|
||||
|
||||
struct ARMMCAsmInfoDarwin : public MCAsmInfoDarwin {
|
||||
class ARMMCAsmInfoDarwin : public MCAsmInfoDarwin {
|
||||
virtual void anchor();
|
||||
public:
|
||||
explicit ARMMCAsmInfoDarwin();
|
||||
};
|
||||
|
||||
struct ARMELFMCAsmInfo : public MCAsmInfo {
|
||||
class ARMELFMCAsmInfo : public MCAsmInfo {
|
||||
virtual void anchor();
|
||||
public:
|
||||
explicit ARMELFMCAsmInfo();
|
||||
};
|
||||
|
||||
|
@ -14,6 +14,8 @@
|
||||
#include "SPUMCAsmInfo.h"
|
||||
using namespace llvm;
|
||||
|
||||
void SPULinuxMCAsmInfo::anchor() { }
|
||||
|
||||
SPULinuxMCAsmInfo::SPULinuxMCAsmInfo(const Target &T, StringRef TT) {
|
||||
IsLittleEndian = false;
|
||||
|
||||
|
@ -20,7 +20,9 @@
|
||||
namespace llvm {
|
||||
class Target;
|
||||
|
||||
struct SPULinuxMCAsmInfo : public MCAsmInfo {
|
||||
class SPULinuxMCAsmInfo : public MCAsmInfo {
|
||||
virtual void anchor();
|
||||
public:
|
||||
explicit SPULinuxMCAsmInfo(const Target &T, StringRef TT);
|
||||
};
|
||||
} // namespace llvm
|
||||
|
14
lib/Target/CellSPU/SPUMachineFunction.cpp
Normal file
14
lib/Target/CellSPU/SPUMachineFunction.cpp
Normal file
@ -0,0 +1,14 @@
|
||||
//==-- SPUMachineFunctionInfo.cpp - Private data used for CellSPU -*- C++ -*-=//
|
||||
//
|
||||
// The LLVM Compiler Infrastructure
|
||||
//
|
||||
// This file is distributed under the University of Illinois Open Source
|
||||
// License. See LICENSE.TXT for details.
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
#include "SPUMachineFunction.h"
|
||||
|
||||
using namespace llvm;
|
||||
|
||||
void SPUFunctionInfo::anchor() { }
|
@ -21,7 +21,8 @@ namespace llvm {
|
||||
/// SPUFunctionInfo - Cell SPU target-specific information for each
|
||||
/// MachineFunction
|
||||
class SPUFunctionInfo : public MachineFunctionInfo {
|
||||
private:
|
||||
virtual void anchor();
|
||||
|
||||
/// UsesLR - Indicates whether LR is used in the current function.
|
||||
///
|
||||
bool UsesLR;
|
||||
|
14
lib/Target/MBlaze/MBlazeMachineFunction.cpp
Normal file
14
lib/Target/MBlaze/MBlazeMachineFunction.cpp
Normal file
@ -0,0 +1,14 @@
|
||||
//===-- MBlazeMachineFunctionInfo.cpp - Private data --------------*- C++ -*-=//
|
||||
//
|
||||
// The LLVM Compiler Infrastructure
|
||||
//
|
||||
// This file is distributed under the University of Illinois Open Source
|
||||
// License. See LICENSE.TXT for details.
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
#include "MBlazeMachineFunction.h"
|
||||
|
||||
using namespace llvm;
|
||||
|
||||
void MBlazeFunctionInfo::anchor() { }
|
@ -25,8 +25,8 @@ namespace llvm {
|
||||
/// MBlazeFunctionInfo - This class is derived from MachineFunction private
|
||||
/// MBlaze target-specific information for each MachineFunction.
|
||||
class MBlazeFunctionInfo : public MachineFunctionInfo {
|
||||
virtual void anchor();
|
||||
|
||||
private:
|
||||
/// Holds for each function where on the stack the Frame Pointer must be
|
||||
/// saved. This is used on Prologue and Epilogue to emit FP save/restore
|
||||
int FPStackOffset;
|
||||
|
@ -14,6 +14,8 @@
|
||||
#include "MBlazeMCAsmInfo.h"
|
||||
using namespace llvm;
|
||||
|
||||
void MBlazeMCAsmInfo::anchor() { }
|
||||
|
||||
MBlazeMCAsmInfo::MBlazeMCAsmInfo() {
|
||||
IsLittleEndian = false;
|
||||
StackGrowsUp = false;
|
||||
|
@ -21,6 +21,7 @@ namespace llvm {
|
||||
class Target;
|
||||
|
||||
class MBlazeMCAsmInfo : public MCAsmInfo {
|
||||
virtual void anchor();
|
||||
public:
|
||||
explicit MBlazeMCAsmInfo();
|
||||
};
|
||||
|
@ -14,6 +14,8 @@
|
||||
#include "MSP430MCAsmInfo.h"
|
||||
using namespace llvm;
|
||||
|
||||
void MSP430MCAsmInfo::anchor() { }
|
||||
|
||||
MSP430MCAsmInfo::MSP430MCAsmInfo(const Target &T, StringRef TT) {
|
||||
PointerSize = 2;
|
||||
|
||||
|
@ -20,7 +20,9 @@
|
||||
namespace llvm {
|
||||
class Target;
|
||||
|
||||
struct MSP430MCAsmInfo : public MCAsmInfo {
|
||||
class MSP430MCAsmInfo : public MCAsmInfo {
|
||||
virtual void anchor();
|
||||
public:
|
||||
explicit MSP430MCAsmInfo(const Target &T, StringRef TT);
|
||||
};
|
||||
|
||||
|
14
lib/Target/MSP430/MSP430MachineFunctionInfo.cpp
Normal file
14
lib/Target/MSP430/MSP430MachineFunctionInfo.cpp
Normal file
@ -0,0 +1,14 @@
|
||||
//==- MSP430MachineFuctionInfo.cpp - MSP430 machine function info -*- C++ -*-=//
|
||||
//
|
||||
// The LLVM Compiler Infrastructure
|
||||
//
|
||||
// This file is distributed under the University of Illinois Open Source
|
||||
// License. See LICENSE.TXT for details.
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
#include "MSP430MachineFunctionInfo.h"
|
||||
|
||||
using namespace llvm;
|
||||
|
||||
void MSP430MachineFunctionInfo::anchor() { }
|
@ -21,6 +21,8 @@ namespace llvm {
|
||||
/// MSP430MachineFunctionInfo - This class is derived from MachineFunction and
|
||||
/// contains private MSP430 target-specific information for each MachineFunction.
|
||||
class MSP430MachineFunctionInfo : public MachineFunctionInfo {
|
||||
virtual void anchor();
|
||||
|
||||
/// CalleeSavedFrameSize - Size of the callee-saved register portion of the
|
||||
/// stack frame in bytes.
|
||||
unsigned CalleeSavedFrameSize;
|
||||
|
@ -21,6 +21,8 @@
|
||||
|
||||
using namespace llvm;
|
||||
|
||||
void MSP430Subtarget::anchor() { }
|
||||
|
||||
MSP430Subtarget::MSP430Subtarget(const std::string &TT,
|
||||
const std::string &CPU,
|
||||
const std::string &FS) :
|
||||
|
@ -25,6 +25,7 @@ namespace llvm {
|
||||
class StringRef;
|
||||
|
||||
class MSP430Subtarget : public MSP430GenSubtargetInfo {
|
||||
virtual void anchor();
|
||||
bool ExtendedInsts;
|
||||
public:
|
||||
/// This constructor initializes the data members to match that
|
||||
|
@ -16,6 +16,8 @@
|
||||
|
||||
using namespace llvm;
|
||||
|
||||
void MipsMCAsmInfo::anchor() { }
|
||||
|
||||
MipsMCAsmInfo::MipsMCAsmInfo(const Target &T, StringRef TT) {
|
||||
Triple TheTriple(TT);
|
||||
if ((TheTriple.getArch() == Triple::mips) ||
|
||||
|
@ -21,6 +21,7 @@ namespace llvm {
|
||||
class Target;
|
||||
|
||||
class MipsMCAsmInfo : public MCAsmInfo {
|
||||
virtual void anchor();
|
||||
public:
|
||||
explicit MipsMCAsmInfo(const Target &T, StringRef TT);
|
||||
};
|
||||
|
14
lib/Target/Mips/MipsMachineFunction.cpp
Normal file
14
lib/Target/Mips/MipsMachineFunction.cpp
Normal file
@ -0,0 +1,14 @@
|
||||
//===-- MipsMachineFunctionInfo.cpp - Private data used for Mips --*- C++ -*-=//
|
||||
//
|
||||
// The LLVM Compiler Infrastructure
|
||||
//
|
||||
// This file is distributed under the University of Illinois Open Source
|
||||
// License. See LICENSE.TXT for details.
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
#include "MipsMachineFunction.h"
|
||||
|
||||
using namespace llvm;
|
||||
|
||||
void MipsFunctionInfo::anchor() { }
|
@ -25,8 +25,8 @@ namespace llvm {
|
||||
/// MipsFunctionInfo - This class is derived from MachineFunction private
|
||||
/// Mips target-specific information for each MachineFunction.
|
||||
class MipsFunctionInfo : public MachineFunctionInfo {
|
||||
virtual void anchor();
|
||||
|
||||
private:
|
||||
MachineFunction& MF;
|
||||
/// SRetReturnReg - Some subtargets require that sret lowering includes
|
||||
/// returning the value of the returned struct in a register. This field
|
||||
|
@ -21,6 +21,8 @@
|
||||
|
||||
using namespace llvm;
|
||||
|
||||
void MipsSubtarget::anchor() { }
|
||||
|
||||
MipsSubtarget::MipsSubtarget(const std::string &TT, const std::string &CPU,
|
||||
const std::string &FS, bool little) :
|
||||
MipsGenSubtargetInfo(TT, CPU, FS),
|
||||
|
@ -25,6 +25,7 @@ namespace llvm {
|
||||
class StringRef;
|
||||
|
||||
class MipsSubtarget : public MipsGenSubtargetInfo {
|
||||
virtual void anchor();
|
||||
|
||||
public:
|
||||
// NOTE: O64 will not be supported.
|
||||
|
@ -52,6 +52,8 @@ MipsTargetMachine(const Target &T, StringRef TT,
|
||||
TLInfo(*this), TSInfo(*this), JITInfo() {
|
||||
}
|
||||
|
||||
void MipsebTargetMachine::anchor() { }
|
||||
|
||||
MipsebTargetMachine::
|
||||
MipsebTargetMachine(const Target &T, StringRef TT,
|
||||
StringRef CPU, StringRef FS, const TargetOptions &Options,
|
||||
@ -59,6 +61,8 @@ MipsebTargetMachine(const Target &T, StringRef TT,
|
||||
CodeGenOpt::Level OL)
|
||||
: MipsTargetMachine(T, TT, CPU, FS, Options, RM, CM, OL, false) {}
|
||||
|
||||
void MipselTargetMachine::anchor() { }
|
||||
|
||||
MipselTargetMachine::
|
||||
MipselTargetMachine(const Target &T, StringRef TT,
|
||||
StringRef CPU, StringRef FS, const TargetOptions &Options,
|
||||
@ -66,6 +70,8 @@ MipselTargetMachine(const Target &T, StringRef TT,
|
||||
CodeGenOpt::Level OL)
|
||||
: MipsTargetMachine(T, TT, CPU, FS, Options, RM, CM, OL, true) {}
|
||||
|
||||
void Mips64ebTargetMachine::anchor() { }
|
||||
|
||||
Mips64ebTargetMachine::
|
||||
Mips64ebTargetMachine(const Target &T, StringRef TT,
|
||||
StringRef CPU, StringRef FS, const TargetOptions &Options,
|
||||
@ -73,6 +79,8 @@ Mips64ebTargetMachine(const Target &T, StringRef TT,
|
||||
CodeGenOpt::Level OL)
|
||||
: MipsTargetMachine(T, TT, CPU, FS, Options, RM, CM, OL, false) {}
|
||||
|
||||
void Mips64elTargetMachine::anchor() { }
|
||||
|
||||
Mips64elTargetMachine::
|
||||
Mips64elTargetMachine(const Target &T, StringRef TT,
|
||||
StringRef CPU, StringRef FS, const TargetOptions &Options,
|
||||
|
@ -80,6 +80,7 @@ namespace llvm {
|
||||
/// MipsebTargetMachine - Mips32 big endian target machine.
|
||||
///
|
||||
class MipsebTargetMachine : public MipsTargetMachine {
|
||||
virtual void anchor();
|
||||
public:
|
||||
MipsebTargetMachine(const Target &T, StringRef TT,
|
||||
StringRef CPU, StringRef FS, const TargetOptions &Options,
|
||||
@ -90,6 +91,7 @@ public:
|
||||
/// MipselTargetMachine - Mips32 little endian target machine.
|
||||
///
|
||||
class MipselTargetMachine : public MipsTargetMachine {
|
||||
virtual void anchor();
|
||||
public:
|
||||
MipselTargetMachine(const Target &T, StringRef TT,
|
||||
StringRef CPU, StringRef FS, const TargetOptions &Options,
|
||||
@ -100,6 +102,7 @@ public:
|
||||
/// Mips64ebTargetMachine - Mips64 big endian target machine.
|
||||
///
|
||||
class Mips64ebTargetMachine : public MipsTargetMachine {
|
||||
virtual void anchor();
|
||||
public:
|
||||
Mips64ebTargetMachine(const Target &T, StringRef TT,
|
||||
StringRef CPU, StringRef FS,
|
||||
@ -111,6 +114,7 @@ public:
|
||||
/// Mips64elTargetMachine - Mips64 little endian target machine.
|
||||
///
|
||||
class Mips64elTargetMachine : public MipsTargetMachine {
|
||||
virtual void anchor();
|
||||
public:
|
||||
Mips64elTargetMachine(const Target &T, StringRef TT,
|
||||
StringRef CPU, StringRef FS,
|
||||
|
@ -16,6 +16,8 @@
|
||||
|
||||
using namespace llvm;
|
||||
|
||||
void PTXMCAsmInfo::anchor() { }
|
||||
|
||||
PTXMCAsmInfo::PTXMCAsmInfo(const Target &T, const StringRef &TT) {
|
||||
Triple TheTriple(TT);
|
||||
if (TheTriple.getArch() == Triple::ptx64)
|
||||
|
@ -20,7 +20,9 @@ namespace llvm {
|
||||
class Target;
|
||||
class StringRef;
|
||||
|
||||
struct PTXMCAsmInfo : public MCAsmInfo {
|
||||
class PTXMCAsmInfo : public MCAsmInfo {
|
||||
virtual void anchor();
|
||||
public:
|
||||
explicit PTXMCAsmInfo(const Target &T, const StringRef &TT);
|
||||
};
|
||||
} // namespace llvm
|
||||
|
14
lib/Target/PTX/PTXMachineFunctionInfo.cpp
Normal file
14
lib/Target/PTX/PTXMachineFunctionInfo.cpp
Normal file
@ -0,0 +1,14 @@
|
||||
//===- PTXMachineFuctionInfo.cpp - PTX machine function info -----*- C++ -*-==//
|
||||
//
|
||||
// The LLVM Compiler Infrastructure
|
||||
//
|
||||
// This file is distributed under the University of Illinois Open Source
|
||||
// License. See LICENSE.TXT for details.
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
#include "PTXMachineFunctionInfo.h"
|
||||
|
||||
using namespace llvm;
|
||||
|
||||
void PTXMachineFunctionInfo::anchor() { }
|
@ -30,7 +30,7 @@ namespace llvm {
|
||||
/// contains private PTX target-specific information for each MachineFunction.
|
||||
///
|
||||
class PTXMachineFunctionInfo : public MachineFunctionInfo {
|
||||
private:
|
||||
virtual void anchor();
|
||||
bool IsKernel;
|
||||
DenseSet<unsigned> RegArgs;
|
||||
DenseSet<unsigned> RegRets;
|
||||
|
@ -22,6 +22,8 @@
|
||||
|
||||
using namespace llvm;
|
||||
|
||||
void PTXSubtarget::anchor() { }
|
||||
|
||||
PTXSubtarget::PTXSubtarget(const std::string &TT, const std::string &CPU,
|
||||
const std::string &FS, bool is64Bit)
|
||||
: PTXGenSubtargetInfo(TT, CPU, FS),
|
||||
|
@ -23,6 +23,7 @@ namespace llvm {
|
||||
class StringRef;
|
||||
|
||||
class PTXSubtarget : public PTXGenSubtargetInfo {
|
||||
virtual void anchor();
|
||||
public:
|
||||
|
||||
/**
|
||||
|
@ -85,6 +85,8 @@ PTXTargetMachine::PTXTargetMachine(const Target &T,
|
||||
TLInfo(*this) {
|
||||
}
|
||||
|
||||
void PTX32TargetMachine::anchor() { }
|
||||
|
||||
PTX32TargetMachine::PTX32TargetMachine(const Target &T, StringRef TT,
|
||||
StringRef CPU, StringRef FS,
|
||||
const TargetOptions &Options,
|
||||
@ -93,6 +95,8 @@ PTX32TargetMachine::PTX32TargetMachine(const Target &T, StringRef TT,
|
||||
: PTXTargetMachine(T, TT, CPU, FS, Options, RM, CM, OL, false) {
|
||||
}
|
||||
|
||||
void PTX64TargetMachine::anchor() { }
|
||||
|
||||
PTX64TargetMachine::PTX64TargetMachine(const Target &T, StringRef TT,
|
||||
StringRef CPU, StringRef FS,
|
||||
const TargetOptions &Options,
|
||||
|
@ -91,6 +91,7 @@ class PTXTargetMachine : public LLVMTargetMachine {
|
||||
|
||||
|
||||
class PTX32TargetMachine : public PTXTargetMachine {
|
||||
virtual void anchor();
|
||||
public:
|
||||
|
||||
PTX32TargetMachine(const Target &T, StringRef TT,
|
||||
@ -100,6 +101,7 @@ public:
|
||||
}; // class PTX32TargetMachine
|
||||
|
||||
class PTX64TargetMachine : public PTXTargetMachine {
|
||||
virtual void anchor();
|
||||
public:
|
||||
|
||||
PTX64TargetMachine(const Target &T, StringRef TT,
|
||||
|
@ -14,6 +14,8 @@
|
||||
#include "PPCMCAsmInfo.h"
|
||||
using namespace llvm;
|
||||
|
||||
void PPCMCAsmInfoDarwin::anchor() { }
|
||||
|
||||
PPCMCAsmInfoDarwin::PPCMCAsmInfoDarwin(bool is64Bit) {
|
||||
if (is64Bit)
|
||||
PointerSize = 8;
|
||||
@ -30,6 +32,8 @@ PPCMCAsmInfoDarwin::PPCMCAsmInfoDarwin(bool is64Bit) {
|
||||
SupportsDebugInformation= true; // Debug information.
|
||||
}
|
||||
|
||||
void PPCLinuxMCAsmInfo::anchor() { }
|
||||
|
||||
PPCLinuxMCAsmInfo::PPCLinuxMCAsmInfo(bool is64Bit) {
|
||||
if (is64Bit)
|
||||
PointerSize = 8;
|
||||
|
@ -18,11 +18,15 @@
|
||||
|
||||
namespace llvm {
|
||||
|
||||
struct PPCMCAsmInfoDarwin : public MCAsmInfoDarwin {
|
||||
class PPCMCAsmInfoDarwin : public MCAsmInfoDarwin {
|
||||
virtual void anchor();
|
||||
public:
|
||||
explicit PPCMCAsmInfoDarwin(bool is64Bit);
|
||||
};
|
||||
|
||||
struct PPCLinuxMCAsmInfo : public MCAsmInfo {
|
||||
class PPCLinuxMCAsmInfo : public MCAsmInfo {
|
||||
virtual void anchor();
|
||||
public:
|
||||
explicit PPCLinuxMCAsmInfo(bool is64Bit);
|
||||
};
|
||||
|
||||
|
15
lib/Target/PowerPC/PPCMachineFunctionInfo.cpp
Normal file
15
lib/Target/PowerPC/PPCMachineFunctionInfo.cpp
Normal file
@ -0,0 +1,15 @@
|
||||
//=-- PPCMachineFunctionInfo.cpp - Private data used for PowerPC --*- C++ -*-=//
|
||||
//
|
||||
// The LLVM Compiler Infrastructure
|
||||
//
|
||||
// This file is distributed under the University of Illinois Open Source
|
||||
// License. See LICENSE.TXT for details.
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
#include "PPCMachineFunctionInfo.h"
|
||||
|
||||
using namespace llvm;
|
||||
|
||||
void PPCFunctionInfo::anchor() { }
|
||||
|
@ -21,7 +21,8 @@ namespace llvm {
|
||||
/// PPCFunctionInfo - This class is derived from MachineFunction private
|
||||
/// PowerPC target-specific information for each MachineFunction.
|
||||
class PPCFunctionInfo : public MachineFunctionInfo {
|
||||
private:
|
||||
virtual void anchor();
|
||||
|
||||
/// FramePointerSaveIndex - Frame index of where the old frame pointer is
|
||||
/// stored. Also used as an anchor for instructions that need to be altered
|
||||
/// when using frame pointers (dyna_add, dyna_sub.)
|
||||
|
@ -44,6 +44,8 @@ PPCTargetMachine::PPCTargetMachine(const Target &T, StringRef TT,
|
||||
/// groups, which typically degrades performance.
|
||||
bool PPCTargetMachine::getEnableTailMergeDefault() const { return false; }
|
||||
|
||||
void PPC32TargetMachine::anchor() { }
|
||||
|
||||
PPC32TargetMachine::PPC32TargetMachine(const Target &T, StringRef TT,
|
||||
StringRef CPU, StringRef FS,
|
||||
const TargetOptions &Options,
|
||||
@ -52,6 +54,7 @@ PPC32TargetMachine::PPC32TargetMachine(const Target &T, StringRef TT,
|
||||
: PPCTargetMachine(T, TT, CPU, FS, Options, RM, CM, OL, false) {
|
||||
}
|
||||
|
||||
void PPC64TargetMachine::anchor() { }
|
||||
|
||||
PPC64TargetMachine::PPC64TargetMachine(const Target &T, StringRef TT,
|
||||
StringRef CPU, StringRef FS,
|
||||
|
@ -77,6 +77,7 @@ public:
|
||||
/// PPC32TargetMachine - PowerPC 32-bit target machine.
|
||||
///
|
||||
class PPC32TargetMachine : public PPCTargetMachine {
|
||||
virtual void anchor();
|
||||
public:
|
||||
PPC32TargetMachine(const Target &T, StringRef TT,
|
||||
StringRef CPU, StringRef FS, const TargetOptions &Options,
|
||||
@ -87,6 +88,7 @@ public:
|
||||
/// PPC64TargetMachine - PowerPC 64-bit target machine.
|
||||
///
|
||||
class PPC64TargetMachine : public PPCTargetMachine {
|
||||
virtual void anchor();
|
||||
public:
|
||||
PPC64TargetMachine(const Target &T, StringRef TT,
|
||||
StringRef CPU, StringRef FS, const TargetOptions &Options,
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user