|
reference, declaration → definition
definition → references, declarations, derived classes, virtual overrides
reference to multiple definitions → definitions
unreferenced
|
Declarations
include/llvm/IR/Use.h 113 User *getUser() const LLVM_READONLY;
References
include/llvm/Analysis/LoopInfo.h 1129 auto *UI = cast<Instruction>(U.getUser());
include/llvm/Analysis/MemorySSA.h 548 assert(this == U.getUser() && "Iterator doesn't point to PHI's Uses?");
include/llvm/Analysis/PtrUseVisitor.h 241 Instruction *I = cast<Instruction>(U->getUser());
include/llvm/IR/CallSite.h 164 assert(getInstruction() == U->getUser());
175 assert(getInstruction() == U->getUser());
include/llvm/IR/InstrTypes.h 1189 assert(this == U->getUser() &&
1267 assert(this == U->getUser() &&
1766 assert(this == U->getUser() &&
include/llvm/IR/Instructions.h 2672 assert(this == U.getUser() && "Iterator doesn't point to PHI's Uses?");
include/llvm/IR/Value.h 193 return UI->getUser();
lib/Analysis/CaptureTracking.cpp 60 if (isa<ReturnInst>(U->getUser()) && !ReturnCaptures)
134 Instruction *I = cast<Instruction>(U->getUser());
146 if (isa<ReturnInst>(U->getUser()) && !ReturnCaptures)
251 Instruction *I = cast<Instruction>(U->getUser());
lib/Analysis/DemandedBits.cpp 444 Instruction *UserI = cast<Instruction>(U->getUser());
lib/Analysis/DivergenceAnalysis.cpp 417 Instruction &I = *cast<Instruction>(U.getUser());
lib/Analysis/GlobalsModRef.cpp 351 User *I = U.getUser();
lib/Analysis/IVDescriptors.cpp 94 Instruction *I, *J = cast<Instruction>(Phi->use_begin()->getUser());
lib/Analysis/IVUsers.cpp 207 Instruction *User = cast<Instruction>(U.getUser());
lib/Analysis/LegacyDivergenceAnalysis.cpp 218 Instruction *UserInst = cast<Instruction>(Use.getUser());
lib/Analysis/LoopInfo.cpp 431 const Instruction *UI = cast<Instruction>(U.getUser());
lib/Analysis/MemoryDependenceAnalysis.cpp 395 auto *U = dyn_cast<Instruction>(Us.getUser());
lib/Analysis/MemorySSA.cpp 2154 if (MemoryPhi *MP = dyn_cast<MemoryPhi>(Dominatee.getUser())) {
2163 return dominates(Dominator, cast<MemoryAccess>(Dominatee.getUser()));
lib/Analysis/MemorySSAUpdater.cpp 332 User *Usr = U.getUser();
1099 MemoryAccess *Usr = cast<MemoryAccess>(U.getUser());
1311 if (auto *MUD = dyn_cast<MemoryUseOrDef>(U.getUser()))
1314 if (MemoryPhi *MP = dyn_cast<MemoryPhi>(U.getUser()))
lib/Analysis/ModuleSummaryAnalysis.cpp 180 auto *AssumeCI = dyn_cast<CallInst>(CIU.getUser());
lib/Analysis/StackSafetyAnalysis.cpp 290 auto I = cast<const Instruction>(UI.getUser());
lib/Analysis/TypeMetadataUtils.cpp 28 Instruction *User = cast<Instruction>(U.getUser());
55 Value *User = U.getUser();
83 if (auto *AssumeCI = dyn_cast<CallInst>(CIU.getUser())) {
112 auto CIU = U.getUser();
lib/Bitcode/Writer/ValueEnumerator.cpp 178 if (OM.lookup(U.getUser()).first)
192 auto LID = OM.lookup(LU->getUser()).first;
193 auto RID = OM.lookup(RU->getUser()).first;
lib/CodeGen/CodeGenPrepare.cpp 2533 Instruction *UserI = cast<Instruction>(U.getUser());
4441 Instruction *UserI = cast<Instruction>(U.getUser());
5625 Instruction *User = cast<Instruction>(U.getUser());
6205 Instruction *OldI = cast<Instruction>(U->getUser());
lib/CodeGen/GlobalMerge.cpp 311 if (ConstantExpr *CE = dyn_cast<ConstantExpr>(U.getUser())) {
316 } else if (isa<Instruction>(U.getUser())) {
326 Instruction *I = dyn_cast<Instruction>(UI->getUser());
lib/CodeGen/IndirectBrExpandPass.cpp 124 return isa<BlockAddress>(U.getUser());
135 auto *BA = cast<BlockAddress>(BlockAddressUseIt->getUser());
lib/CodeGen/PreISelIntrinsicLowering.cpp 38 auto CI = dyn_cast<CallInst>(I->getUser());
79 auto *CI = cast<CallInst>(I->getUser());
lib/CodeGen/SafeStack.cpp 291 auto I = cast<const Instruction>(UI.getUser());
599 Instruction *User = cast<Instruction>(U.getUser());
lib/CodeGen/WasmEHPrepare.cpp 283 if (auto *CI = dyn_cast<CallInst>(U.getUser())) {
lib/CodeGen/WinEHPrepare.cpp 903 Instruction *UserI = cast<Instruction>(U.getUser());
1095 auto *UsingInst = cast<Instruction>(U.getUser());
1170 auto *UsingInst = cast<Instruction>(U.getUser());
lib/FuzzMutate/RandomIRBuilder.cpp 112 User *U = Sink->getUser();
lib/IR/AbstractCallSite.cpp 37 AbstractCallSite::AbstractCallSite(const Use *U) : CS(U->getUser()) {
46 if (ConstantExpr *CE = dyn_cast<ConstantExpr>(U->getUser()))
49 CS = CallSite(U->getUser());
lib/IR/AsmWriter.cpp 189 if (OM.lookup(U.getUser()).first)
206 auto LID = OM.lookup(LU->getUser()).first;
207 auto RID = OM.lookup(RU->getUser()).first;
lib/IR/Core.cpp 964 return wrap(unwrap(U)->getUser());
lib/IR/Dominators.cpp 231 Instruction *UserInst = cast<Instruction>(U.getUser());
249 Instruction *UserInst = cast<Instruction>(U.getUser());
300 Instruction *I = dyn_cast<Instruction>(U.getUser());
lib/IR/Function.cpp 1422 const User *FU = U.getUser();
lib/IR/Instruction.cpp 499 const Instruction *I = cast<Instruction>(U.getUser());
lib/IR/SafepointIRVerifier.cpp 78 return PU.getUser()->getOperandUse(PU.getOperandNo());
105 assert(cast<Instruction>(U->getUser())->isTerminator() &&
109 assert(!isDeadBlock(cast<Instruction>(U->getUser())->getParent()) &&
118 const Use &U = PU.getUser()->getOperandUse(PU.getOperandNo());
lib/IR/Use.cpp 48 return this - getUser()->op_begin();
lib/IR/Value.cpp 415 if (auto *C = dyn_cast<Constant>(U.getUser())) {
448 auto *I = dyn_cast<Instruction>(U.getUser());
lib/IR/Verifier.cpp 4089 if (Instruction *Used = dyn_cast<Instruction>(U.getUser()))
lib/Target/AArch64/AArch64FastISel.cpp 2011 if (const auto *ZE = dyn_cast<ZExtInst>(I->use_begin()->getUser())) {
2016 } else if (const auto *SE = dyn_cast<SExtInst>(I->use_begin()->getUser())) {
lib/Target/AArch64/AArch64ISelLowering.cpp 8581 const Instruction *Instr = cast<Instruction>(U.getUser());
lib/Target/AMDGPU/AMDGPUPrintfRuntimeBinding.cpp 575 if (auto *CI = dyn_cast<CallInst>(U.getUser())) {
lib/Target/AMDGPU/AMDGPURewriteOutArguments.cpp 140 StoreInst *SI = dyn_cast<StoreInst>(U.getUser());
145 auto *BCI = dyn_cast<BitCastInst>(U.getUser());
lib/Target/AMDGPU/R600OpenCLImageTypeLoweringPass.cpp 170 auto Inst = dyn_cast<CallInst>(Use.getUser());
203 auto Inst = dyn_cast<CallInst>(Use.getUser());
lib/Target/ARM/ARMCodeGenPrepare.cpp 454 auto *User = cast<Instruction>(U.getUser());
976 if (!AddLegalInst(U.getUser()))
lib/Target/ARM/ARMISelLowering.cpp14800 Instruction *Insn = cast<Instruction>(U.getUser());
lib/Target/Hexagon/HexagonCommonGEP.cpp 294 User *R = (*J)->getUser();
775 User *R = U->getUser();
954 User *R = U->getUser();
984 if (U->getUser() == R)
1023 User *R = U->getUser();
1152 Values.push_back((*I)->getUser());
lib/Target/Hexagon/HexagonLoopIdiomRecognition.cpp 659 if (auto *II = dyn_cast<Instruction>(TheUse.getUser()))
lib/Target/Hexagon/HexagonOptimizeSZextends.cpp 133 if (Instruction *J = dyn_cast<Instruction>(TheUse.getUser())) {
lib/Target/Hexagon/HexagonVectorLoopCarriedReuse.cpp 468 Instruction *User = cast<Instruction>(U.getUser());
498 Instruction *BEUser = cast<Instruction>(U.getUser());
lib/Target/NVPTX/NVPTXLowerAlloca.cpp 91 auto LI = dyn_cast<LoadInst>(AllocaUse.getUser());
97 auto SI = dyn_cast<StoreInst>(AllocaUse.getUser());
103 auto GI = dyn_cast<GetElementPtrInst>(AllocaUse.getUser());
108 auto BI = dyn_cast<BitCastInst>(AllocaUse.getUser());
lib/Target/PowerPC/PPCBoolRetToInt.cpp 239 if (isa<ReturnInst>(U.getUser()))
241 if (isa<CallInst>(U.getUser()))
264 auto *I = cast<Instruction>(U.getUser());
lib/Target/WebAssembly/WebAssemblyAddMissingPrototypes.cpp 94 LLVM_DEBUG(dbgs() << *U.getUser() << "\n");
95 if (auto *BC = dyn_cast<BitCastOperator>(U.getUser())) {
lib/Target/WebAssembly/WebAssemblyFixFunctionBitcasts.cpp 71 if (auto *BC = dyn_cast<BitCastOperator>(U.getUser()))
73 else if (auto *A = dyn_cast<GlobalAlias>(U.getUser()))
76 CallSite CS(U.getUser());
lib/Target/WebAssembly/WebAssemblyLowerEmscriptenEHSjLj.cpp 611 auto *User = cast<Instruction>(U.getUser());
1086 if (auto *I = dyn_cast<Instruction>(U.getUser()))
1094 if (auto *I = dyn_cast<Instruction>(U.getUser()))
lib/Transforms/Coroutines/CoroFrame.cpp 1236 auto User = Use.getUser();
lib/Transforms/Coroutines/CoroSplit.cpp 437 auto EVI = dyn_cast<ExtractValueInst>((UI++)->getUser());
1456 auto *Cast = dyn_cast<BitCastInst>((UI++)->getUser());
1463 if (auto *CB = dyn_cast<CallBase>(Use.getUser())) {
1501 auto *Prepare = cast<CallInst>((PI++)->getUser());
lib/Transforms/IPO/ArgumentPromotion.cpp 667 User *UR = U.getUser();
851 CallSite CS(U.getUser());
907 CallSite CS(U.getUser());
944 CallSite CS(U.getUser());
lib/Transforms/IPO/Attributor.cpp 732 if (const Instruction *UserI = dyn_cast<Instruction>(U->getUser())) {
997 if (CallBase *CB = dyn_cast<CallBase>(U.getUser()))
2704 if (auto *SI = dyn_cast<StoreInst>(U.getUser())) {
2712 } else if (auto *LI = dyn_cast<LoadInst>(U.getUser())) {
3058 Instruction *UInst = cast<Instruction>(U->getUser());
3115 return !IsDeadAA.isAssumedDead(cast<Instruction>(U->getUser()));
3647 auto *UserI = U->getUser();
4108 Instruction *UserI = cast<Instruction>(U->getUser());
4278 << *U.getUser() << "\n");
4303 LLVM_DEBUG(dbgs() << "[Attributor] User " << EffectiveUse->getUser()
4946 return ImmutableCallSite(U.getUser()) &&
4947 ImmutableCallSite(U.getUser()).isCallee(&U);
lib/Transforms/IPO/DeadArgumentElimination.cpp 306 CallSite CS(U.getUser());
380 const User *V = U->getUser();
557 ImmutableCallSite CS(U.getUser());
584 if (ExtractValueInst *Ext = dyn_cast<ExtractValueInst>(U.getUser())) {
lib/Transforms/IPO/FunctionAttrs.cpp 364 CallSite CS(U->getUser());
464 Instruction *I = cast<Instruction>(U->getUser());
lib/Transforms/IPO/GlobalOpt.cpp 903 ICmpInst *ICI = dyn_cast<ICmpInst>(LoadUse.getUser());
lib/Transforms/IPO/IPConstantPropagation.cpp 60 User *UR = U.getUser();
224 CallSite CS(U.getUser());
lib/Transforms/IPO/LowerTypeTests.cpp 1085 if (auto *A = dyn_cast<GlobalAlias>(U.getUser())) {
1703 auto *Usr = dyn_cast<CallInst>(U.getUser());
1721 if (isa<BlockAddress>(U.getUser()))
1730 if (auto *C = dyn_cast<Constant>(U.getUser())) {
1773 auto *CI = cast<CallInst>((*UI++).getUser());
2000 auto CI = cast<CallInst>(U.getUser());
2016 auto CI = cast<CallInst>(U.getUser());
lib/Transforms/IPO/MergeFunctions.cpp 450 CallSite CS(U->getUser());
lib/Transforms/IPO/ThinLTOBitcodeWriter.cpp 107 auto CI = cast<CallInst>(U.getUser());
115 auto CI = cast<CallInst>(U.getUser());
lib/Transforms/IPO/WholeProgramDevirt.cpp 1561 auto CI = dyn_cast<CallInst>(I->getUser());
1604 auto CI = dyn_cast<CallInst>(I->getUser());
lib/Transforms/InstCombine/InstCombineAndOrXor.cpp 2882 [NotY](Use &U) { return U.getUser() != NotY; });
lib/Transforms/InstCombine/InstCombineCompares.cpp 1056 const Value *V = U->getUser();
lib/Transforms/InstCombine/InstCombineLoadStoreAlloca.cpp 71 auto *I = cast<Instruction>(U.getUser());
lib/Transforms/InstCombine/InstCombineVectorOps.cpp 305 if (Instruction *I = dyn_cast<Instruction>(U.getUser())) {
lib/Transforms/Instrumentation/HWAddressSanitizer.cpp 1063 [AILong](Use &U) { return U.getUser() != AILong; });
lib/Transforms/ObjCARC/ObjCARCContract.cpp 634 if (Inst->getParent() == cast<Instruction>(U.getUser())->getParent() &&
650 if (PHINode *PHI = dyn_cast<PHINode>(U.getUser())) {
684 cast<Instruction>(U.getUser()));
lib/Transforms/ObjCARC/ProvenanceAnalysis.cpp 92 const User *Ur = U.getUser();
lib/Transforms/Scalar/GVNSink.cpp 362 op_push_back(U.getUser());
lib/Transforms/Scalar/IndVarSimplify.cpp 1467 SExtInst *User = dyn_cast<SExtInst>(U.getUser());
1473 ZExtInst *User = dyn_cast<ZExtInst>(U.getUser());
1518 SExtInst *User = dyn_cast<SExtInst>(U.getUser());
1529 ZExtInst *User = dyn_cast<ZExtInst>(U.getUser());
1909 auto *NarrowUser = cast<Instruction>(U.getUser());
2610 Instruction *User = cast<Instruction>(U.getUser());
lib/Transforms/Scalar/InductiveRangeCheckElimination.cpp 171 getCheckUse()->getUser()->print(OS);
lib/Transforms/Scalar/InferAddressSpaces.cpp 758 User *Inst = U.getUser();
863 User *CurUser = I->getUser();
866 while (I != End && I->getUser() == CurUser)
894 User *V = UndefUse->getUser();
942 User *CurUser = U.getUser();
lib/Transforms/Scalar/JumpThreading.cpp 2060 Instruction *User = cast<Instruction>(U.getUser());
2379 Instruction *User = cast<Instruction>(U.getUser());
2585 if (ICmpInst *Cmp = dyn_cast<ICmpInst>(U.getUser())) {
2595 } else if (SelectInst *SelectI = dyn_cast<SelectInst>(U.getUser())) {
lib/Transforms/Scalar/LoopInstSimplify.cpp 110 auto *UserI = cast<Instruction>(U.getUser());
lib/Transforms/Scalar/LoopInterchange.cpp 1265 Instruction *UserI = cast<Instruction>(U.getUser());
lib/Transforms/Scalar/LoopRerollPass.cpp 695 Instruction *User = cast<Instruction>(U.getUser());
lib/Transforms/Scalar/LoopSink.cpp 182 Instruction *UI = cast<Instruction>(U.getUser());
234 return cast<Instruction>(U.getUser())->getParent() == N;
lib/Transforms/Scalar/LoopStrengthReduce.cpp 3416 const Instruction *UserInst = dyn_cast<Instruction>(U.getUser());
lib/Transforms/Scalar/NewGVN.cpp 3607 if (auto *I = dyn_cast<Instruction>(U.getUser())) {
4022 assert(isa<Instruction>(U->getUser()) &&
4029 Instruction *InstUse = cast<Instruction>(U->getUser());
4054 << *U->get() << " in " << *(U->getUser()) << "\n");
lib/Transforms/Scalar/SROA.cpp 922 assert(AS.Slices[PrevIdx].getUse()->getUser() == &II &&
1102 OS << Indent << " used by: " << *I->getUse()->getUser() << "\n";
1138 if (isa<IntrinsicInst>(*U->getUser()))
1144 if (LoadInst *LI = dyn_cast<LoadInst>(U->getUser())) {
1146 } else if (StoreInst *SI = dyn_cast<StoreInst>(U->getUser())) {
1838 if (MemIntrinsic *MI = dyn_cast<MemIntrinsic>(U->getUser())) {
1843 } else if (IntrinsicInst *II = dyn_cast<IntrinsicInst>(U->getUser())) {
1849 } else if (LoadInst *LI = dyn_cast<LoadInst>(U->getUser())) {
1859 } else if (StoreInst *SI = dyn_cast<StoreInst>(U->getUser())) {
1912 if (auto *LI = dyn_cast<LoadInst>(S.getUse()->getUser()))
1914 else if (auto *SI = dyn_cast<StoreInst>(S.getUse()->getUser()))
2018 if (LoadInst *LI = dyn_cast<LoadInst>(U->getUser())) {
2042 } else if (StoreInst *SI = dyn_cast<StoreInst>(U->getUser())) {
2067 } else if (MemIntrinsic *MI = dyn_cast<MemIntrinsic>(U->getUser())) {
2072 } else if (IntrinsicInst *II = dyn_cast<IntrinsicInst>(U->getUser())) {
2371 Instruction *OldUserI = cast<Instruction>(OldUse->getUser());
2376 CanSROA &= visit(cast<Instruction>(OldUse->getUser()));
3241 Changed |= visit(cast<Instruction>(U->getUser()));
3251 if (Visited.insert(U.getUser()).second)
3664 Instruction *I = cast<Instruction>(S.getUse()->getUser());
3728 SplitOffsetsMap.find(cast<Instruction>(S->getUse()->getUser()));
4293 if (isa<LoadInst>(S.getUse()->getUser()) ||
4294 isa<StoreInst>(S.getUse()->getUser())) {
4310 if (isa<LoadInst>(S.getUse()->getUser()) ||
4311 isa<StoreInst>(S.getUse()->getUser())) {
lib/Transforms/Scalar/SimpleLoopUnswitch.cpp 149 Instruction *UserI = dyn_cast<Instruction>(U->getUser());
2225 Instruction *UserI = dyn_cast<Instruction>(U->getUser());
lib/Transforms/Scalar/Sink.cpp 44 Instruction *UseInst = cast<Instruction>(U.getUser());
lib/Transforms/Scalar/SpeculateAroundPHIs.cpp 58 auto *UI = cast<Instruction>(U.getUser());
254 auto *UserI = cast<Instruction>(U.getUser());
349 auto *UI = cast<Instruction>(U.getUser());
436 UserSet.insert(cast<Instruction>(U.getUser()));
496 SpecCostMap.find(cast<Instruction>(U.getUser()))->second;
517 auto *UI = cast<Instruction>(U.getUser());
lib/Transforms/Scalar/StructurizeCFG.cpp 916 Instruction *User = cast<Instruction>(U.getUser());
lib/Transforms/Scalar/TailRecursionElimination.cpp 123 Instruction *I = cast<Instruction>(U->getUser());
255 if (isa<Constant>(Arg.getUser()))
257 if (Argument *A = dyn_cast<Argument>(Arg.getUser()))
lib/Transforms/Utils/GlobalStatus.cpp 68 const User *UR = U.getUser();
lib/Transforms/Utils/LCSSA.cpp 105 Instruction *User = cast<Instruction>(U.getUser());
189 Instruction *User = cast<Instruction>(UseToRewrite->getUser());
lib/Transforms/Utils/Local.cpp 978 if (PHINode* PN = dyn_cast<PHINode>(U.getUser())) {
1425 User *U = AIUse.getUser();
1595 if (auto *DVI = dyn_cast<DbgValueInst>(U.getUser()))
2487 auto *I = cast<Instruction>(U.getUser());
2509 auto *I = cast<Instruction>(U.getUser())->getParent();
lib/Transforms/Utils/LoopRotationUtils.cpp 123 Instruction *UserInst = cast<Instruction>(U.getUser());
lib/Transforms/Utils/LoopUnrollRuntime.cpp 219 PHINode *EpilogPN = cast<PHINode>(PN.use_begin()->getUser());
lib/Transforms/Utils/LoopUtils.cpp 617 if (auto *Usr = dyn_cast<Instruction>(U.getUser()))
lib/Transforms/Utils/PredicateInfo.cpp 164 auto *PHI = cast<PHINode>(VD.U->getUser());
229 return cast<Instruction>(U->getUser());
267 auto *PHI = dyn_cast<PHINode>(VDUse.U->getUser());
294 if (auto *I = dyn_cast<Instruction>(U.getUser())) {
712 << *VD.U->get() << " in " << *(VD.U->getUser())
lib/Transforms/Utils/SSAUpdater.cpp 190 Instruction *User = cast<Instruction>(U.getUser());
207 Instruction *User = cast<Instruction>(U.getUser());
lib/Transforms/Utils/SSAUpdaterBulk.cpp 30 auto *User = cast<Instruction>(U->getUser());
lib/Transforms/Utils/SimplifyCFG.cpp 4703 User *User = Use.getUser();
lib/Transforms/Vectorize/LoopVectorize.cpp 3879 auto *I = cast<Instruction>(U.getUser());
tools/clang/lib/CodeGen/CGCleanup.cpp 619 llvm::SwitchInst *si = cast<llvm::SwitchInst>(use.getUser());
tools/clang/lib/CodeGen/CodeGenModule.cpp 4267 llvm::User *user = use->getUser();
tools/polly/lib/Analysis/ScopInfo.cpp 2429 auto *PHI = cast<PHINode>(U.getUser());
2559 if (hasSingleExitEdge() && isa<PHINode>(Use.getUser()) &&
2560 isExit(cast<PHINode>(Use.getUser())->getParent()))
tools/polly/lib/Support/ScopHelper.cpp 651 Instruction *UI = dyn_cast<Instruction>(U.getUser());
tools/polly/lib/Support/VirtualInstruction.cpp 23 Instruction *UI = dyn_cast<Instruction>(U.getUser());
tools/verify-uselistorder/verify-uselistorder.cpp 262 << ", user-id = " << M.IDs.lookup(U.getUser()) << ", user = ";
263 U.getUser()->dump();
303 while (U != E && !M.lookup(U->getUser()))
322 if (LM.lookup(LU->getUser()) != RM.lookup(RU->getUser())) {
322 if (LM.lookup(LU->getUser()) != RM.lookup(RU->getUser())) {
410 U.getUser()->dump());
421 U.getUser()->dump();
444 U.getUser()->dump();
454 U.getUser()->dump();
unittests/IR/UseTest.cpp 47 return L.getUser()->getName() < R.getUser()->getName();
47 return L.getUser()->getName() < R.getUser()->getName();
57 return L.getUser()->getName() > R.getUser()->getName();
57 return L.getUser()->getName() > R.getUser()->getName();
92 return L.getUser()->getName() < R.getUser()->getName();
92 return L.getUser()->getName() < R.getUser()->getName();
unittests/IR/WaymarkTest.cpp 38 EXPECT_EQ(A, U->getUser());
49 EXPECT_EQ(reinterpret_cast<User *>(Ue + 1), U->getUser());