1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-19 11:02:59 +02:00

Reverts r265219.

Unintentionally commited... time to call the day off!

From: Mehdi Amini <mehdi.amini@apple.com>
llvm-svn: 265221
This commit is contained in:
Mehdi Amini 2016-04-02 05:35:03 +00:00
parent 2911e14353
commit 35178af5c9

View File

@ -2272,7 +2272,7 @@ static void WriteValueSymbolTable(
BitstreamWriter &Stream, uint64_t VSTOffsetPlaceholder = 0,
uint64_t BitcodeStartBit = 0,
DenseMap<const Function *, std::unique_ptr<GlobalValueInfo>>
*GlobalValueIndex = nullptr) {
*FunctionIndex = nullptr) {
if (VST.empty()) {
// WriteValueSymbolTableForwardDecl should have returned early as
// well. Ensure this handling remains in sync by asserting that
@ -2361,13 +2361,13 @@ static void WriteValueSymbolTable(
// Must be the module-level VST, where we pass in the Index and
// have a VSTOffsetPlaceholder. The function-level VST should not
// contain any Function symbols.
assert(GlobalValueIndex);
assert(FunctionIndex);
assert(VSTOffsetPlaceholder > 0);
// Save the word offset of the function (from the start of the
// actual bitcode written to the stream).
uint64_t BitcodeIndex =
(*GlobalValueIndex)[F]->bitcodeIndex() - BitcodeStartBit;
(*FunctionIndex)[F]->bitcodeIndex() - BitcodeStartBit;
assert((BitcodeIndex & 31) == 0 && "function block not 32-bit aligned");
NameVals.push_back(BitcodeIndex / 32);
@ -2529,7 +2529,7 @@ static void findRefEdges(const User *CurUser, const ValueEnumerator &VE,
static void WriteFunction(
const Function &F, const Module *M, ValueEnumerator &VE,
BitstreamWriter &Stream,
DenseMap<const Function *, std::unique_ptr<GlobalValueInfo>> &GlobalValueIndex,
DenseMap<const Function *, std::unique_ptr<GlobalValueInfo>> &FunctionIndex,
bool EmitSummaryIndex) {
// Save the bitcode index of the start of this function block for recording
// in the VST.
@ -2633,7 +2633,7 @@ static void WriteFunction(
FuncSummary->addCallGraphEdges(CallGraphEdges);
FuncSummary->addRefEdges(RefEdges);
}
GlobalValueIndex[&F] =
FunctionIndex[&F] =
llvm::make_unique<GlobalValueInfo>(BitcodeIndex, std::move(FuncSummary));
// Emit names for all the instructions etc.
@ -2959,7 +2959,7 @@ static void WriteModuleLevelReferences(const GlobalVariable &V,
/// Emit the per-module summary section alongside the rest of
/// the module's bitcode.
static void WritePerModuleGlobalValueSummary(
DenseMap<const Function *, std::unique_ptr<GlobalValueInfo>> &GlobalValueIndex,
DenseMap<const Function *, std::unique_ptr<GlobalValueInfo>> &FunctionIndex,
const Module *M, const ValueEnumerator &VE, BitstreamWriter &Stream) {
if (M->empty())
return;
@ -3000,7 +3000,7 @@ static void WritePerModuleGlobalValueSummary(
unsigned FSModRefsAbbrev = Stream.EmitAbbrev(Abbv);
SmallVector<uint64_t, 64> NameVals;
// Iterate over the list of functions instead of the GlobalValueIndex map to
// Iterate over the list of functions instead of the FunctionIndex map to
// ensure the ordering is stable.
for (const Function &F : *M) {
if (F.isDeclaration())
@ -3010,10 +3010,10 @@ static void WritePerModuleGlobalValueSummary(
if (!F.hasName())
continue;
assert(GlobalValueIndex.count(&F) == 1);
assert(FunctionIndex.count(&F) == 1);
WritePerModuleFunctionSummaryRecord(
NameVals, cast<FunctionSummary>(GlobalValueIndex[&F]->summary()),
NameVals, cast<FunctionSummary>(FunctionIndex[&F]->summary()),
VE.getValueID(M->getValueSymbolTable().lookup(F.getName())),
FSCallsAbbrev, FSCallsProfileAbbrev, Stream, F);
}
@ -3025,9 +3025,9 @@ static void WritePerModuleGlobalValueSummary(
if (!F || F->isDeclaration())
continue;
assert(GlobalValueIndex.count(F) == 1);
assert(FunctionIndex.count(F) == 1);
FunctionSummary *FS =
cast<FunctionSummary>(GlobalValueIndex[F]->summary());
cast<FunctionSummary>(FunctionIndex[F]->summary());
// Add the alias to the reference list of aliasee function.
FS->addRefEdge(
VE.getValueID(M->getValueSymbolTable().lookup(A.getName())));
@ -3278,18 +3278,18 @@ static void WriteModule(const Module *M, BitstreamWriter &Stream,
WriteOperandBundleTags(M, Stream);
// Emit function bodies.
DenseMap<const Function *, std::unique_ptr<GlobalValueInfo>> GlobalValueIndex;
DenseMap<const Function *, std::unique_ptr<GlobalValueInfo>> FunctionIndex;
for (Module::const_iterator F = M->begin(), E = M->end(); F != E; ++F)
if (!F->isDeclaration())
WriteFunction(*F, M, VE, Stream, GlobalValueIndex, EmitSummaryIndex);
WriteFunction(*F, M, VE, Stream, FunctionIndex, EmitSummaryIndex);
// Need to write after the above call to WriteFunction which populates
// the summary information in the index.
if (EmitSummaryIndex)
WritePerModuleGlobalValueSummary(GlobalValueIndex, M, VE, Stream);
WritePerModuleGlobalValueSummary(FunctionIndex, M, VE, Stream);
WriteValueSymbolTable(M->getValueSymbolTable(), VE, Stream,
VSTOffsetPlaceholder, BitcodeStartBit, &GlobalValueIndex);
VSTOffsetPlaceholder, BitcodeStartBit, &FunctionIndex);
if (GenerateHash) {
writeModuleHash(Stream, Buffer, BlockStartPos);