Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 0 additions & 2 deletions include/llvm/DebugInfo/PDB/Native/GlobalsStream.h
Original file line number Diff line number Diff line change
Expand Up @@ -30,8 +30,6 @@ class GSIHashIterator
GSIHashIterator, FixedStreamArrayIterator<PSHashRecord>,
std::random_access_iterator_tag, const uint32_t> {
public:
GSIHashIterator() = default;

template <typename T>
GSIHashIterator(T &&v)
: GSIHashIterator::iterator_adaptor_base(std::forward<T &&>(v)) {}
Expand Down
2 changes: 1 addition & 1 deletion include/llvm/DebugInfo/PDB/Native/ModuleDebugStream.h
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@ class ModuleDebugStreamRef {
BinarySubstreamRef getC13LinesSubstream() const;
BinarySubstreamRef getGlobalRefsSubstream() const;

ModuleDebugStreamRef &operator=(ModuleDebugStreamRef &&Other) = default;
ModuleDebugStreamRef &operator=(ModuleDebugStreamRef &&Other) = delete;

iterator_range<DebugSubsectionIterator> subsections() const;
codeview::DebugSubsectionArray getSubsectionsArray() const {
Expand Down
2 changes: 1 addition & 1 deletion include/llvm/ExecutionEngine/Orc/Core.h
Original file line number Diff line number Diff line change
Expand Up @@ -126,7 +126,7 @@ class MaterializationResponsibility {
public:
MaterializationResponsibility(MaterializationResponsibility &&) = default;
MaterializationResponsibility &
operator=(MaterializationResponsibility &&) = default;
operator=(MaterializationResponsibility &&) = delete;

/// Destruct a MaterializationResponsibility instance. In debug mode
/// this asserts that all symbols being tracked have been either
Expand Down
3 changes: 1 addition & 2 deletions include/llvm/ExecutionEngine/Orc/OrcRemoteTargetClient.h
Original file line number Diff line number Diff line change
Expand Up @@ -70,8 +70,7 @@ class OrcRemoteTargetClient
RemoteRTDyldMemoryManager &
operator=(const RemoteRTDyldMemoryManager &) = delete;
RemoteRTDyldMemoryManager(RemoteRTDyldMemoryManager &&) = default;
RemoteRTDyldMemoryManager &
operator=(RemoteRTDyldMemoryManager &&) = default;
RemoteRTDyldMemoryManager &operator=(RemoteRTDyldMemoryManager &&) = delete;

uint8_t *allocateCodeSection(uintptr_t Size, unsigned Alignment,
unsigned SectionID,
Expand Down
5 changes: 5 additions & 0 deletions include/llvm/MC/MCAsmBackend.h
Original file line number Diff line number Diff line change
Expand Up @@ -165,6 +165,11 @@ class MCAsmBackend {
return 0;
}

/// Check whether a given symbol has been flagged with MICROMIPS flag.
virtual bool isMicroMips(const MCSymbol *Sym) const {
return false;
}

/// Handles all target related code padding when starting to write a new
/// basic block to an object file.
///
Expand Down
2 changes: 0 additions & 2 deletions include/llvm/ProfileData/Coverage/CoverageMapping.h
Original file line number Diff line number Diff line change
Expand Up @@ -641,8 +641,6 @@ class LineCoverageIterator
this->operator++();
}

LineCoverageIterator &operator=(const LineCoverageIterator &R) = default;

bool operator==(const LineCoverageIterator &R) const {
return &CD == &R.CD && Next == R.Next && Ended == R.Ended;
}
Expand Down
14 changes: 14 additions & 0 deletions include/llvm/Support/GenericDomTreeConstruction.h
Original file line number Diff line number Diff line change
Expand Up @@ -1186,6 +1186,20 @@ struct SemiNCAInfo {
<< '\t' << U << "\n");
LLVM_DEBUG(dbgs() << "\n");

// Recalculate the DominatorTree when the number of updates
// exceeds a threshold, which usually makes direct updating slower than
// recalculation. We select this threshold proportional to the
// size of the DominatorTree. The constant is selected
// by choosing the one with an acceptable performance on some real-world
// inputs.

// Make unittests of the incremental algorithm work
if (DT.DomTreeNodes.size() <= 100) {
if (NumLegalized > DT.DomTreeNodes.size())
CalculateFromScratch(DT, &BUI);
} else if (NumLegalized > DT.DomTreeNodes.size() / 40)
CalculateFromScratch(DT, &BUI);

// If the DominatorTree was recalculated at some point, stop the batch
// updates. Full recalculations ignore batch updates and look at the actual
// CFG.
Expand Down
4 changes: 4 additions & 0 deletions include/llvm/Transforms/Utils/SSAUpdater.h
Original file line number Diff line number Diff line change
Expand Up @@ -76,6 +76,10 @@ class SSAUpdater {
/// block.
bool HasValueForBlock(BasicBlock *BB) const;

/// Return the value for the specified block if the SSAUpdater has one,
/// otherwise return nullptr.
Value *FindValueForBlock(BasicBlock *BB) const;

/// Construct SSA form, materializing a value that is live at the end
/// of the specified block.
Value *GetValueAtEndOfBlock(BasicBlock *BB);
Expand Down
7 changes: 3 additions & 4 deletions include/llvm/Transforms/Utils/SSAUpdaterImpl.h
Original file line number Diff line number Diff line change
Expand Up @@ -357,10 +357,9 @@ class SSAUpdaterImpl {
BBInfo *Info = *I;

if (Info->DefBB != Info) {
// Record the available value at join nodes to speed up subsequent
// uses of this SSAUpdater for the same value.
if (Info->NumPreds > 1)
(*AvailableVals)[Info->BB] = Info->DefBB->AvailableVal;
// Record the available value to speed up subsequent uses of this
// SSAUpdater for the same value.
(*AvailableVals)[Info->BB] = Info->DefBB->AvailableVal;
continue;
}

Expand Down
1 change: 0 additions & 1 deletion lib/Analysis/MemorySSA.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -119,7 +119,6 @@ class MemoryLocOrCall {
public:
bool IsCall = false;

MemoryLocOrCall() = default;
MemoryLocOrCall(MemoryUseOrDef *MUD)
: MemoryLocOrCall(MUD->getMemoryInst()) {}
MemoryLocOrCall(const MemoryUseOrDef *MUD)
Expand Down
5 changes: 3 additions & 2 deletions lib/CodeGen/TargetLoweringObjectFileImpl.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1156,10 +1156,11 @@ MCSection *TargetLoweringObjectFileCOFF::SelectSectionForGlobal(
MCSymbol *Sym = TM.getSymbol(ComdatGV);
StringRef COMDATSymName = Sym->getName();

// Append "$symbol" to the section name when targetting mingw. The ld.bfd
// Append "$symbol" to the section name *before* IR-level mangling is
// applied when targetting mingw. This is what GCC does, and the ld.bfd
// COFF linker will not properly handle comdats otherwise.
if (getTargetTriple().isWindowsGNUEnvironment())
raw_svector_ostream(Name) << '$' << COMDATSymName;
raw_svector_ostream(Name) << '$' << ComdatGV->getName();

return getContext().getCOFFSection(Name, Characteristics, Kind,
COMDATSymName, Selection, UniqueID);
Expand Down
2 changes: 1 addition & 1 deletion lib/ExecutionEngine/RuntimeDyld/RuntimeDyld.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -275,7 +275,7 @@ RuntimeDyldImpl::loadObjectImpl(const object::ObjectFile &Obj) {
uint64_t Size = I->getCommonSize();
if (!CommonAlign)
CommonAlign = Align;
CommonSize += alignTo(CommonSize, Align) + Size;
CommonSize = alignTo(CommonSize, Align) + Size;
CommonSymbolsToAllocate.push_back(*I);
}
} else
Expand Down
5 changes: 5 additions & 0 deletions lib/MC/MCExpr.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -524,6 +524,11 @@ static void AttemptToFoldSymbolOffsetDifference(
if (Asm->isThumbFunc(&SA))
Addend |= 1;

// If symbol is labeled as micromips, we set low-bit to ensure
// correct offset in .gcc_except_table
if (Asm->getBackend().isMicroMips(&SA))
Addend |= 1;

// Clear the symbol expr pointers to indicate we have folded these
// operands.
A = B = nullptr;
Expand Down
Loading