aboutsummaryrefslogtreecommitdiff
path: root/BitWriter_2_9
diff options
context:
space:
mode:
authorStephen Hines <srhines@google.com>2014-02-11 02:08:05 -0800
committerStephen Hines <srhines@google.com>2014-02-19 16:14:01 -0800
commiteeb251e8db802b836af7461d0f6eb1252c527ab8 (patch)
tree8c87f54a4b706382007b693edd87c21800524abf /BitWriter_2_9
parent3d207c9ecb870668d6a845f563d2abeb9cd770ea (diff)
downloadslang-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.cpp15
-rw-r--r--BitWriter_2_9/BitcodeWriterPass.cpp54
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) {