Lines Matching defs:IsCtor
91 static Function *createInitOrFiniKernelFunction(Module &M, bool IsCtor) {
93 IsCtor ? "nvptx$device$init" : "nvptx$device$fini";
128 static void createInitOrFiniCalls(Function &F, bool IsCtor) {
138 IsCtor ? "__init_array_start" : "__fini_array_start",
144 IsCtor ? "__init_array_start" : "__fini_array_start",
151 IsCtor ? "__init_array_end" : "__fini_array_end", PointerType::get(C, 0),
157 IsCtor ? "__init_array_end" : "__fini_array_end",
172 if (!IsCtor) {
188 IRB.CreateCmp(IsCtor ? ICmpInst::ICMP_NE : ICmpInst::ICMP_UGT, BeginVal,
197 IRB.CreateConstGEP1_64(PtrTy, CallBackPHI, IsCtor ? 1 : -1, "next");
198 auto *EndCmp = IRB.CreateCmp(IsCtor ? ICmpInst::ICMP_EQ : ICmpInst::ICMP_ULT,
208 bool IsCtor) {
225 ((IsCtor ? "__init_array_object_" : "__fini_array_object_") +
237 GV->setSection(IsCtor ? ".init_array" + PriorityStr
247 bool IsCtor) {
252 if (!createInitOrFiniGlobals(M, GV, IsCtor))
258 Function *InitOrFiniKernel = createInitOrFiniKernelFunction(M, IsCtor);
262 createInitOrFiniCalls(*InitOrFiniKernel, IsCtor);
270 Modified |= createInitOrFiniKernel(M, "llvm.global_ctors", /*IsCtor =*/true);
271 Modified |= createInitOrFiniKernel(M, "llvm.global_dtors", /*IsCtor =*/false);