forked from OSchip/llvm-project
parent
72e03fd917
commit
07609eab0f
|
@ -54,7 +54,7 @@ class GlobalsAAResult : public AAResultBase<GlobalsAAResult> {
|
|||
/// ID that is only useful for comparing for equality (are two functions
|
||||
/// in the same SCC or not?)
|
||||
DenseMap<const Function *, unsigned> FunctionToSCCMap;
|
||||
|
||||
|
||||
/// Handle to clear this analysis on deletion of values.
|
||||
struct DeletionCallbackHandle final : CallbackVH {
|
||||
GlobalsAAResult *GAR;
|
||||
|
@ -109,7 +109,7 @@ private:
|
|||
GlobalValue *OkayStoreDest = nullptr);
|
||||
bool AnalyzeIndirectGlobalMemory(GlobalValue *GV);
|
||||
void CollectSCCMembership(CallGraph &CG);
|
||||
|
||||
|
||||
bool isNonEscapingGlobalNoAlias(const GlobalValue *GV, const Value *V);
|
||||
ModRefInfo getModRefInfoForArgument(ImmutableCallSite CS,
|
||||
const GlobalValue *GV);
|
||||
|
|
|
@ -161,9 +161,9 @@ public:
|
|||
}
|
||||
|
||||
unsigned CreateReg(MVT VT);
|
||||
|
||||
|
||||
unsigned CreateRegs(Type *Ty);
|
||||
|
||||
|
||||
unsigned InitializeRegForValue(const Value *V) {
|
||||
// Tokens never live in vregs.
|
||||
if (V->getType()->isTokenTy())
|
||||
|
|
|
@ -162,7 +162,7 @@ public:
|
|||
/// Objects are owned internally; No caller should attempt to delete the
|
||||
/// returned objects.
|
||||
GCStrategy *getGCStrategy(const StringRef Name);
|
||||
|
||||
|
||||
/// List of per function info objects. In theory, Each of these
|
||||
/// may be associated with a different GC.
|
||||
typedef std::vector<std::unique_ptr<GCFunctionInfo>> FuncInfoVec;
|
||||
|
|
|
@ -46,13 +46,12 @@ public:
|
|||
///
|
||||
Type *getType() const { return Ty; }
|
||||
|
||||
|
||||
/// getRelocationInfo - This method classifies the entry according to
|
||||
/// whether or not it may generate a relocation entry. This must be
|
||||
/// conservative, so if it might codegen to a relocatable entry, it should say
|
||||
/// so. The return values are the same as Constant::getRelocationInfo().
|
||||
virtual unsigned getRelocationInfo() const = 0;
|
||||
|
||||
|
||||
virtual int getExistingMachineCPValue(MachineConstantPool *CP,
|
||||
unsigned Alignment) = 0;
|
||||
|
||||
|
@ -67,7 +66,6 @@ inline raw_ostream &operator<<(raw_ostream &OS,
|
|||
V.print(OS);
|
||||
return OS;
|
||||
}
|
||||
|
||||
|
||||
/// This class is a data container for one entry in a MachineConstantPool.
|
||||
/// It contains a pointer to the value and an offset from the start of
|
||||
|
@ -107,7 +105,7 @@ public:
|
|||
}
|
||||
|
||||
Type *getType() const;
|
||||
|
||||
|
||||
/// getRelocationInfo - This method classifies the entry according to
|
||||
/// whether or not it may generate a relocation entry. This must be
|
||||
/// conservative, so if it might codegen to a relocatable entry, it should say
|
||||
|
@ -123,7 +121,7 @@ public:
|
|||
|
||||
SectionKind getSectionKind(const DataLayout *DL) const;
|
||||
};
|
||||
|
||||
|
||||
/// The MachineConstantPool class keeps track of constants referenced by a
|
||||
/// function which must be spilled to memory. This is used for constants which
|
||||
/// are unable to be used directly as operands to instructions, which typically
|
||||
|
@ -148,11 +146,11 @@ public:
|
|||
explicit MachineConstantPool(const DataLayout &DL)
|
||||
: PoolAlignment(1), DL(DL) {}
|
||||
~MachineConstantPool();
|
||||
|
||||
|
||||
/// getConstantPoolAlignment - Return the alignment required by
|
||||
/// the whole constant pool, of which the first element must be aligned.
|
||||
unsigned getConstantPoolAlignment() const { return PoolAlignment; }
|
||||
|
||||
|
||||
/// getConstantPoolIndex - Create a new entry in the constant pool or return
|
||||
/// an existing one. User must specify the minimum required alignment for
|
||||
/// the object.
|
||||
|
|
|
@ -103,7 +103,7 @@ class MachineFunction {
|
|||
|
||||
// Keep track of constants which are spilled to memory
|
||||
MachineConstantPool *ConstantPool;
|
||||
|
||||
|
||||
// Keep track of jump tables for switch instructions
|
||||
MachineJumpTableInfo *JumpTableInfo;
|
||||
|
||||
|
@ -132,7 +132,7 @@ class MachineFunction {
|
|||
/// this translation unit.
|
||||
///
|
||||
unsigned FunctionNumber;
|
||||
|
||||
|
||||
/// Alignment - The alignment of the function.
|
||||
unsigned Alignment;
|
||||
|
||||
|
@ -215,7 +215,6 @@ public:
|
|||
/// does already exist, allocate one.
|
||||
MachineJumpTableInfo *getOrCreateJumpTableInfo(unsigned JTEntryKind);
|
||||
|
||||
|
||||
/// getConstantPool - Return the constant pool object for the current
|
||||
/// function.
|
||||
///
|
||||
|
@ -290,14 +289,14 @@ public:
|
|||
/// getNumBlockIDs - Return the number of MBB ID's allocated.
|
||||
///
|
||||
unsigned getNumBlockIDs() const { return (unsigned)MBBNumbering.size(); }
|
||||
|
||||
|
||||
/// RenumberBlocks - This discards all of the MachineBasicBlock numbers and
|
||||
/// recomputes them. This guarantees that the MBB numbers are sequential,
|
||||
/// dense, and match the ordering of the blocks within the function. If a
|
||||
/// specific MachineBasicBlock is specified, only that block and those after
|
||||
/// it are renumbered.
|
||||
void RenumberBlocks(MachineBasicBlock *MBBFrom = nullptr);
|
||||
|
||||
|
||||
/// print - Print out the MachineFunction in a format suitable for debugging
|
||||
/// to the specified stream.
|
||||
///
|
||||
|
@ -436,7 +435,7 @@ public:
|
|||
unsigned base_alignment,
|
||||
const AAMDNodes &AAInfo = AAMDNodes(),
|
||||
const MDNode *Ranges = nullptr);
|
||||
|
||||
|
||||
/// getMachineMemOperand - Allocate a new MachineMemOperand by copying
|
||||
/// an existing one, adjusting by an offset and using the given size.
|
||||
/// MachineMemOperands are owned by the MachineFunction and need not be
|
||||
|
@ -492,13 +491,13 @@ public:
|
|||
//===--------------------------------------------------------------------===//
|
||||
// Label Manipulation.
|
||||
//
|
||||
|
||||
|
||||
/// getJTISymbol - Return the MCSymbol for the specified non-empty jump table.
|
||||
/// If isLinkerPrivate is specified, an 'l' label is returned, otherwise a
|
||||
/// normal 'L' label is returned.
|
||||
MCSymbol *getJTISymbol(unsigned JTI, MCContext &Ctx,
|
||||
bool isLinkerPrivate = false) const;
|
||||
|
||||
|
||||
/// getPICBaseSymbol - Return a function-local symbol to represent the PIC
|
||||
/// base.
|
||||
MCSymbol *getPICBaseSymbol() const;
|
||||
|
|
|
@ -28,7 +28,7 @@ namespace llvm {
|
|||
void finalizeBundle(MachineBasicBlock &MBB,
|
||||
MachineBasicBlock::instr_iterator FirstMI,
|
||||
MachineBasicBlock::instr_iterator LastMI);
|
||||
|
||||
|
||||
/// finalizeBundle - Same functionality as the previous finalizeBundle except
|
||||
/// the last instruction in the bundle is not provided as an input. This is
|
||||
/// used in cases where bundles are pre-determined by marking instructions
|
||||
|
|
|
@ -528,7 +528,7 @@ public:
|
|||
/// apply sub registers to ToReg in order to obtain a final/proper physical
|
||||
/// register.
|
||||
void replaceRegWith(unsigned FromReg, unsigned ToReg);
|
||||
|
||||
|
||||
/// getVRegDef - Return the machine instr that defines the specified virtual
|
||||
/// register or null if none is found. This assumes that the code is in SSA
|
||||
/// form, so there should only be one definition.
|
||||
|
|
|
@ -87,7 +87,7 @@ class MVT {
|
|||
v8i64 = 40, // 8 x i64
|
||||
v16i64 = 41, // 16 x i64
|
||||
v1i128 = 42, // 1 x i128
|
||||
|
||||
|
||||
FIRST_INTEGER_VECTOR_VALUETYPE = v2i1,
|
||||
LAST_INTEGER_VECTOR_VALUETYPE = v1i128,
|
||||
|
||||
|
|
|
@ -38,7 +38,6 @@ public:
|
|||
Registry.Add(this);
|
||||
}
|
||||
~RegisterRegAlloc() { Registry.Remove(this); }
|
||||
|
||||
|
||||
// Accessors.
|
||||
//
|
||||
|
@ -57,7 +56,6 @@ public:
|
|||
static void setListener(MachinePassRegistryListener *L) {
|
||||
Registry.setListener(L);
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
} // end namespace llvm
|
||||
|
|
|
@ -169,10 +169,10 @@ private:
|
|||
/// Processes the current instruction and fill the KillRegUnits and
|
||||
/// DefRegUnits bit vectors.
|
||||
void determineKillsAndDefs();
|
||||
|
||||
|
||||
/// Add all Reg Units that Reg contains to BV.
|
||||
void addRegUnits(BitVector &BV, unsigned Reg);
|
||||
|
||||
|
||||
/// Return the candidate register that is unused for the longest after
|
||||
/// StartMI. UseMI is set to the instruction where the search stopped.
|
||||
///
|
||||
|
|
|
@ -333,7 +333,7 @@ private:
|
|||
bool NoInfs : 1;
|
||||
bool NoSignedZeros : 1;
|
||||
bool AllowReciprocal : 1;
|
||||
|
||||
|
||||
public:
|
||||
/// Default constructor turns off all optimization flags.
|
||||
SDNodeFlags() {
|
||||
|
@ -346,7 +346,7 @@ public:
|
|||
NoSignedZeros = false;
|
||||
AllowReciprocal = false;
|
||||
}
|
||||
|
||||
|
||||
// These are mutators for each flag.
|
||||
void setNoUnsignedWrap(bool b) { NoUnsignedWrap = b; }
|
||||
void setNoSignedWrap(bool b) { NoSignedWrap = b; }
|
||||
|
@ -356,7 +356,7 @@ public:
|
|||
void setNoInfs(bool b) { NoInfs = b; }
|
||||
void setNoSignedZeros(bool b) { NoSignedZeros = b; }
|
||||
void setAllowReciprocal(bool b) { AllowReciprocal = b; }
|
||||
|
||||
|
||||
// These are accessors for each flag.
|
||||
bool hasNoUnsignedWrap() const { return NoUnsignedWrap; }
|
||||
bool hasNoSignedWrap() const { return NoSignedWrap; }
|
||||
|
@ -366,7 +366,7 @@ public:
|
|||
bool hasNoInfs() const { return NoInfs; }
|
||||
bool hasNoSignedZeros() const { return NoSignedZeros; }
|
||||
bool hasAllowReciprocal() const { return AllowReciprocal; }
|
||||
|
||||
|
||||
/// Return a raw encoding of the flags.
|
||||
/// This function should only be used to add data to the NodeID value.
|
||||
unsigned getRawFlags() const {
|
||||
|
@ -704,7 +704,7 @@ public:
|
|||
/// This could be defined as a virtual function and implemented more simply
|
||||
/// and directly, but it is not to avoid creating a vtable for this class.
|
||||
const SDNodeFlags *getFlags() const;
|
||||
|
||||
|
||||
/// Return the number of values defined/returned by this operator.
|
||||
unsigned getNumValues() const { return NumValues; }
|
||||
|
||||
|
|
|
@ -632,7 +632,7 @@ private:
|
|||
unsigned Reg;
|
||||
const MCRegisterInfo *MCRI;
|
||||
bool IncludeSelf;
|
||||
|
||||
|
||||
MCRegUnitIterator RI;
|
||||
MCRegUnitRootIterator RRI;
|
||||
MCSuperRegIterator SI;
|
||||
|
|
|
@ -183,7 +183,7 @@ struct MCSchedModel {
|
|||
// takes to recover from a branch misprediction.
|
||||
unsigned MispredictPenalty;
|
||||
static const unsigned DefaultMispredictPenalty = 10;
|
||||
|
||||
|
||||
bool PostRAScheduler; // default value is false
|
||||
|
||||
bool CompleteModel;
|
||||
|
|
|
@ -116,7 +116,7 @@ public:
|
|||
bool operator==(const MachORebaseEntry &) const;
|
||||
|
||||
void moveNext();
|
||||
|
||||
|
||||
private:
|
||||
friend class MachOObjectFile;
|
||||
void moveToFirst();
|
||||
|
@ -521,4 +521,3 @@ inline const ObjectFile *DiceRef::getObjectFile() const {
|
|||
}
|
||||
|
||||
#endif
|
||||
|
||||
|
|
|
@ -91,7 +91,7 @@ public:
|
|||
/// isCFGOnlyPass - return true if this pass only looks at the CFG for the
|
||||
/// function.
|
||||
bool isCFGOnlyPass() const { return IsCFGOnlyPass; }
|
||||
|
||||
|
||||
/// getNormalCtor - Return a pointer to a function, that when called, creates
|
||||
/// an instance of the pass and returns it. This pointer may be null if there
|
||||
/// is no default constructor for the pass.
|
||||
|
|
|
@ -150,7 +150,7 @@ public:
|
|||
virtual bool enableShrinkWrapping(const MachineFunction &MF) const {
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
/// emitProlog/emitEpilog - These methods insert prolog and epilog code into
|
||||
/// the function.
|
||||
virtual void emitPrologue(MachineFunction &MF,
|
||||
|
|
|
@ -885,7 +885,7 @@ public:
|
|||
bool allowsMemoryAccess(LLVMContext &Context, const DataLayout &DL, EVT VT,
|
||||
unsigned AddrSpace = 0, unsigned Alignment = 1,
|
||||
bool *Fast = nullptr) const;
|
||||
|
||||
|
||||
/// Returns the target specific optimal type for load and store operations as
|
||||
/// a result of memset, memcpy, and memmove lowering.
|
||||
///
|
||||
|
|
|
@ -204,7 +204,7 @@ namespace llvm {
|
|||
|
||||
/// This class encapsulates options for reciprocal-estimate code generation.
|
||||
TargetRecip Reciprocals;
|
||||
|
||||
|
||||
/// JTType - This flag specifies the type of jump-instruction table to
|
||||
/// create for functions that have the jumptable attribute.
|
||||
JumpTable::JumpTableType JTType;
|
||||
|
|
|
@ -31,7 +31,7 @@ public:
|
|||
/// Initialize all or part of the operations from command-line options or
|
||||
/// a front end.
|
||||
TargetRecip(const std::vector<std::string> &Args);
|
||||
|
||||
|
||||
/// Set whether a particular reciprocal operation is enabled and how many
|
||||
/// refinement steps are needed when using it. Use "all" to set enablement
|
||||
/// and refinement steps for all operations.
|
||||
|
@ -52,14 +52,14 @@ private:
|
|||
enum {
|
||||
Uninitialized = -1
|
||||
};
|
||||
|
||||
|
||||
struct RecipParams {
|
||||
int8_t Enabled;
|
||||
int8_t RefinementSteps;
|
||||
|
||||
|
||||
RecipParams() : Enabled(Uninitialized), RefinementSteps(Uninitialized) {}
|
||||
};
|
||||
|
||||
|
||||
std::map<StringRef, RecipParams> RecipMap;
|
||||
typedef std::map<StringRef, RecipParams>::iterator RecipIter;
|
||||
typedef std::map<StringRef, RecipParams>::const_iterator ConstRecipIter;
|
||||
|
|
Loading…
Reference in New Issue