diff --git a/include/mlir/IR/Builders.h b/include/mlir/IR/Builders.h
index 089c3f5..cc3e21a 100644
--- a/include/mlir/IR/Builders.h
+++ b/include/mlir/IR/Builders.h
@@ -62,6 +62,7 @@
   PrimitiveType *getF16Type();
   PrimitiveType *getF32Type();
   PrimitiveType *getF64Type();
+  PrimitiveType *getTFControlType();
   IntegerType *getIntegerType(unsigned width);
   FunctionType *getFunctionType(ArrayRef<Type *> inputs,
                                 ArrayRef<Type *> results);
diff --git a/include/mlir/IR/Types.h b/include/mlir/IR/Types.h
index bd6a2d3..265dc4a 100644
--- a/include/mlir/IR/Types.h
+++ b/include/mlir/IR/Types.h
@@ -43,9 +43,12 @@
     F32,
     F64,
 
+    // TensorFlow types.
+    TFControl,
+
     /// This is a marker for the last primitive type.  The range of primitive
     /// types is expected to be this element and earlier.
-    LAST_PRIMITIVE_TYPE = F64,
+    LAST_PRIMITIVE_TYPE = TFControl,
 
     // Derived types.
     Integer,
@@ -79,6 +82,7 @@
   static PrimitiveType *getF16(MLIRContext *ctx);
   static PrimitiveType *getF32(MLIRContext *ctx);
   static PrimitiveType *getF64(MLIRContext *ctx);
+  static PrimitiveType *getTFControl(MLIRContext *ctx);
 
   /// Print the current type.
   void print(raw_ostream &os) const;
@@ -150,6 +154,9 @@
 inline PrimitiveType *Type::getF64(MLIRContext *ctx) {
   return PrimitiveType::get(Kind::F64, ctx);
 }
+inline PrimitiveType *Type::getTFControl(MLIRContext *ctx) {
+  return PrimitiveType::get(Kind::TFControl, ctx);
+}
 
 /// Integer types can have arbitrary bitwidth up to a large fixed limit of 4096.
 class IntegerType : public Type {
diff --git a/lib/IR/AsmPrinter.cpp b/lib/IR/AsmPrinter.cpp
index e53962e..26cb1fc 100644
--- a/lib/IR/AsmPrinter.cpp
+++ b/lib/IR/AsmPrinter.cpp
@@ -287,6 +287,9 @@
   case Type::Kind::F64:
     os << "f64";
     return;
+  case Type::Kind::TFControl:
+    os << "tf_control";
+    return;
 
   case Type::Kind::Integer: {
     auto *integer = cast<IntegerType>(type);
diff --git a/lib/IR/Builders.cpp b/lib/IR/Builders.cpp
index d5b85cc..a3ad431 100644
--- a/lib/IR/Builders.cpp
+++ b/lib/IR/Builders.cpp
@@ -47,6 +47,10 @@
 
 PrimitiveType *Builder::getF64Type() { return Type::getF64(context); }
 
+PrimitiveType *Builder::getTFControlType() {
+  return Type::getTFControl(context);
+}
+
 IntegerType *Builder::getIntegerType(unsigned width) {
   return Type::getInteger(width, context);
 }
diff --git a/lib/Parser/Lexer.cpp b/lib/Parser/Lexer.cpp
index 011dfcb..ce99b19 100644
--- a/lib/Parser/Lexer.cpp
+++ b/lib/Parser/Lexer.cpp
@@ -151,12 +151,13 @@
 
 /// Lex a bare identifier or keyword that starts with a letter.
 ///
-///   bare-id ::= letter (letter|digit|[_])*
+///   bare-id ::= letter (letter|digit|[_$])*
 ///   integer-type ::= `i[1-9][0-9]*`
 ///
 Token Lexer::lexBareIdentifierOrKeyword(const char *tokStart) {
-  // Match the rest of the identifier regex: [0-9a-zA-Z_]*
-  while (isalpha(*curPtr) || isdigit(*curPtr) || *curPtr == '_')
+  // Match the rest of the identifier regex: [0-9a-zA-Z_$]*
+  while (isalpha(*curPtr) || isdigit(*curPtr) || *curPtr == '_' ||
+         *curPtr == '$')
     ++curPtr;
 
   // Check to see if this identifier is a keyword.
@@ -288,4 +289,3 @@
     }
   }
 }
-
diff --git a/lib/Parser/Parser.cpp b/lib/Parser/Parser.cpp
index 11850ea..71737ce 100644
--- a/lib/Parser/Parser.cpp
+++ b/lib/Parser/Parser.cpp
@@ -281,6 +281,9 @@
   case Token::kw_affineint:
     consumeToken(Token::kw_affineint);
     return builder.getAffineIntType();
+  case Token::kw_tf_control:
+    consumeToken(Token::kw_tf_control);
+    return builder.getTFControlType();
   case Token::inttype: {
     auto width = getToken().getIntTypeBitwidth();
     if (!width.hasValue())
diff --git a/lib/Parser/TokenKinds.def b/lib/Parser/TokenKinds.def
index 44a40ee..7817d7b 100644
--- a/lib/Parser/TokenKinds.def
+++ b/lib/Parser/TokenKinds.def
@@ -107,6 +107,7 @@
 TOK_KEYWORD(size)
 TOK_KEYWORD(step)
 TOK_KEYWORD(tensor)
+TOK_KEYWORD(tf_control)
 TOK_KEYWORD(to)
 TOK_KEYWORD(true)
 TOK_KEYWORD(vector)
