mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-03-19 04:31:17 +00:00
IR: Take uint64_t in DIBuilder::createExpression()
`DIExpression` deals with `uint64_t`, so it doesn't make sense that `createExpression()` is created from `int64_t`. Switch to `uint64_t` to unify them. I've temporarily left in the `int64_t` version, which forwards to the `uint64_t` version. I'll delete it once I've updated the callers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@228619 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
d3f3d5f0d7
commit
a30b342b77
@ -514,7 +514,8 @@ namespace llvm {
|
||||
/// createExpression - Create a new descriptor for the specified
|
||||
/// variable which has a complex address expression for its address.
|
||||
/// @param Addr An array of complex address operations.
|
||||
DIExpression createExpression(ArrayRef<int64_t> Addr = None);
|
||||
DIExpression createExpression(ArrayRef<uint64_t> Addr = None);
|
||||
DIExpression createExpression(ArrayRef<int64_t> Addr);
|
||||
|
||||
/// createPieceExpression - Create a descriptor to describe one part
|
||||
/// of aggregate variable that is fragmented across multiple Values.
|
||||
|
@ -947,17 +947,23 @@ DIVariable DIBuilder::createLocalVariable(unsigned Tag, DIDescriptor Scope,
|
||||
return RetVar;
|
||||
}
|
||||
|
||||
DIExpression DIBuilder::createExpression(ArrayRef<int64_t> Addr) {
|
||||
DIExpression DIBuilder::createExpression(ArrayRef<uint64_t> Addr) {
|
||||
auto Header = HeaderBuilder::get(DW_TAG_expression);
|
||||
for (int64_t I : Addr)
|
||||
for (uint64_t I : Addr)
|
||||
Header.concat(I);
|
||||
Metadata *Elts[] = {Header.get(VMContext)};
|
||||
return DIExpression(MDNode::get(VMContext, Elts));
|
||||
}
|
||||
|
||||
DIExpression DIBuilder::createExpression(ArrayRef<int64_t> Signed) {
|
||||
// TODO: Remove the callers of this signed version and delete.
|
||||
SmallVector<uint64_t, 8> Addr(Signed.begin(), Signed.end());
|
||||
return createExpression(Addr);
|
||||
}
|
||||
|
||||
DIExpression DIBuilder::createPieceExpression(unsigned OffsetInBytes,
|
||||
unsigned SizeInBytes) {
|
||||
int64_t Addr[] = {dwarf::DW_OP_piece, OffsetInBytes, SizeInBytes};
|
||||
uint64_t Addr[] = {dwarf::DW_OP_piece, OffsetInBytes, SizeInBytes};
|
||||
return createExpression(Addr);
|
||||
}
|
||||
|
||||
|
@ -1123,7 +1123,7 @@ bool llvm::replaceDbgDeclareForAlloca(AllocaInst *AI, Value *NewAllocaAddress,
|
||||
// "deref" operation to a list of address elements, as new llvm.dbg.declare
|
||||
// will take a value storing address of the memory for variable, not
|
||||
// alloca itself.
|
||||
SmallVector<int64_t, 4> NewDIExpr;
|
||||
SmallVector<uint64_t, 4> NewDIExpr;
|
||||
NewDIExpr.push_back(dwarf::DW_OP_deref);
|
||||
if (DIExpr)
|
||||
for (unsigned i = 0, n = DIExpr.getNumElements(); i < n; ++i)
|
||||
|
Loading…
x
Reference in New Issue
Block a user