summaryrefslogtreecommitdiffstats
path: root/llvm/utils/LLVMVisualizers
diff options
context:
space:
mode:
authorMike Spertus <mike@spertus.com>2016-06-13 01:43:14 +0000
committerMike Spertus <mike@spertus.com>2016-06-13 01:43:14 +0000
commit292e511a93d2ab4a0b090c07f66867d8ba1e5dbd (patch)
treeaa98cbbab6069a4b41aedcec18fd8673cffe423c /llvm/utils/LLVMVisualizers
parent0eb40cfa6fa16626f4bddb25132722b42400b385 (diff)
downloadbcm5719-llvm-292e511a93d2ab4a0b090c07f66867d8ba1e5dbd.tar.gz
bcm5719-llvm-292e511a93d2ab4a0b090c07f66867d8ba1e5dbd.zip
Improved Visual Studio 2015 visualization of SmallVectorImpl
When visualizing small vectors in VS2015, show the first few elements in the DisplayString instead of the size. For example, a SmallVector of DeclAccessPair will visualize like {public typename ...Ts, public typename U} The visualization in VS2013 remains the same because we continue to include the old visualizer with a lower-than-default priority of MediumLow, and the same SmallVector would continue to be visualized as {size = 2} llvm-svn: 272525
Diffstat (limited to 'llvm/utils/LLVMVisualizers')
-rw-r--r--llvm/utils/LLVMVisualizers/llvm.natvis27
1 files changed, 25 insertions, 2 deletions
diff --git a/llvm/utils/LLVMVisualizers/llvm.natvis b/llvm/utils/LLVMVisualizers/llvm.natvis
index 6d37fa01453..6d8475a1c72 100644
--- a/llvm/utils/LLVMVisualizers/llvm.natvis
+++ b/llvm/utils/LLVMVisualizers/llvm.natvis
@@ -8,8 +8,8 @@ For Visual Studio 2013 only, put this file into
For later versions of Visual Studio, no setup is required.
-->
<AutoVisualizer xmlns="http://schemas.microsoft.com/vstudio/debugger/natvis/2010">
-
- <Type Name="llvm::SmallVectorImpl&lt;*&gt;">
+ <!-- VS2013 -->
+ <Type Name="llvm::SmallVectorImpl&lt;*&gt;" Priority="MediumLow">
<DisplayString Condition="(($T1*)EndX - ($T1*)BeginX) == 0">empty</DisplayString>
<DisplayString Condition="(($T1*)EndX - ($T1*)BeginX) != 0">{{ size={($T1*)EndX - ($T1*)BeginX} }}</DisplayString>
<Expand>
@@ -21,6 +21,29 @@ For later versions of Visual Studio, no setup is required.
</ArrayItems>
</Expand>
</Type>
+ <!-- VS2015 and up -->
+ <Type Name="llvm::SmallVectorImpl&lt;*&gt;">
+ <DisplayString IncludeView ="elt0" Condition="(($T1*)EndX - ($T1*)BeginX) == 0"></DisplayString>
+ <DisplayString IncludeView ="elt0">{(($T1*)BeginX)[0]}{*this,view(elt1)}</DisplayString>
+ <DisplayString IncludeView ="elt1" Condition="(($T1*)EndX - ($T1*)BeginX) == 1"></DisplayString>
+ <DisplayString IncludeView ="elt1">, {(($T1*)BeginX)[1]}{*this,view(elt2)}</DisplayString>
+ <DisplayString IncludeView ="elt2" Condition="(($T1*)EndX - ($T1*)BeginX) == 2"></DisplayString>
+ <DisplayString IncludeView ="elt2">, {(($T1*)BeginX)[2]}{*this,view(elt3)}</DisplayString>
+ <DisplayString IncludeView ="elt3" Condition="(($T1*)EndX - ($T1*)BeginX) == 3"></DisplayString>
+ <DisplayString IncludeView ="elt3">, {(($T1*)BeginX)[2]}{*this,view(elt4)}</DisplayString>
+ <DisplayString IncludeView ="elt4" Condition="(($T1*)EndX - ($T1*)BeginX) == 4"></DisplayString>
+ <DisplayString IncludeView ="elt4">, /* {(($T1*)EndX - ($T1*)BeginX) - 4} more*/ </DisplayString>
+ <DisplayString Condition="(($T1*)EndX - ($T1*)BeginX) == 0">empty</DisplayString>
+ <DisplayString Condition="(($T1*)EndX - ($T1*)BeginX) != 0">{{{*this,view(elt0)}}}</DisplayString>
+ <Expand>
+ <Item Name="[size]">($T1*)EndX - ($T1*)BeginX</Item>
+ <Item Name="[capacity]">($T1*)CapacityX - ($T1*)BeginX</Item>
+ <ArrayItems>
+ <Size>($T1*)EndX - ($T1*)BeginX</Size>
+ <ValuePointer>($T1*)BeginX</ValuePointer>
+ </ArrayItems>
+ </Expand>
+ </Type>
<Type Name="llvm::ArrayRef&lt;*&gt;">
<DisplayString Condition="Length == 0">empty</DisplayString>
<DisplayString Condition="Length != 0">{{ size={Length} }}</DisplayString>
OpenPOWER on IntegriCloud