Lines Matching full:environment

9 //  This file defines an Environment class that is used by dataflow analyses
43 // FIXME: convert these to parameters of the analysis or environment. Current
98 const Environment &Env1, Value &Val2,
99 const Environment &Env2,
100 Environment::ValueModel &Model) {
123 const Environment &Env1, Value &Val2,
124 const Environment &Env2,
125 Environment &JoinedEnv,
126 Environment::ValueModel &Model) {
163 const Environment &PrevEnv,
164 Value &Current, Environment &CurrentEnv,
165 Environment::ValueModel &Model) {
176 // environment.
180 // values are implied to be either true or false in the current environment.
210 const Environment &Env1,
211 const Environment &Env2,
212 Environment::ValueModel &Model) {
238 const Environment &Env1, const Environment &Env2,
239 Environment &JoinedEnv, Environment::ValueModel &Model) {
253 if (Value *JoinedVal = Environment::joinValues(
268 Environment &CurEnv, const Environment &PrevEnv,
269 Environment::ValueModel &Model, LatticeEffect &Effect) {
494 void Environment::initialize() {
570 void Environment::initFieldsGlobalsAndFuncs(const ReferencedDecls &Referenced) {
595 Environment Environment::fork() const {
596 Environment Copy(*this);
601 bool Environment::canDescend(unsigned MaxDepth,
606 Environment Environment::pushCall(const CallExpr *Call) const {
607 Environment Env(*this);
615 // environment's `ThisPointeeLoc`.
628 Environment Environment::pushCall(const CXXConstructExpr *Call) const {
629 Environment Env(*this);
640 void Environment::pushCallInternal(const FunctionDecl *FuncDecl,
667 void Environment::popCall(const CallExpr *Call, const Environment &CalleeEnv) {
687 void Environment::popCall(const CXXConstructExpr *Call,
688 const Environment &CalleeEnv) {
689 // See also comment in `popCall(const CallExpr *, const Environment &)` above.
694 bool Environment::equivalentTo(const Environment &Other,
695 Environment::ValueModel &Model) const {
725 LatticeEffect Environment::widen(const Environment &PrevEnv,
726 Environment::ValueModel &Model) {
739 // By the API, `PrevEnv` is a previous version of the environment for the same
763 Environment Environment::join(const Environment &EnvA, const Environment &EnvB,
764 Environment::ValueModel &Model,
774 Environment JoinedEnv(*EnvA.DACtx);
815 Value *Environment::joinValues(QualType Ty, Value *Val1,
816 const Environment &Env1, Value *Val2,
817 const Environment &Env2, Environment &JoinedEnv,
818 Environment::ValueModel &Model) {
833 StorageLocation &Environment::createStorageLocation(QualType Type) {
837 StorageLocation &Environment::createStorageLocation(const ValueDecl &D) {
839 // ensure that the environment stabilizes across loop iterations. Storage
844 StorageLocation &Environment::createStorageLocation(const Expr &E) {
846 // ensure that the environment stabilizes across loop iterations. Storage
851 void Environment::setStorageLocation(const ValueDecl &D, StorageLocation &Loc) {
862 StorageLocation *Environment::getStorageLocation(const ValueDecl &D) const {
872 void Environment::removeDecl(const ValueDecl &D) { DeclToLoc.erase(&D); }
874 void Environment::setStorageLocation(const Expr &E, StorageLocation &Loc) {
885 StorageLocation *Environment::getStorageLocation(const Expr &E) const {
894 Environment::getResultObjectLocation(const Expr &RecordPRValue) const {
909 PointerValue &Environment::getOrCreateNullPointerValue(QualType PointeeType) {
913 void Environment::initializeFieldsWithValues(RecordStorageLocation &Loc,
924 void Environment::setValue(const StorageLocation &Loc, Value &Val) {
930 void Environment::setValue(const Expr &E, Value &Val) {
939 Value *Environment::getValue(const StorageLocation &Loc) const {
945 Value *Environment::getValue(const ValueDecl &D) const {
952 Value *Environment::getValue(const Expr &E) const {
967 Value *Environment::createValue(QualType Type) {
979 Value *Environment::createValueUnlessSelfReferential(
1017 Environment::createLocAndMaybeValue(QualType Ty,
1042 void Environment::initializeFieldsWithValues(RecordStorageLocation &Loc,
1086 StorageLocation &Environment::createObjectInternal(const ValueDecl *D,
1126 // default value (assuming we don't update the environment API to return
1138 void Environment::assume(const Formula &F) {
1142 bool Environment::proves(const Formula &F) const {
1146 bool Environment::allows(const Formula &F) const {
1150 void Environment::dump(raw_ostream &OS) const {
1203 void Environment::dump() const { dump(llvm::dbgs()); }
1205 Environment::PrValueToResultObject Environment::buildResultObjectMap(
1221 Environment::PrValueToResultObject Environment::buildResultObjectMap(
1232 const Environment &Env) {
1246 const Environment &Env) {