llvm.org GIT mirror llvm / b2c8f18
Use VS2015 Project Support for Natvis to eliminate the need to manually install natvis files When using Visual Studio 2015, cmake now puts the native visualizers in llvm.sln, so the developer automatically sees custom visualizations. Much thanks to ariccio who provided extensive help on this change. (manual installation still needed on VS2013) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@264601 91177308-0d34-0410-b5e6-96231b3b80d8 Mike Spertus 4 years ago
3 changed file(s) with 178 addition(s) and 169 deletion(s). Raw diff Collapse all Expand all
0 # Do this by hand instead of using add_llvm_utilities(), which
1 # tries to create a corresponding executable, which we don't want.
2 if (LLVM_ADD_NATIVE_VISUALIZERS_TO_SOLUTION)
3 set(LLVM_VISUALIZERS llvm.natvis)
4 add_custom_target(LLVMVisualizers SOURCES ${LLVM_VISUALIZERS})
5 set_target_properties(LLVMVisualizers PROPERTIES FOLDER "Utils")
6 endif()
0
1
9
10
11
12 empty
13 {{ size={($T1*)EndX - ($T1*)BeginX} }}
14
15 ($T1*)EndX - ($T1*)BeginX
16 ($T1*)CapacityX - ($T1*)BeginX
17
18 ($T1*)EndX - ($T1*)BeginX
19 ($T1*)BeginX
20
21
22
23
24
25 {BeginX,s}
26 BeginX,s
27
28 (char*)EndX - (char*)BeginX
29 (char*)CapacityX - (char*)BeginX
30
31 (char*)EndX - (char*)BeginX
32 (char*)BeginX
33
34
35
36
37
38 {Data,[Length]s}
39 Data,[Length]s
40
41 Length
42
43 Length
44 Data
45
46
47
48
49
50 {IntMask}: {($T1)(Value & PointerBitMask)} [{($T3)((Value >> IntShift) & IntMask)}]
51
52 ($T1)(Value & PointerBitMask)
53 ($T3)((Value >> IntShift) & IntMask)
54
55
56
57
58 {"$T1", s8b}: {($T1)(Val.Value & Val.PointerBitMask)}
59 {"$T2", s8b}: {($T2)(Val.Value & Val.PointerBitMask)}
60
61 ($T1)(Val.Value & Val.PointerBitMask)
62 ($T2)(Val.Value & Val.PointerBitMask)
63
64
65
66
67 {"$T1", s8b}: {($T1)((Val.Val.Value >> 2) << 2)}
68 {"$T2", s8b}: {($T2)((Val.Val.Value >> 2) << 2)}
69 {"$T3", s8b}: {($T3)((Val.Val.Value >> 2) << 2)}
70
71 ($T1)((Val.Val.Value >> 2) << 2)
72 ($T2)((Val.Val.Value >> 2) << 2)
73 ($T3)((Val.Val.Value >> 2) << 2)
74
75
76
77
78 {"$T1", s8b}: {($T1)((Val.Val.Value >> 2) << 2)}
79 {"$T2", s8b}: {($T2)((Val.Val.Value >> 2) << 2)}
80 {"$T3", s8b}: {($T3)((Val.Val.Value >> 2) << 2)}
81 {"$T4", s8b}: {($T4)((Val.Val.Value >> 2) << 2)}
82
83 ($T1)((Val.Val.Value >> 2) << 2)
84 ($T2)((Val.Val.Value >> 2) << 2)
85 ($T3)((Val.Val.Value >> 2) << 2)
86 ($T4)((Val.Val.Value >> 2) << 2)
87
88
89
90
91 {{ empty }}
92 {{ head={Head} }}
93
94
95 Head
96 Next
97 this
98
99
100
101
102
103 empty
104 RefPtr [1 ref] {*Obj}
105 RefPtr [{Obj->ref_cnt} refs] {*Obj}
106
107 Obj->ref_cnt
108 Obj
109
110
111
112
113 {{ [Small Mode] size={NumElements}, capacity={CurArraySize} }}
114 {{ [Big Mode] size={NumElements}, capacity={CurArraySize} }}
115
116 NumElements
117 CurArraySize
118
119 CurArraySize
120 ($T1*)CurArray
121
122
123
124
125
126 empty
127 {{ size={NumEntries}, buckets={NumBuckets} }}
128
129 NumEntries
130 NumBuckets
131
132 NumBuckets
133 Buckets
134
135
136
137
138
139 {{ size={NumItems}, buckets={NumBuckets} }}
140
141 NumItems
142 NumBuckets
143
144 NumBuckets
145 (MapEntryTy**)TheTable
146
147
148
149
150
151 empty
152 ({this+1,s}, {second})
153
154 this+1,s
155 second
156
157
158
159
160 {Data}
161
162
163
164 empty
165 {*(($T1 *)(unsigned char *)storage.buffer)}
166
167 *(($T1 *)(unsigned char *)storage.buffer)
168
169
170
+0
-169
utils/llvm.natvis less more
None
1
7
8
9
10 empty
11 {{ size={($T1*)EndX - ($T1*)BeginX} }}
12
13 ($T1*)EndX - ($T1*)BeginX
14 ($T1*)CapacityX - ($T1*)BeginX
15
16 ($T1*)EndX - ($T1*)BeginX
17 ($T1*)BeginX
18
19
20
21
22
23 {BeginX,s}
24 BeginX,s
25
26 (char*)EndX - (char*)BeginX
27 (char*)CapacityX - (char*)BeginX
28
29 (char*)EndX - (char*)BeginX
30 (char*)BeginX
31
32
33
34
35
36 {Data,[Length]s}
37 Data,[Length]s
38
39 Length
40
41 Length
42 Data
43
44
45
46
47
48 {IntMask}: {($T1)(Value & PointerBitMask)} [{($T3)((Value >> IntShift) & IntMask)}]
49
50 ($T1)(Value & PointerBitMask)
51 ($T3)((Value >> IntShift) & IntMask)
52
53
54
55
56 {"$T1", s8b}: {($T1)(Val.Value & Val.PointerBitMask)}
57 {"$T2", s8b}: {($T2)(Val.Value & Val.PointerBitMask)}
58
59 ($T1)(Val.Value & Val.PointerBitMask)
60 ($T2)(Val.Value & Val.PointerBitMask)
61
62
63
64
65 {"$T1", s8b}: {($T1)((Val.Val.Value >> 2) << 2)}
66 {"$T2", s8b}: {($T2)((Val.Val.Value >> 2) << 2)}
67 {"$T3", s8b}: {($T3)((Val.Val.Value >> 2) << 2)}
68
69 ($T1)((Val.Val.Value >> 2) << 2)
70 ($T2)((Val.Val.Value >> 2) << 2)
71 ($T3)((Val.Val.Value >> 2) << 2)
72
73
74
75
76 {"$T1", s8b}: {($T1)((Val.Val.Value >> 2) << 2)}
77 {"$T2", s8b}: {($T2)((Val.Val.Value >> 2) << 2)}
78 {"$T3", s8b}: {($T3)((Val.Val.Value >> 2) << 2)}
79 {"$T4", s8b}: {($T4)((Val.Val.Value >> 2) << 2)}
80
81 ($T1)((Val.Val.Value >> 2) << 2)
82 ($T2)((Val.Val.Value >> 2) << 2)
83 ($T3)((Val.Val.Value >> 2) << 2)
84 ($T4)((Val.Val.Value >> 2) << 2)
85
86
87
88
89 {{ empty }}
90 {{ head={Head} }}
91
92
93 Head
94 Next
95 this
96
97
98
99
100
101 empty
102 RefPtr [1 ref] {*Obj}
103 RefPtr [{Obj->ref_cnt} refs] {*Obj}
104
105 Obj->ref_cnt
106 Obj
107
108
109
110
111 {{ [Small Mode] size={NumElements}, capacity={CurArraySize} }}
112 {{ [Big Mode] size={NumElements}, capacity={CurArraySize} }}
113
114 NumElements
115 CurArraySize
116
117 CurArraySize
118 ($T1*)CurArray
119
120
121
122
123
124 empty
125 {{ size={NumEntries}, buckets={NumBuckets} }}
126
127 NumEntries
128 NumBuckets
129
130 NumBuckets
131 Buckets
132
133
134
135
136
137 {{ size={NumItems}, buckets={NumBuckets} }}
138
139 NumItems
140 NumBuckets
141
142 NumBuckets
143 (MapEntryTy**)TheTable
144
145
146
147
148
149 empty
150 ({this+1,s}, {second})
151
152 this+1,s
153 second
154
155
156
157
158 {Data}
159
160
161
162 empty
163 {*(($T1 *)(unsigned char *)storage.buffer)}
164
165 *(($T1 *)(unsigned char *)storage.buffer)
166
167
168