mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-06-22 10:24:26 +00:00
AddDiscriminators: Create new MDLocation directly
I don't see a reason to add the `copyWithNewScope()` API over to `MDLocation` -- it seems to be a holdover from when creating locations required knowing details of operand layout -- so change `AddDiscriminators` to call `MDLocation::get()` directly. Should be no functionality change here. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@234824 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@ -705,9 +705,6 @@ public:
|
|||||||
|
|
||||||
/// \brief Generate a new discriminator value for this location.
|
/// \brief Generate a new discriminator value for this location.
|
||||||
unsigned computeNewDiscriminator(LLVMContext &Ctx);
|
unsigned computeNewDiscriminator(LLVMContext &Ctx);
|
||||||
|
|
||||||
/// \brief Return a copy of this location with a different scope.
|
|
||||||
DILocation copyWithNewScope(LLVMContext &Ctx, DILexicalBlockFile NewScope);
|
|
||||||
};
|
};
|
||||||
|
|
||||||
class DIObjCProperty : public DIDescriptor {
|
class DIObjCProperty : public DIDescriptor {
|
||||||
|
@ -47,15 +47,6 @@ void DICompileUnit::replaceGlobalVariables(DIArray GlobalVariables) {
|
|||||||
get()->replaceGlobalVariables(MDGlobalVariableArray(GlobalVariables));
|
get()->replaceGlobalVariables(MDGlobalVariableArray(GlobalVariables));
|
||||||
}
|
}
|
||||||
|
|
||||||
DILocation DILocation::copyWithNewScope(LLVMContext &Ctx,
|
|
||||||
DILexicalBlockFile NewScope) {
|
|
||||||
assert(NewScope && "Expected valid scope");
|
|
||||||
|
|
||||||
const auto *Old = cast<MDLocation>(DbgNode);
|
|
||||||
return DILocation(MDLocation::get(Ctx, Old->getLine(), Old->getColumn(),
|
|
||||||
NewScope, Old->getInlinedAt()));
|
|
||||||
}
|
|
||||||
|
|
||||||
unsigned DILocation::computeNewDiscriminator(LLVMContext &Ctx) {
|
unsigned DILocation::computeNewDiscriminator(LLVMContext &Ctx) {
|
||||||
std::pair<const char *, unsigned> Key(getFilename().data(), getLineNumber());
|
std::pair<const char *, unsigned> Key(getFilename().data(), getLineNumber());
|
||||||
return ++Ctx.pImpl->DiscriminatorTable[Key];
|
return ++Ctx.pImpl->DiscriminatorTable[Key];
|
||||||
|
@ -198,7 +198,9 @@ bool AddDiscriminators::runOnFunction(Function &F) {
|
|||||||
unsigned Discriminator = FirstDIL.computeNewDiscriminator(Ctx);
|
unsigned Discriminator = FirstDIL.computeNewDiscriminator(Ctx);
|
||||||
DILexicalBlockFile NewScope =
|
DILexicalBlockFile NewScope =
|
||||||
Builder.createLexicalBlockFile(Scope, File, Discriminator);
|
Builder.createLexicalBlockFile(Scope, File, Discriminator);
|
||||||
DILocation NewDIL = FirstDIL.copyWithNewScope(Ctx, NewScope);
|
DILocation NewDIL =
|
||||||
|
MDLocation::get(Ctx, FirstDIL->getLine(), FirstDIL->getColumn(),
|
||||||
|
NewScope, FirstDIL->getInlinedAt());
|
||||||
DebugLoc newDebugLoc = NewDIL.get();
|
DebugLoc newDebugLoc = NewDIL.get();
|
||||||
|
|
||||||
// Attach this new debug location to First and every
|
// Attach this new debug location to First and every
|
||||||
|
Reference in New Issue
Block a user