--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+<AutoVisualizer xmlns="http://schemas.microsoft.com/vstudio/debugger/natvis/2010">
+ <Type Name="mlir::detail::StorageUserBase<*>">
+ <!--handles mlir::Type-->
+ <DisplayString>{"$T3"}</DisplayString>
+ <Expand>
+ <ExpandedItem>($T3*)impl</ExpandedItem>
+ </Expand>
+ </Type>
+
+ <Type Name="mlir::Value">
+ <DisplayString>{ownerAndKind}</DisplayString>
+ <Expand>
+ <Item Name="OpResult" Condition=
+ "((ownerAndKind.Value >> ImplType::InfoTy::IntShift) & ImplType::InfoTy::IntMask) < mlir::Value::Kind::TrailingOpResult">
+ (Operation*)(ImplType::InfoTy::PointerBitMask & ownerAndKind.Value)
+ </Item>
+ <Item Name="TrailingOpResult" Condition=
+ "((ownerAndKind.Value >> ImplType::InfoTy::IntShift) & ImplType::InfoTy::IntMask) == mlir::Value::Kind::TrailingOpResult">
+ (detail::TrailingOpResult*)(ImplType::InfoTy::PointerBitMask & ownerAndKind.Value)
+ </Item>
+ <Item Name="BlockArgument" Condition=
+ "((ownerAndKind.Value >> ImplType::InfoTy::IntShift) & ImplType::InfoTy::IntMask) == mlir::Value::Kind::BlockArgument">
+ (detail::BlockArgumentImpl*)(ImplType::InfoTy::PointerBitMask & ownerAndKind.Value)
+ </Item>
+ <Item Name="ownerAndKind">ownerAndKind</Item>
+ </Expand>
+ </Type>
+
+ <Type Name="mlir::Location">
+ <Expand>
+ <ExpandedItem >(LocationAttr)impl</ExpandedItem>
+ </Expand>
+ </Type>
+</AutoVisualizer>
+