• Home
  • Raw
  • Download

Lines Matching full:attrs

35 MDNode *LoopInfo::createPipeliningMetadata(const LoopAttributes &Attrs,  in createPipeliningMetadata()  argument
41 if (Attrs.PipelineDisabled) in createPipeliningMetadata()
43 else if (Attrs.PipelineInitiationInterval != 0) in createPipeliningMetadata()
63 if (Attrs.PipelineInitiationInterval > 0) { in createPipeliningMetadata()
67 llvm::Type::getInt32Ty(Ctx), Attrs.PipelineInitiationInterval))}; in createPipeliningMetadata()
80 LoopInfo::createPartialUnrollMetadata(const LoopAttributes &Attrs, in createPartialUnrollMetadata() argument
86 if (Attrs.UnrollEnable == LoopAttributes::Disable) in createPartialUnrollMetadata()
88 else if (Attrs.UnrollEnable == LoopAttributes::Full) in createPartialUnrollMetadata()
90 else if (Attrs.UnrollEnable != LoopAttributes::Unspecified || in createPartialUnrollMetadata()
91 Attrs.UnrollCount != 0) in createPartialUnrollMetadata()
97 return createPipeliningMetadata(Attrs, LoopProperties, HasUserTransforms); in createPartialUnrollMetadata()
110 MDNode *Followup = createPipeliningMetadata(Attrs, FollowupLoopProperties, in createPartialUnrollMetadata()
118 if (Attrs.UnrollCount > 0) { in createPartialUnrollMetadata()
121 llvm::Type::getInt32Ty(Ctx), Attrs.UnrollCount))}; in createPartialUnrollMetadata()
126 if (Attrs.UnrollEnable == LoopAttributes::Enable) { in createPartialUnrollMetadata()
142 LoopInfo::createUnrollAndJamMetadata(const LoopAttributes &Attrs, in createUnrollAndJamMetadata() argument
148 if (Attrs.UnrollAndJamEnable == LoopAttributes::Disable) in createUnrollAndJamMetadata()
150 else if (Attrs.UnrollAndJamEnable == LoopAttributes::Enable || in createUnrollAndJamMetadata()
151 Attrs.UnrollAndJamCount != 0) in createUnrollAndJamMetadata()
162 return createPartialUnrollMetadata(Attrs, LoopProperties, in createUnrollAndJamMetadata()
172 MDNode *Followup = createPartialUnrollMetadata(Attrs, FollowupLoopProperties, in createUnrollAndJamMetadata()
180 if (Attrs.UnrollAndJamCount > 0) { in createUnrollAndJamMetadata()
184 Attrs.UnrollAndJamCount))}; in createUnrollAndJamMetadata()
188 if (Attrs.UnrollAndJamEnable == LoopAttributes::Enable) { in createUnrollAndJamMetadata()
210 LoopInfo::createLoopVectorizeMetadata(const LoopAttributes &Attrs, in createLoopVectorizeMetadata() argument
216 if (Attrs.VectorizeEnable == LoopAttributes::Disable) in createLoopVectorizeMetadata()
218 else if (Attrs.VectorizeEnable != LoopAttributes::Unspecified || in createLoopVectorizeMetadata()
219 Attrs.VectorizePredicateEnable != LoopAttributes::Unspecified || in createLoopVectorizeMetadata()
220 Attrs.InterleaveCount != 0 || Attrs.VectorizeWidth != 0) in createLoopVectorizeMetadata()
233 return createUnrollAndJamMetadata(Attrs, LoopProperties, HasUserTransforms); in createLoopVectorizeMetadata()
245 MDNode *Followup = createUnrollAndJamMetadata(Attrs, FollowupLoopProperties, in createLoopVectorizeMetadata()
254 if (Attrs.VectorizePredicateEnable != LoopAttributes::Unspecified && in createLoopVectorizeMetadata()
255 Attrs.VectorizeEnable != LoopAttributes::Disable && in createLoopVectorizeMetadata()
256 Attrs.VectorizeWidth < 1) { in createLoopVectorizeMetadata()
259 (Attrs.VectorizePredicateEnable == LoopAttributes::Enable); in createLoopVectorizeMetadata()
269 if (Attrs.VectorizeWidth > 0) { in createLoopVectorizeMetadata()
273 Attrs.VectorizeWidth))}; in createLoopVectorizeMetadata()
278 if (Attrs.InterleaveCount > 0) { in createLoopVectorizeMetadata()
282 Attrs.InterleaveCount))}; in createLoopVectorizeMetadata()
290 if (Attrs.VectorizeEnable != LoopAttributes::Unspecified || in createLoopVectorizeMetadata()
292 Attrs.VectorizeWidth > 1 ) { in createLoopVectorizeMetadata()
293 bool AttrVal = Attrs.VectorizeEnable != LoopAttributes::Disable; in createLoopVectorizeMetadata()
312 LoopInfo::createLoopDistributeMetadata(const LoopAttributes &Attrs, in createLoopDistributeMetadata() argument
318 if (Attrs.DistributeEnable == LoopAttributes::Disable) in createLoopDistributeMetadata()
320 if (Attrs.DistributeEnable == LoopAttributes::Enable) in createLoopDistributeMetadata()
333 return createLoopVectorizeMetadata(Attrs, LoopProperties, in createLoopDistributeMetadata()
339 createLoopVectorizeMetadata(Attrs, LoopProperties, FollowupHasTransforms); in createLoopDistributeMetadata()
348 (Attrs.DistributeEnable == LoopAttributes::Enable)))}; in createLoopDistributeMetadata()
362 MDNode *LoopInfo::createFullUnrollMetadata(const LoopAttributes &Attrs, in createFullUnrollMetadata() argument
368 if (Attrs.UnrollEnable == LoopAttributes::Disable) in createFullUnrollMetadata()
370 else if (Attrs.UnrollEnable == LoopAttributes::Full) in createFullUnrollMetadata()
381 return createLoopDistributeMetadata(Attrs, LoopProperties, in createFullUnrollMetadata()
400 const LoopAttributes &Attrs, in createMetadata() argument
415 if (Attrs.MustProgress) in createMetadata()
419 assert(!!AccGroup == Attrs.IsParallel && in createMetadata()
421 if (Attrs.IsParallel) { in createMetadata()
428 return createFullUnrollMetadata(Attrs, LoopProperties, HasUserTransforms); in createMetadata()
456 LoopInfo::LoopInfo(BasicBlock *Header, const LoopAttributes &Attrs, in LoopInfo() argument
459 : Header(Header), Attrs(Attrs), StartLoc(StartLoc), EndLoc(EndLoc), in LoopInfo()
462 if (Attrs.IsParallel) { in LoopInfo()
468 if (!Attrs.IsParallel && Attrs.VectorizeWidth == 0 && in LoopInfo()
469 Attrs.InterleaveCount == 0 && Attrs.UnrollCount == 0 && in LoopInfo()
470 Attrs.UnrollAndJamCount == 0 && !Attrs.PipelineDisabled && in LoopInfo()
471 Attrs.PipelineInitiationInterval == 0 && in LoopInfo()
472 Attrs.VectorizePredicateEnable == LoopAttributes::Unspecified && in LoopInfo()
473 Attrs.VectorizeEnable == LoopAttributes::Unspecified && in LoopInfo()
474 Attrs.UnrollEnable == LoopAttributes::Unspecified && in LoopInfo()
475 Attrs.UnrollAndJamEnable == LoopAttributes::Unspecified && in LoopInfo()
476 Attrs.DistributeEnable == LoopAttributes::Unspecified && !StartLoc && in LoopInfo()
477 !EndLoc && !Attrs.MustProgress) in LoopInfo()
490 LoopAttributes CurLoopAttr = Attrs; in finish()
493 if (Parent && (Parent->Attrs.UnrollAndJamEnable || in finish()
494 Parent->Attrs.UnrollAndJamCount != 0)) { in finish()
501 BeforeJam.IsParallel = AfterJam.IsParallel = Attrs.IsParallel; in finish()
503 BeforeJam.VectorizeWidth = Attrs.VectorizeWidth; in finish()
504 BeforeJam.InterleaveCount = Attrs.InterleaveCount; in finish()
505 BeforeJam.VectorizeEnable = Attrs.VectorizeEnable; in finish()
506 BeforeJam.DistributeEnable = Attrs.DistributeEnable; in finish()
507 BeforeJam.VectorizePredicateEnable = Attrs.VectorizePredicateEnable; in finish()
509 switch (Attrs.UnrollEnable) { in finish()
512 BeforeJam.UnrollEnable = Attrs.UnrollEnable; in finish()
513 AfterJam.UnrollEnable = Attrs.UnrollEnable; in finish()
523 AfterJam.VectorizePredicateEnable = Attrs.VectorizePredicateEnable; in finish()
524 AfterJam.UnrollCount = Attrs.UnrollCount; in finish()
525 AfterJam.PipelineDisabled = Attrs.PipelineDisabled; in finish()
526 AfterJam.PipelineInitiationInterval = Attrs.PipelineInitiationInterval; in finish()
533 BeforeJam.UnrollAndJamCount = Attrs.UnrollAndJamCount; in finish()
534 BeforeJam.UnrollAndJamEnable = Attrs.UnrollAndJamEnable; in finish()
576 ArrayRef<const clang::Attr *> Attrs, in push() argument
579 // Identify loop hint attributes from Attrs. in push()
580 for (const auto *Attr : Attrs) { in push()