Index: src/IceCfg.h |
diff --git a/src/IceCfg.h b/src/IceCfg.h |
index e12bc9de0a77626817f960e86c2a3356ba879433..27a254a00661963f134914fdf2d542858bf88452 100644 |
--- a/src/IceCfg.h |
+++ b/src/IceCfg.h |
@@ -17,6 +17,9 @@ |
#include "IceDefs.h" |
#include "IceTypes.h" |
+ |
+#include "assembler.h" |
+#include "IceClFlags.h" |
#include "IceGlobalContext.h" |
#include "llvm/ADT/OwningPtr.h" |
@@ -74,6 +77,12 @@ public: |
// Miscellaneous accessors. |
TargetLowering *getTarget() const { return Target.get(); } |
Liveness *getLiveness() const { return Live.get(); } |
+ template <typename T> T *getAssembler() const { |
+ return static_cast<T *>(TargetAssembler.get()); |
+ } |
+ bool UseIntegratedAssembler() const { |
+ return getContext()->getFlags().UseIntegratedAssembler; |
+ } |
bool hasComputedFrame() const; |
// Passes over the CFG. |
@@ -150,6 +159,7 @@ private: |
VarList Args; // subset of Variables, in argument order |
llvm::OwningPtr<Liveness> Live; |
llvm::OwningPtr<TargetLowering> Target; |
+ llvm::OwningPtr<Assembler> TargetAssembler; |
// CurrentNode is maintained during dumping/emitting just for |
// validating Variable::DefNode. Normally, a traversal over |