SEA IR type handling complete for fibonacci.

types.h: Encapsulated types map into separate class.
code_gen.*, visitor.h: Added visitor function for
         unnamed constants to enable correct
         .dot display and type handling.
type_inference_visitor.cc: Propagated types through
             phi functions, invoke, add-int instructions. Added
             SEA IR type merging functions.

Change-Id: I0fb1c4d40e3af43dc295133a826ce125a787cc33
diff --git a/compiler/sea_ir/frontend.cc b/compiler/sea_ir/frontend.cc
index 951273c..b6f84ee 100644
--- a/compiler/sea_ir/frontend.cc
+++ b/compiler/sea_ir/frontend.cc
@@ -23,7 +23,7 @@
 #include "llvm/llvm_compilation_unit.h"
 #include "mirror/object.h"
 #include "runtime.h"
-
+#include "safe_map.h"
 
 #include "sea_ir/sea.h"
 #include "sea_ir/debug/dot_gen.h"
@@ -46,8 +46,8 @@
   sea_ir::SeaGraph* ir_graph = sea_ir::SeaGraph::GetCurrentGraph(dex_file);
   ir_graph->CompileMethod(code_item, class_def_idx, method_idx, method_access_flags, dex_file);
   sea_ir::DotConversion dc;
-  std::map<int, const sea_ir::Type*>  types = ir_graph->ti_->GetTypeMap();
-  dc.DumpSea(ir_graph, "/tmp/temp.dot", &types);
+  SafeMap<int, const sea_ir::Type*>*  types = ir_graph->ti_->GetTypeMap();
+  dc.DumpSea(ir_graph, "/tmp/temp.dot", types);
   CHECK(0 && "No SEA compiled function exists yet.");
   return NULL;
 }