From 2c93acdfbf4a74ff1dba1b6ebcd50b6735a26a16 Mon Sep 17 00:00:00 2001 From: Ulrich Weigand Date: Mon, 12 Nov 2012 19:13:24 +0000 Subject: Make TOC order deterministic by using MapVector instead of DenseMap. llvm-svn: 167737 --- llvm/lib/Target/PowerPC/PPCAsmPrinter.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'llvm/lib/Target') diff --git a/llvm/lib/Target/PowerPC/PPCAsmPrinter.cpp b/llvm/lib/Target/PowerPC/PPCAsmPrinter.cpp index 4387730fcc1..15d690bd897 100644 --- a/llvm/lib/Target/PowerPC/PPCAsmPrinter.cpp +++ b/llvm/lib/Target/PowerPC/PPCAsmPrinter.cpp @@ -54,12 +54,13 @@ #include "llvm/Support/ELF.h" #include "llvm/ADT/StringExtras.h" #include "llvm/ADT/SmallString.h" +#include "llvm/ADT/MapVector.h" using namespace llvm; namespace { class PPCAsmPrinter : public AsmPrinter { protected: - DenseMap TOC; + MapVector TOC; const PPCSubtarget &Subtarget; uint64_t TOCLabelID; public: @@ -465,8 +466,7 @@ bool PPCLinuxAsmPrinter::doFinalization(Module &M) { SectionKind::getReadOnly()); OutStreamer.SwitchSection(Section); - // FIXME: This is nondeterminstic! - for (DenseMap::iterator I = TOC.begin(), + for (MapVector::iterator I = TOC.begin(), E = TOC.end(); I != E; ++I) { OutStreamer.EmitLabel(I->second); MCSymbol *S = OutContext.GetOrCreateSymbol(I->first->getName()); -- cgit v1.2.3