diff options
author | Stephen Hines <srhines@google.com> | 2014-02-11 02:08:05 -0800 |
---|---|---|
committer | Stephen Hines <srhines@google.com> | 2014-02-19 16:14:01 -0800 |
commit | eeb251e8db802b836af7461d0f6eb1252c527ab8 (patch) | |
tree | 8c87f54a4b706382007b693edd87c21800524abf /BitWriter_2_9 | |
parent | 3d207c9ecb870668d6a845f563d2abeb9cd770ea (diff) | |
download | slang-eeb251e8db802b836af7461d0f6eb1252c527ab8.tar.gz |
Update slang for LLVM 3.4 rebase.
Remove LinkOnceODRAutoHideLinkage, since it is now just a special case of
LinkOnceODRLinkage.
Remove CaseRange expansion code from all bitcode writers, since it is now dead.
Fix up HeaderSearch constructor.
Change-Id: I38547486be509b16ea5d8218b43c31ae35b37d3b
Diffstat (limited to 'BitWriter_2_9')
-rw-r--r-- | BitWriter_2_9/BitcodeWriter.cpp | 15 | ||||
-rw-r--r-- | BitWriter_2_9/BitcodeWriterPass.cpp | 54 |
2 files changed, 1 insertions, 68 deletions
diff --git a/BitWriter_2_9/BitcodeWriter.cpp b/BitWriter_2_9/BitcodeWriter.cpp index 0d45193..b87cad9 100644 --- a/BitWriter_2_9/BitcodeWriter.cpp +++ b/BitWriter_2_9/BitcodeWriter.cpp @@ -404,7 +404,6 @@ static unsigned getEncodedLinkage(const GlobalValue *GV) { case GlobalValue::AvailableExternallyLinkage: return 12; case GlobalValue::LinkerPrivateLinkage: return 13; case GlobalValue::LinkerPrivateWeakLinkage: return 14; - case GlobalValue::LinkOnceODRAutoHideLinkage: return 15; } llvm_unreachable("Invalid linkage"); } @@ -1161,20 +1160,8 @@ static void WriteInstruction(const Instruction &I, unsigned InstID, Vals.push_back(VE.getValueID(SI.getDefaultDest())); for (SwitchInst::ConstCaseIt i = SI.case_begin(), e = SI.case_end(); i != e; ++i) { - const IntegersSubset& CaseRanges = i.getCaseValueEx(); - - if (CaseRanges.isSingleNumber()) { - Vals.push_back(VE.getValueID(CaseRanges.getSingleNumber(0).toConstantInt())); + Vals.push_back(VE.getValueID(i.getCaseValue())); Vals.push_back(VE.getValueID(i.getCaseSuccessor())); - } else if (CaseRanges.isSingleNumbersOnly()) { - for (unsigned ri = 0, rn = CaseRanges.getNumItems(); - ri != rn; ++ri) { - Vals.push_back(VE.getValueID(CaseRanges.getSingleNumber(ri).toConstantInt())); - Vals.push_back(VE.getValueID(i.getCaseSuccessor())); - } - } else { - llvm_unreachable("Not single number?"); - } } } break; diff --git a/BitWriter_2_9/BitcodeWriterPass.cpp b/BitWriter_2_9/BitcodeWriterPass.cpp index dfacc54..d43d690 100644 --- a/BitWriter_2_9/BitcodeWriterPass.cpp +++ b/BitWriter_2_9/BitcodeWriterPass.cpp @@ -22,7 +22,6 @@ namespace { class WriteBitcodePass : public ModulePass { raw_ostream &OS; // raw_ostream to print on - bool expandCaseRange(Function &F); public: static char ID; // Pass identification, replacement for typeid explicit WriteBitcodePass(raw_ostream &o) @@ -32,10 +31,6 @@ namespace { bool runOnModule(Module &M) { bool Changed = false; - for (Module::iterator F = M.begin(), E = M.end(); F != E; ++F) - if (!F->isDeclaration()) - Changed |= expandCaseRange(*F); - llvm_2_9::WriteBitcodeToFile(&M, OS); return Changed; } @@ -44,55 +39,6 @@ namespace { char WriteBitcodePass::ID = 0; -/// expandCaseRange - Expand case range into explicit case values within the -/// range -bool WriteBitcodePass::expandCaseRange(Function &F) { - bool Changed = false; - - for (Function::iterator BB = F.begin(), E = F.end(); BB != E; ++BB) { - SwitchInst *SI = dyn_cast<SwitchInst>(BB->getTerminator()); - if (SI == NULL) { - continue; - } - - for (SwitchInst::CaseIt i = SI->case_begin(), e = SI->case_end(); - i != e; ++i) { - IntegersSubset& CaseRanges = i.getCaseValueEx(); - - // All case ranges are already in single case values - if (CaseRanges.isSingleNumbersOnly()) { - continue; - } - - // Create a new case - Type *IntTy = SI->getCondition()->getType(); - IntegersSubsetToBB CaseBuilder; - Changed = true; - - for (unsigned ri = 0, rn = CaseRanges.getNumItems(); ri != rn; ++ri) { - IntegersSubset::Range r = CaseRanges.getItem(ri); - bool IsSingleNumber = CaseRanges.isSingleNumber(ri); - - if (IsSingleNumber) { - CaseBuilder.add(r); - } else { - const APInt &Low = r.getLow(); - const APInt &High = r.getHigh(); - - for (APInt V = Low; V != High; V++) { - assert(r.isInRange(V) && "Unexpected out-of-range case value!"); - CaseBuilder.add(IntItem::fromType(IntTy, V)); - } - } - - IntegersSubset Case = CaseBuilder.getCase(); - i.setValueEx(Case); - } - } - } - return Changed; -} - /// createBitcodeWriterPass - Create and return a pass that writes the module /// to the specified ostream. llvm::ModulePass *llvm_2_9::createBitcodeWriterPass(llvm::raw_ostream &Str) { |