1717#include " llvm/ADT/SetVector.h"
1818#include " llvm/ADT/SmallString.h"
1919#include " mlir/IR/Builders.h"
20+ #include " mlir/Support/LLVM.h"
2021#include " sequence.h"
2122#include " util.h"
2223
@@ -106,7 +107,7 @@ const IterationSpace &IterationSpaceAnalysis::ComputeIterationSpace(
106107 loop_names.reserve (num_loops);
107108
108109 for (mlir::Attribute attr : compute_op.Loops ()) {
109- LoopAttr loop = attr. cast <LoopAttr>();
110+ LoopAttr loop = mlir:: cast<LoopAttr>(attr );
110111 loop_names.push_back (loop.name ());
111112 exprs.push_back (loop.iter ());
112113 }
@@ -265,10 +266,10 @@ mlir::LogicalResult VerifyLoopNestWellFormed(
265266 int domain_size = shape.Dimensions ().size ();
266267
267268 for (int i = 0 , e = loop_nest.size (); i < e; ++i) {
268- LoopAttr loop = loop_nest[i]. dyn_cast <LoopAttr>();
269+ LoopAttr loop = mlir:: dyn_cast<LoopAttr>(loop_nest[i] );
269270 // Ensure that symbols are unique in the loop nest.
270271 for (int j = 0 ; j < i; ++j) {
271- if (loop.name () == loop_nest[j]. cast <LoopAttr>().name ()) {
272+ if (loop.name () == mlir:: cast<LoopAttr>(loop_nest[j] ).name ()) {
272273 return mlir::emitError (loc)
273274 << " name " << loop.name () << " used twice in the same loop nest" ;
274275 }
@@ -317,7 +318,7 @@ class LoopNestState {
317318 int common_prefix_size = 0 ;
318319 for (int e = std::min (loop_nest.size (), open_loops_.size ());
319320 common_prefix_size < e; ++common_prefix_size) {
320- LoopAttr loop = loop_nest[common_prefix_size]. cast <LoopAttr>();
321+ LoopAttr loop = mlir:: cast<LoopAttr>(loop_nest[common_prefix_size] );
321322 if (loop.name () != open_loops_[common_prefix_size]) break ;
322323 }
323324
@@ -326,7 +327,7 @@ class LoopNestState {
326327
327328 // Add remaining loops to the current fusion prefix.
328329 for (mlir::Attribute attribute : loop_nest.drop_front (common_prefix_size)) {
329- LoopAttr loop = attribute. cast <LoopAttr>();
330+ LoopAttr loop = mlir:: cast<LoopAttr>(attribute );
330331
331332 if (closed_loops_.count (loop.name ()) > 0 ) {
332333 return op.EmitError () << " occurrences of loop " << loop.name ()
@@ -500,7 +501,7 @@ static mlir::LogicalResult VerifyLoopRanges(
500501 const LoopFusionAnalysis &fusion_analysis,
501502 const SequenceAnalysis &sequence_analysis) {
502503 for (mlir::Attribute attr : loop_nest) {
503- LoopAttr loop = attr. cast <LoopAttr>();
504+ LoopAttr loop = mlir:: cast<LoopAttr>(attr );
504505 const LoopFusionClass &fusion_class = fusion_analysis.GetClass (loop.name ());
505506 for (const auto &dimension : fusion_class.getDomain ()) {
506507 if (sequence_analysis.IsBefore (op, dimension.value .defining_op ())) {
@@ -670,7 +671,7 @@ mlir::LogicalResult LoopFusionAnalysis::Init(
670671// Returns the unroll factor of the `pos`-th loop in the given compute op.
671672// Expects the op to have a well-formed loop nest attribute.
672673static unsigned ExtractUnrollFactor (const ComputeOpInstance &op, unsigned pos) {
673- auto loop = op.Loops ()[pos]. cast <LoopAttr>( );
674+ auto loop = mlir::cast<LoopAttr>( op.Loops ()[pos]);
674675 if (mlir::IntegerAttr unroll_factor = loop.unroll ()) {
675676 return unroll_factor.getInt ();
676677 }
@@ -686,7 +687,7 @@ mlir::LogicalResult LoopFusionAnalysis::RegisterLoop(
686687 loop_names.reserve (loop_pos);
687688 iter_exprs.reserve (loop_pos);
688689 for (int i = 0 ; i < loop_pos; ++i) {
689- LoopAttr loop = op.Loops ()[i]. cast <LoopAttr>( );
690+ LoopAttr loop = mlir::cast<LoopAttr>( op.Loops ()[i]);
690691 loop_names.push_back (loop.name ());
691692 iter_exprs.push_back (loop.iter ());
692693 }
@@ -698,7 +699,7 @@ mlir::LogicalResult LoopFusionAnalysis::RegisterLoop(
698699 auto loop_nest_mapping =
699700 MappingAttr::get (op.context (), op.domain_size (), iter_exprs);
700701
701- LoopAttr loop = op.Loops ()[loop_pos]. cast <LoopAttr>( );
702+ LoopAttr loop = mlir::cast<LoopAttr>( op.Loops ()[loop_pos]);
702703 auto [it, was_inserted] =
703704 fusion_classes_.try_emplace (loop.name (), loop.name (), op, loop_nest);
704705 LoopFusionClass &fusion_class = it->second ;
0 commit comments