[llvm-branch-commits] [llvm-branch] r214254 - Merging r213895:
Hans Wennborg
hans at hanshq.net
Tue Jul 29 16:42:02 PDT 2014
Author: hans
Date: Tue Jul 29 18:42:01 2014
New Revision: 214254
URL: http://llvm.org/viewvc/llvm-project?rev=214254&view=rev
Log:
Merging r213895:
------------------------------------------------------------------------
r213895 | mren | 2014-07-24 14:13:20 -0700 (Thu, 24 Jul 2014) | 2 lines
Feedback from Hans on r213815. No functionaility change.
------------------------------------------------------------------------
Modified:
llvm/branches/release_35/ (props changed)
llvm/branches/release_35/lib/Transforms/Utils/SimplifyCFG.cpp
Propchange: llvm/branches/release_35/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Tue Jul 29 18:42:01 2014
@@ -1,3 +1,3 @@
/llvm/branches/Apple/Pertwee:110850,110961
/llvm/branches/type-system-rewrite:133420-134817
-/llvm/trunk:155241,213653,213749,213815,213847,213880,213884,213894,213915
+/llvm/trunk:155241,213653,213749,213815,213847,213880,213884,213894-213895,213915
Modified: llvm/branches/release_35/lib/Transforms/Utils/SimplifyCFG.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/branches/release_35/lib/Transforms/Utils/SimplifyCFG.cpp?rev=214254&r1=214253&r2=214254&view=diff
==============================================================================
--- llvm/branches/release_35/lib/Transforms/Utils/SimplifyCFG.cpp (original)
+++ llvm/branches/release_35/lib/Transforms/Utils/SimplifyCFG.cpp Tue Jul 29 18:42:01 2014
@@ -3477,7 +3477,7 @@ namespace {
/// BuildLookup - Build instructions with Builder to retrieve the value at
/// the position given by Index in the lookup table.
- Value *BuildLookup(Value *Index, uint64_t TableSize, IRBuilder<> &Builder);
+ Value *BuildLookup(Value *Index, IRBuilder<> &Builder);
/// WouldFitInRegister - Return true if a table with TableSize elements of
/// type ElementType would fit in a target-legal register.
@@ -3598,8 +3598,7 @@ SwitchLookupTable::SwitchLookupTable(Mod
Kind = ArrayKind;
}
-Value *SwitchLookupTable::BuildLookup(Value *Index, uint64_t TableSize,
- IRBuilder<> &Builder) {
+Value *SwitchLookupTable::BuildLookup(Value *Index, IRBuilder<> &Builder) {
switch (Kind) {
case SingleValueKind:
return SingleValue;
@@ -3626,12 +3625,14 @@ Value *SwitchLookupTable::BuildLookup(Va
}
case ArrayKind: {
// Make sure the table index will not overflow when treated as signed.
- if (IntegerType *IT = dyn_cast<IntegerType>(Index->getType()))
- if (TableSize > (1 << (IT->getBitWidth() - 1)))
- Index = Builder.CreateZExt(Index,
- IntegerType::get(IT->getContext(),
- IT->getBitWidth() + 1),
- "switch.tableidx.zext");
+ IntegerType *IT = cast<IntegerType>(Index->getType());
+ uint64_t TableSize = Array->getInitializer()->getType()
+ ->getArrayNumElements();
+ if (TableSize > (1ULL << (IT->getBitWidth() - 1)))
+ Index = Builder.CreateZExt(Index,
+ IntegerType::get(IT->getContext(),
+ IT->getBitWidth() + 1),
+ "switch.tableidx.zext");
Value *GEPIndices[] = { Builder.getInt32(0), Index };
Value *GEP = Builder.CreateInBoundsGEP(Array, GEPIndices,
@@ -3887,7 +3888,7 @@ static bool SwitchToLookupTable(SwitchIn
SwitchLookupTable Table(Mod, TableSize, MinCaseVal, ResultLists[PHI],
DV, DL);
- Value *Result = Table.BuildLookup(TableIndex, TableSize, Builder);
+ Value *Result = Table.BuildLookup(TableIndex, Builder);
// If the result is used to return immediately from the function, we want to
// do that right here.
More information about the llvm-branch-commits
mailing list