Lines Matching defs:ParameterStatus

75 class ParameterStatus {
170 constexpr ParameterStatus() = default;
171 /* implicit */ ParameterStatus(Kind K) : StatusKind(K) {
174 ParameterStatus(Kind K, const Expr *Call) : StatusKind(K), Call(Call) {
179 assert(seenAnyCalls(getKind()) && "ParameterStatus doesn't have a call");
192 void join(const ParameterStatus &Other) {
205 bool operator==(const ParameterStatus &Other) const {
221 State(unsigned Size, ParameterStatus::Kind K = ParameterStatus::NotVisited)
226 ParameterStatus &getStatusFor(unsigned Index) { return ParamData[Index]; }
227 const ParameterStatus &getStatusFor(unsigned Index) const {
243 ParameterStatus::Kind getKindFor(unsigned Index) const {
248 return llvm::all_of(ParamData, [](const ParameterStatus &S) {
249 return S.getKind() != ParameterStatus::NotVisited;
262 using iterator = ParamSizedVector<ParameterStatus>::iterator;
263 using const_iterator = ParamSizedVector<ParameterStatus>::const_iterator;
276 ParamSizedVector<ParameterStatus> ParamData;
717 assignState(Exit, State(size(), ParameterStatus::NotCalled));
778 case ParameterStatus::NotCalled:
800 case ParameterStatus::MaybeCalled:
858 BlockState.getKindFor(Index) == ParameterStatus::MaybeCalled) {
905 ParameterStatus &CurrentParamStatus = CurrentState.getStatusFor(Index);
916 CurrentParamStatus.getKind() == ParameterStatus::DefinitelyCalled);
920 CurrentParamStatus = ParameterStatus::Reported;
922 } else if (CurrentParamStatus.getKind() != ParameterStatus::Reported) {
925 ParameterStatus Called(ParameterStatus::DefinitelyCalled, Call);
932 ParameterStatus &CurrentParamStatus = CurrentState.getStatusFor(Index);
936 CurrentParamStatus.getKind() != ParameterStatus::Kind::Reported) {
937 CurrentParamStatus = ParameterStatus::Escaped;
947 if (getState(Succ).getKindFor(Index) == ParameterStatus::NotCalled) {
1293 return StateForOneBB.getKindFor(Index) == ParameterStatus::Escaped;
1369 ParameterStatus &CurrentStatus = ToAlter.getStatusFor(*Index);
1381 const ParameterStatus &StatusInSucc =
1391 if (StatusInSucc.getKind() == ParameterStatus::DefinitelyCalled) {
1419 ParameterStatus &CurrentStatus = IndexedStatus.value();
1430 CurrentStatus = ParameterStatus::Escaped;
1440 ParameterStatus::MaybeCalled,
1441 ParameterStatus::DefinitelyCalled);
1448 ParameterStatus::NotCalled, ParameterStatus::Escaped);
1452 unsigned ParameterIndex, ParameterStatus::Kind AfterJoin,
1453 ParameterStatus::Kind BeforeJoin) const {
1454 assert(!ParameterStatus::isErrorStatus(BeforeJoin) &&
1455 ParameterStatus::isErrorStatus(AfterJoin) &&
1459 const ParameterStatus &CurrentStatus =
1469 ParameterStatus::Kind ToFind) const {
1492 for (ParameterStatus &PS : CurrentState) {
1493 PS = ParameterStatus::NoReturn;
1510 ParameterStatus &CurrentParamStatus = CurrentState.getStatusFor(*Index);
1521 CurrentParamStatus = ParameterStatus::Reported;