Skip to content

Commit 84335cd

Browse files
authored
Merge pull request #61 from schweitzpgi/release_70
merge latest from llvm mirror - Release 70
2 parents b82965a + bb89c29 commit 84335cd

File tree

61 files changed

+2692
-434
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

61 files changed

+2692
-434
lines changed

include/llvm/DebugInfo/PDB/Native/GlobalsStream.h

-2
Original file line numberDiff line numberDiff line change
@@ -30,8 +30,6 @@ class GSIHashIterator
3030
GSIHashIterator, FixedStreamArrayIterator<PSHashRecord>,
3131
std::random_access_iterator_tag, const uint32_t> {
3232
public:
33-
GSIHashIterator() = default;
34-
3533
template <typename T>
3634
GSIHashIterator(T &&v)
3735
: GSIHashIterator::iterator_adaptor_base(std::forward<T &&>(v)) {}

include/llvm/DebugInfo/PDB/Native/ModuleDebugStream.h

+1-1
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ class ModuleDebugStreamRef {
4949
BinarySubstreamRef getC13LinesSubstream() const;
5050
BinarySubstreamRef getGlobalRefsSubstream() const;
5151

52-
ModuleDebugStreamRef &operator=(ModuleDebugStreamRef &&Other) = default;
52+
ModuleDebugStreamRef &operator=(ModuleDebugStreamRef &&Other) = delete;
5353

5454
iterator_range<DebugSubsectionIterator> subsections() const;
5555
codeview::DebugSubsectionArray getSubsectionsArray() const {

include/llvm/ExecutionEngine/Orc/Core.h

+1-1
Original file line numberDiff line numberDiff line change
@@ -126,7 +126,7 @@ class MaterializationResponsibility {
126126
public:
127127
MaterializationResponsibility(MaterializationResponsibility &&) = default;
128128
MaterializationResponsibility &
129-
operator=(MaterializationResponsibility &&) = default;
129+
operator=(MaterializationResponsibility &&) = delete;
130130

131131
/// Destruct a MaterializationResponsibility instance. In debug mode
132132
/// this asserts that all symbols being tracked have been either

include/llvm/ExecutionEngine/Orc/OrcRemoteTargetClient.h

+1-2
Original file line numberDiff line numberDiff line change
@@ -70,8 +70,7 @@ class OrcRemoteTargetClient
7070
RemoteRTDyldMemoryManager &
7171
operator=(const RemoteRTDyldMemoryManager &) = delete;
7272
RemoteRTDyldMemoryManager(RemoteRTDyldMemoryManager &&) = default;
73-
RemoteRTDyldMemoryManager &
74-
operator=(RemoteRTDyldMemoryManager &&) = default;
73+
RemoteRTDyldMemoryManager &operator=(RemoteRTDyldMemoryManager &&) = delete;
7574

7675
uint8_t *allocateCodeSection(uintptr_t Size, unsigned Alignment,
7776
unsigned SectionID,

include/llvm/MC/MCAsmBackend.h

+5
Original file line numberDiff line numberDiff line change
@@ -165,6 +165,11 @@ class MCAsmBackend {
165165
return 0;
166166
}
167167

168+
/// Check whether a given symbol has been flagged with MICROMIPS flag.
169+
virtual bool isMicroMips(const MCSymbol *Sym) const {
170+
return false;
171+
}
172+
168173
/// Handles all target related code padding when starting to write a new
169174
/// basic block to an object file.
170175
///

include/llvm/ProfileData/Coverage/CoverageMapping.h

-2
Original file line numberDiff line numberDiff line change
@@ -641,8 +641,6 @@ class LineCoverageIterator
641641
this->operator++();
642642
}
643643

644-
LineCoverageIterator &operator=(const LineCoverageIterator &R) = default;
645-
646644
bool operator==(const LineCoverageIterator &R) const {
647645
return &CD == &R.CD && Next == R.Next && Ended == R.Ended;
648646
}

include/llvm/Support/GenericDomTreeConstruction.h

+14
Original file line numberDiff line numberDiff line change
@@ -1186,6 +1186,20 @@ struct SemiNCAInfo {
11861186
<< '\t' << U << "\n");
11871187
LLVM_DEBUG(dbgs() << "\n");
11881188

1189+
// Recalculate the DominatorTree when the number of updates
1190+
// exceeds a threshold, which usually makes direct updating slower than
1191+
// recalculation. We select this threshold proportional to the
1192+
// size of the DominatorTree. The constant is selected
1193+
// by choosing the one with an acceptable performance on some real-world
1194+
// inputs.
1195+
1196+
// Make unittests of the incremental algorithm work
1197+
if (DT.DomTreeNodes.size() <= 100) {
1198+
if (NumLegalized > DT.DomTreeNodes.size())
1199+
CalculateFromScratch(DT, &BUI);
1200+
} else if (NumLegalized > DT.DomTreeNodes.size() / 40)
1201+
CalculateFromScratch(DT, &BUI);
1202+
11891203
// If the DominatorTree was recalculated at some point, stop the batch
11901204
// updates. Full recalculations ignore batch updates and look at the actual
11911205
// CFG.

include/llvm/Transforms/Utils/SSAUpdater.h

+4
Original file line numberDiff line numberDiff line change
@@ -76,6 +76,10 @@ class SSAUpdater {
7676
/// block.
7777
bool HasValueForBlock(BasicBlock *BB) const;
7878

79+
/// Return the value for the specified block if the SSAUpdater has one,
80+
/// otherwise return nullptr.
81+
Value *FindValueForBlock(BasicBlock *BB) const;
82+
7983
/// Construct SSA form, materializing a value that is live at the end
8084
/// of the specified block.
8185
Value *GetValueAtEndOfBlock(BasicBlock *BB);

include/llvm/Transforms/Utils/SSAUpdaterImpl.h

+3-4
Original file line numberDiff line numberDiff line change
@@ -357,10 +357,9 @@ class SSAUpdaterImpl {
357357
BBInfo *Info = *I;
358358

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

lib/Analysis/MemorySSA.cpp

-1
Original file line numberDiff line numberDiff line change
@@ -119,7 +119,6 @@ class MemoryLocOrCall {
119119
public:
120120
bool IsCall = false;
121121

122-
MemoryLocOrCall() = default;
123122
MemoryLocOrCall(MemoryUseOrDef *MUD)
124123
: MemoryLocOrCall(MUD->getMemoryInst()) {}
125124
MemoryLocOrCall(const MemoryUseOrDef *MUD)

lib/CodeGen/TargetLoweringObjectFileImpl.cpp

+3-2
Original file line numberDiff line numberDiff line change
@@ -1156,10 +1156,11 @@ MCSection *TargetLoweringObjectFileCOFF::SelectSectionForGlobal(
11561156
MCSymbol *Sym = TM.getSymbol(ComdatGV);
11571157
StringRef COMDATSymName = Sym->getName();
11581158

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

11641165
return getContext().getCOFFSection(Name, Characteristics, Kind,
11651166
COMDATSymName, Selection, UniqueID);

lib/ExecutionEngine/RuntimeDyld/RuntimeDyld.cpp

+1-1
Original file line numberDiff line numberDiff line change
@@ -275,7 +275,7 @@ RuntimeDyldImpl::loadObjectImpl(const object::ObjectFile &Obj) {
275275
uint64_t Size = I->getCommonSize();
276276
if (!CommonAlign)
277277
CommonAlign = Align;
278-
CommonSize += alignTo(CommonSize, Align) + Size;
278+
CommonSize = alignTo(CommonSize, Align) + Size;
279279
CommonSymbolsToAllocate.push_back(*I);
280280
}
281281
} else

lib/MC/MCExpr.cpp

+5
Original file line numberDiff line numberDiff line change
@@ -524,6 +524,11 @@ static void AttemptToFoldSymbolOffsetDifference(
524524
if (Asm->isThumbFunc(&SA))
525525
Addend |= 1;
526526

527+
// If symbol is labeled as micromips, we set low-bit to ensure
528+
// correct offset in .gcc_except_table
529+
if (Asm->getBackend().isMicroMips(&SA))
530+
Addend |= 1;
531+
527532
// Clear the symbol expr pointers to indicate we have folded these
528533
// operands.
529534
A = B = nullptr;

0 commit comments

Comments
 (0)