LiveVariables.h (208954) | LiveVariables.h (212904) |
---|---|
1//===- LiveVariables.h - Live Variable Analysis for Source CFGs -*- C++ --*-===// 2// 3// The LLVM Compiler Infrastructure 4// 5// This file is distributed under the University of Illinois Open Source 6// License. See LICENSE.TXT for details. 7// 8//===----------------------------------------------------------------------===// --- 27 unchanged lines hidden (view full) --- 36 // (so that we don't explore such expressions twice). We also want 37 // to compute liveness information for block-level expressions, since these 38 // act as "temporary" values. 39 40 struct AnalysisDataTy : public StmtDeclBitVector_Types::AnalysisDataTy { 41 ObserverTy* Observer; 42 ValTy AlwaysLive; 43 AnalysisContext *AC; | 1//===- LiveVariables.h - Live Variable Analysis for Source CFGs -*- C++ --*-===// 2// 3// The LLVM Compiler Infrastructure 4// 5// This file is distributed under the University of Illinois Open Source 6// License. See LICENSE.TXT for details. 7// 8//===----------------------------------------------------------------------===// --- 27 unchanged lines hidden (view full) --- 36 // (so that we don't explore such expressions twice). We also want 37 // to compute liveness information for block-level expressions, since these 38 // act as "temporary" values. 39 40 struct AnalysisDataTy : public StmtDeclBitVector_Types::AnalysisDataTy { 41 ObserverTy* Observer; 42 ValTy AlwaysLive; 43 AnalysisContext *AC; |
44 bool killAtAssign; |
|
44 | 45 |
45 AnalysisDataTy() : Observer(NULL), AC(NULL) {} | 46 AnalysisDataTy() : Observer(NULL), AC(NULL), killAtAssign(true) {} |
46 }; 47 48 //===-----------------------------------------------------===// 49 // ObserverTy - Observer for uninitialized values queries. 50 //===-----------------------------------------------------===// 51 52 struct ObserverTy { 53 virtual ~ObserverTy() {} --- 9 unchanged lines hidden (view full) --- 63 64class LiveVariables : public DataflowValues<LiveVariables_ValueTypes, 65 dataflow::backward_analysis_tag> { 66 67 68public: 69 typedef LiveVariables_ValueTypes::ObserverTy ObserverTy; 70 | 47 }; 48 49 //===-----------------------------------------------------===// 50 // ObserverTy - Observer for uninitialized values queries. 51 //===-----------------------------------------------------===// 52 53 struct ObserverTy { 54 virtual ~ObserverTy() {} --- 9 unchanged lines hidden (view full) --- 64 65class LiveVariables : public DataflowValues<LiveVariables_ValueTypes, 66 dataflow::backward_analysis_tag> { 67 68 69public: 70 typedef LiveVariables_ValueTypes::ObserverTy ObserverTy; 71 |
71 LiveVariables(AnalysisContext &AC); | 72 LiveVariables(AnalysisContext &AC, bool killAtAssign = true); |
72 73 /// IsLive - Return true if a variable is live at the end of a 74 /// specified block. 75 bool isLive(const CFGBlock* B, const VarDecl* D) const; 76 77 /// IsLive - Returns true if a variable is live at the beginning of the 78 /// the statement. This query only works if liveness information 79 /// has been recorded at the statement level (see runOnAllBlocks), and --- 42 unchanged lines hidden --- | 73 74 /// IsLive - Return true if a variable is live at the end of a 75 /// specified block. 76 bool isLive(const CFGBlock* B, const VarDecl* D) const; 77 78 /// IsLive - Returns true if a variable is live at the beginning of the 79 /// the statement. This query only works if liveness information 80 /// has been recorded at the statement level (see runOnAllBlocks), and --- 42 unchanged lines hidden --- |