summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--llvm/include/llvm/Value.h8
-rw-r--r--llvm/lib/AsmParser/LLParser.cpp2
-rw-r--r--llvm/lib/Transforms/InstCombine/InstCombineCalls.cpp3
3 files changed, 7 insertions, 6 deletions
diff --git a/llvm/include/llvm/Value.h b/llvm/include/llvm/Value.h
index 0f4c522d373..633063523fc 100644
--- a/llvm/include/llvm/Value.h
+++ b/llvm/include/llvm/Value.h
@@ -307,6 +307,10 @@ public:
return const_cast<Value*>(this)->DoPHITranslation(CurBB, PredBB);
}
+ /// MaximumAlignment - This is the greatest alignment value supported by
+ /// load, store, and alloca instructions, and global values.
+ static const unsigned MaximumAlignment = 1u << 29;
+
protected:
unsigned short getSubclassDataFromValue() const { return SubclassData; }
void setValueSubclassData(unsigned short D) { SubclassData = D; }
@@ -401,10 +405,6 @@ public:
enum { NumLowBitsAvailable = 2 };
};
-/// MaximumAlignment - This is the greatest alignment value supported by
-/// load, store, and alloca instructions, and global values.
-static const unsigned MaximumAlignment = 1u << 29;
-
} // End llvm namespace
#endif
diff --git a/llvm/lib/AsmParser/LLParser.cpp b/llvm/lib/AsmParser/LLParser.cpp
index e581a694586..c55a16520f9 100644
--- a/llvm/lib/AsmParser/LLParser.cpp
+++ b/llvm/lib/AsmParser/LLParser.cpp
@@ -1154,7 +1154,7 @@ bool LLParser::ParseOptionalAlignment(unsigned &Alignment) {
if (ParseUInt32(Alignment)) return true;
if (!isPowerOf2_32(Alignment))
return Error(AlignLoc, "alignment is not a power of two");
- if (Alignment > MaximumAlignment)
+ if (Alignment > Value::MaximumAlignment)
return Error(AlignLoc, "huge alignments are not supported yet");
return false;
}
diff --git a/llvm/lib/Transforms/InstCombine/InstCombineCalls.cpp b/llvm/lib/Transforms/InstCombine/InstCombineCalls.cpp
index fdb2dd693d9..27ca345b067 100644
--- a/llvm/lib/Transforms/InstCombine/InstCombineCalls.cpp
+++ b/llvm/lib/Transforms/InstCombine/InstCombineCalls.cpp
@@ -109,9 +109,10 @@ unsigned InstCombiner::GetOrEnforceKnownAlignment(Value *V,
TrailZ = std::min(TrailZ, unsigned(sizeof(unsigned) * CHAR_BIT - 1));
unsigned Align = 1u << std::min(BitWidth - 1, TrailZ);
+ unsigned MaxAlign = Value::MaximumAlignment;
// LLVM doesn't support alignments larger than this currently.
- Align = std::min(Align, MaximumAlignment);
+ Align = std::min(Align, MaxAlign);
if (PrefAlign > Align)
Align = EnforceKnownAlignment(V, Align, PrefAlign);
OpenPOWER on IntegriCloud