IR: Allow 32-bits for lines in debug location

Remove unnecessary restriction of 24-bits for line numbers in
`MDLocation`.

The rest of the debug info schema (with the exception of local
variables) uses 32-bits for line numbers.  As I introduce the
specialized nodes, it makes sense to canonicalize on one size or the
other.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@228455 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Duncan P. N. Exon Smith
2015-02-06 22:50:13 +00:00
parent 4752dabe97
commit 8713d99a25
5 changed files with 13 additions and 22 deletions

View File

@ -24,19 +24,12 @@ MDLocation::MDLocation(LLVMContext &C, StorageType Storage, unsigned Line,
"Expected a scope and optional inlined-at");
// Set line and column.
assert(Line < (1u << 24) && "Expected 24-bit line");
assert(Column < (1u << 16) && "Expected 16-bit column");
SubclassData32 = Line;
SubclassData16 = Column;
}
static void adjustLine(unsigned &Line) {
// Set to unknown on overflow. Still use 24 bits for now.
if (Line >= (1u << 24))
Line = 0;
}
static void adjustColumn(unsigned &Column) {
// Set to unknown on overflow. We only have 16 bits to play with here.
if (Column >= (1u << 16))
@ -47,8 +40,7 @@ MDLocation *MDLocation::getImpl(LLVMContext &Context, unsigned Line,
unsigned Column, Metadata *Scope,
Metadata *InlinedAt, StorageType Storage,
bool ShouldCreate) {
// Fixup line/column.
adjustLine(Line);
// Fixup column.
adjustColumn(Column);
if (Storage == Uniqued) {