search for: getref

Displaying 20 results from an estimated 22 matches for "getref".

Did you mean: getreg
2014 Jul 21
2
[LLVMdev] LTO type uniquing: ODR assertion failure
...> >> >> >> We still have access to types via MDNodes directly and the assertion >> >> that >> >> assumes all accesses to DITypes are accessing the resolved DIType will >> >> fire >> >> >> >> i.e assert(Ty == resolve(Ty.getRef())) >> >> >> >> One example is the access to DIType via DIArray in SubroutineType. If >> >> all >> >> elements in the type array are DITypes we can create a DITypeArray and >> >> use >> >> that for SubroutineType's type arr...
2014 Jul 21
2
[LLVMdev] LTO type uniquing: ODR assertion failure
...2014 at 11:32 AM, Manman Ren <manman.ren at gmail.com> wrote: >> >> >> We still have access to types via MDNodes directly and the assertion that >> assumes all accesses to DITypes are accessing the resolved DIType will fire >> >> i.e assert(Ty == resolve(Ty.getRef())) >> >> One example is the access to DIType via DIArray in SubroutineType. If all >> elements in the type array are DITypes we can create a DITypeArray and use >> that for SubroutineType's type array instead. But we currently have >> unspecified parameter in the...
2015 Jul 27
2
[LLVMdev] [un]wrapping llvm:DITypeRef
...a DITypeRef is actually declared in DIType: class DIType : public DIScope { ... public: ... operator DITypeRef () const { ^^^^^^^^^^^^^^^^^^ assert(isType() && "constructing DITypeRef from an MDNode that is not a type"); return DITypeRef(&*getRef()); } This, through a series of specializations, befriendings, etc., is able to get to the private constructor of DITypeRef. This should help solve my problem, once I figure out how to construct a properly equivalent DIType. Thanks. > HTH, > Andrew -- Rodney Bates rodney.m.bates at a...
2014 Jul 21
4
[LLVMdev] LTO type uniquing: ODR assertion failure
...s directly and the assertion >> >> >> that >> >> >> assumes all accesses to DITypes are accessing the resolved DIType >> >> >> will >> >> >> fire >> >> >> >> >> >> i.e assert(Ty == resolve(Ty.getRef())) >> >> >> >> >> >> One example is the access to DIType via DIArray in SubroutineType. >> >> >> If >> >> >> all >> >> >> elements in the type array are DITypes we can create a DITypeArray >> >> &...
2014 Jul 14
3
[LLVMdev] LTO type uniquing: ODR assertion failure
We still have access to types via MDNodes directly and the assertion that assumes all accesses to DITypes are accessing the resolved DIType will fire i.e assert(Ty == resolve(Ty.getRef())) One example is the access to DIType via DIArray in SubroutineType. If all elements in the type array are DITypes we can create a DITypeArray and use that for SubroutineType's type array instead. But we currently have unspecified parameter in the type array and it is not a DIType. What are...
2015 Jul 27
0
[LLVMdev] [un]wrapping llvm:DITypeRef
...; > class DIType : public DIScope { > ... > public: > ... > operator DITypeRef () const { > ^^^^^^^^^^^^^^^^^^ > assert(isType() && > "constructing DITypeRef from an MDNode that is not a type"); > return DITypeRef(&*getRef()); > } > > This, through a series of specializations, befriendings, etc., is able to > get to the private constructor of DITypeRef. > > This should help solve my problem, once I figure out how to construct a > properly equivalent DIType. > I was mistaken. This does not...
2014 Jun 24
2
[LLVMdev] Issues with clang-llvm debug info validity
...@@ -771,7 +771,7 @@ llvm::DIType CGDebugInfo::CreateType(const FunctionType *Ty, SmallVector<llvm::Value *, 16> EltTys; // Add the result type at least. - EltTys.push_back(getOrCreateType(Ty->getReturnType(), Unit)); + EltTys.push_back(getOrCreateType(Ty->getReturnType(), Unit).getRef()); // Set up remainder of arguments if there is a prototype. // otherwise emit it as a variadic function. @@ -779,7 +779,7 @@ llvm::DIType CGDebugInfo::CreateType(const FunctionType *Ty, EltTys.push_back(DBuilder.createUnspecifiedParameter()); else if (const FunctionProtoType *FPT =...
2018 Apr 04
2
nouveau TRAP_M2MF still there on G98
...wap out round for ALIGN). Could you test if going back to > rounddown fixes problem on your side? > > --- a/drivers/gpu/drm/nouveau/nvkm/subdev/mmu/vmm.c > +++ b/drivers/gpu/drm/nouveau/nvkm/subdev/mmu/vmm.c > @@ -1354,7 +1354,7 @@ nvkm_vmm_get_locked(struct nvkm_vmm *vmm, bool > getref, bool mapref, bool sparse, > > tail = this->addr + this->size; > if (vmm->func->page_block && next && next->page != p) > - tail = ALIGN_DOWN(tail, vmm->func->page_block); > +...
2014 Jun 24
2
[LLVMdev] Issues with clang-llvm debug info validity
...t;> $ llc linked.ll >> >> The last step raises an assertion error, assuming you have assertions >> enabled: >> llc: lib/CodeGen/AsmPrinter/DwarfUnit.cpp:953: llvm::DIE* >> llvm::DwarfUnit::getOrCreateTypeDIE(const llvm::MDNode*): Assertion `Ty == >> resolve(Ty.getRef()) && "type was not uniqued, possible ODR violation."' >> failed >> >> The initial introduction of the "test" namespace in test2.cpp seems to >> confuse clang -- test1.cpp and test2.cpp have non-compatible debug >> information for the te...
2014 Jun 27
2
[LLVMdev] Issues with clang-llvm debug info validity
I looked into this a little. My proposal is this: - extend DINamespace with an extra UniqueID filed (analogous to DICompositeType) - add an extra case to DIScope::getRef() - Let CGDebugInfo create a mangled name for each namespace to use as UID -> the UID of the anonymous namespace is null. For example: namespace a { namespace b {} } -> “_ZN1a", “_ZN1a1b" !0 = [compile unit] !1 = metadata !{i32 786489, metadata !0, metadata !”_ZN1a", metad...
2014 Jun 14
2
[LLVMdev] Issues with clang-llvm debug info validity
...S -o test2.ll $ llvm-link test1.ll test2.ll -S -o linked.ll $ llc linked.ll The last step raises an assertion error, assuming you have assertions enabled: llc: lib/CodeGen/AsmPrinter/DwarfUnit.cpp:953: llvm::DIE* llvm::DwarfUnit::getOrCreateTypeDIE(const llvm::MDNode*): Assertion `Ty == resolve(Ty.getRef()) && "type was not uniqued, possible ODR violation."' failed The initial introduction of the "test" namespace in test2.cpp seems to confuse clang -- test1.cpp and test2.cpp have non-compatible debug information for the test::Test type. test1.cpp says that test::Te...
2014 Jul 09
4
[LLVMdev] Issues with clang-llvm debug info validity
...gt; I looked into this a little. >>> >>> Thanks for taking a look! >>> >>>> My proposal is this: >>>> >>>> - extend DINamespace with an extra UniqueID filed (analogous to DICompositeType) >>>> - add an extra case to DIScope::getRef() >>>> - Let CGDebugInfo create a mangled name for each namespace to use as UID >>>> -> the UID of the anonymous namespace is null. >>>> >>>> For example: >>>> >>>> namespace a { namespace b {} } -> “_ZN1a", “_ZN1a1...
2014 Jun 27
2
[LLVMdev] Issues with clang-llvm debug info validity
...rian Prantl <aprantl at apple.com> wrote: >> I looked into this a little. > > Thanks for taking a look! > >> My proposal is this: >> >> - extend DINamespace with an extra UniqueID filed (analogous to DICompositeType) >> - add an extra case to DIScope::getRef() >> - Let CGDebugInfo create a mangled name for each namespace to use as UID >> -> the UID of the anonymous namespace is null. >> >> For example: >> >> namespace a { namespace b {} } -> “_ZN1a", “_ZN1a1b" >> >> !0 = [compile unit]...
2014 Jun 24
2
[LLVMdev] Issues with clang-llvm debug info validity
...assertion error, assuming you have assertions >>>>>> enabled: >>>>>> llc: lib/CodeGen/AsmPrinter/DwarfUnit.cpp:953: llvm::DIE* >>>>>> llvm::DwarfUnit::getOrCreateTypeDIE(const llvm::MDNode*): Assertion `Ty == >>>>>> resolve(Ty.getRef()) && "type was not uniqued, possible ODR violation."' >>>>>> failed >>>>>> >>>>>> The initial introduction of the "test" namespace in test2.cpp seems to >>>>>> confuse clang -- test1.cpp and tes...
2018 Mar 03
0
[PATCH] mmu: ALIGN_DOWN correct variable
.../gpu/drm/nouveau/nvkm/subdev/mmu/vmm.c b/drivers/gpu/drm/nouveau/nvkm/subdev/mmu/vmm.c index 93946dcee319..1c12e58f44c2 100644 --- a/drivers/gpu/drm/nouveau/nvkm/subdev/mmu/vmm.c +++ b/drivers/gpu/drm/nouveau/nvkm/subdev/mmu/vmm.c @@ -1354,7 +1354,7 @@ nvkm_vmm_get_locked(struct nvkm_vmm *vmm, bool getref, bool mapref, bool sparse, tail = this->addr + this->size; if (vmm->func->page_block && next && next->page != p) - tail = ALIGN_DOWN(addr, vmm->func->page_block); + tail = ALIGN_DOWN(tail, vmm->func->page_block); if (addr <= tail &&am...
2018 Apr 04
0
nouveau TRAP_M2MF still there on G98
...al commit I was fixing (mmu: swap out round for ALIGN). Could you test if going back to rounddown fixes problem on your side? --- a/drivers/gpu/drm/nouveau/nvkm/subdev/mmu/vmm.c +++ b/drivers/gpu/drm/nouveau/nvkm/subdev/mmu/vmm.c @@ -1354,7 +1354,7 @@ nvkm_vmm_get_locked(struct nvkm_vmm *vmm, bool getref, bool mapref, bool sparse, tail = this->addr + this->size; if (vmm->func->page_block && next && next->page != p) - tail = ALIGN_DOWN(tail, vmm->func->page_block); + tail = rounddown(tai...
2018 Apr 04
0
nouveau TRAP_M2MF still there on G98
...). Could you test if going back to >> rounddown fixes problem on your side? >> >> --- a/drivers/gpu/drm/nouveau/nvkm/subdev/mmu/vmm.c >> +++ b/drivers/gpu/drm/nouveau/nvkm/subdev/mmu/vmm.c >> @@ -1354,7 +1354,7 @@ nvkm_vmm_get_locked(struct nvkm_vmm *vmm, bool >> getref, bool mapref, bool sparse, >> >> tail = this->addr + this->size; >> if (vmm->func->page_block && next && next->page != p) >> - tail = ALIGN_DOWN(tail, vmm->func->page_block); >>...
2015 Jul 26
0
[LLVMdev] [un]wrapping llvm:DITypeRef
On Sun, 26 Jul 2015 at 06:48 Rodney M. Bates <rodney_bates at lcwb.coop> wrote: > In trying to write a C binding for DIBuilder of llvm 3.6.1, I can't see a > way to unwrap > llvm::DITypeRef, declared in include/llvm/IR/DebugInfo.h. This is a class > with one > data member, a pointer to Metadata. > > If I try to make my C type a struct with one pointer, I can't
2018 Apr 03
2
nouveau TRAP_M2MF still there on G98
Hi! In commit da5e45e619b3f101420c38b3006a9ae4f3ad19b0: > drm/nouveau/mmu: ALIGN_DOWN correct variable > > Commit 7110c89bb8852ff8b0f88ce05b332b3fe22bd11e ("mmu: swap out round > for ALIGN") replaced two calls to round/rounddown with ALIGN/ALIGN_DOWN, > but erroneously applied ALIGN_DOWN to a different variable (addr) and left > intended variable (tail) not
2015 Jul 25
4
[LLVMdev] [un]wrapping llvm:DITypeRef
In trying to write a C binding for DIBuilder of llvm 3.6.1, I can't see a way to unwrap llvm::DITypeRef, declared in include/llvm/IR/DebugInfo.h. This is a class with one data member, a pointer to Metadata. If I try to make my C type a struct with one pointer, I can't cast it to DITypeRef. If I try to go inside the classes and use the pointer, I can cast, but can't construct a