9#ifndef FORTRAN_LOWER_COMPONENTPATH_H
10#define FORTRAN_LOWER_COMPONENTPATH_H
12#include "flang/Lower/IterationSpace.h"
13#include "llvm/ADT/SmallVector.h"
40 using ExtendRefFunc = std::function<mlir::Value(
const mlir::Value &)>;
49 bool isSlice()
const {
return !trips.empty() || hasComponents(); }
50 bool hasComponents()
const {
return !suffixComponents.empty(); }
53 bool hasExtendCoorRef()
const {
return extendCoorRef.has_value(); }
54 ExtendRefFunc getExtendCoorRef()
const;
75 void setPC(
bool isImplicit);
Definition: variable.h:208
Definition: variable.h:369
Definition: variable.h:74
Definition: variable.h:316
Definition: ComponentPath.h:38
std::optional< ExtendRefFunc > extendCoorRef
Definition: ComponentPath.h:72
Definition: IterationSpace.h:47
Definition: ComponentPath.h:26
Definition: AbstractConverter.h:59
bool isRankedArrayAccess(const Fortran::evaluate::ArrayRef &x)
Definition: ComponentPath.cpp:37
Definition: AbstractConverter.h:31