Lines Matching defs:LoopMD
75 static DebugLoc findTransformationDebugLoc(MDNode *LoopMD, StringRef Name) {
78 MDNode *MD = findOptionMDForLoopID(LoopMD, Name);
83 return findFirstDebugLoc(LoopMD);
87 static isl::schedule applyLoopUnroll(MDNode *LoopMD,
89 TransformationMode UnrollMode = ::hasUnrollTransformation(LoopMD);
101 getOptionalIntLoopAttribute(LoopMD, "llvm.loop.unroll.count").value_or(0);
102 bool Full = getBooleanLoopAttribute(LoopMD, "llvm.loop.unroll.full");
116 static isl::schedule applyLoopFission(MDNode *LoopMD,
126 static auto getLoopMDProps(MDNode *LoopMD) {
129 drop_begin(LoopMD->operands(), 1),
155 checkDependencyViolation(llvm::MDNode *LoopMD, llvm::Value *CodeRegion,
162 LLVMContext &Ctx = LoopMD->getContext();
165 DebugLoc TransformLoc = findTransformationDebugLoc(LoopMD, DebugLocAttr);
195 makePostTransformationMetadata(Ctx, LoopMD, {TransPrefix}, {});
242 MDNode *LoopMD = Attr->Metadata;
243 if (!LoopMD)
247 // FIXME: If there are more than one transformation in the LoopMD (making
249 for (MDNode *MD : getLoopMDProps(LoopMD)) {
260 Result = applyLoopUnroll(LoopMD, Band);
264 Result = applyLoopFission(LoopMD, Band);
267 LoopMD, CodeRegion, Band, "llvm.loop.distribute.loc",