summaryrefslogtreecommitdiffstats
path: root/utils/clangVisualizers.txt
blob: 0fef65f4ed3e5a570c963781e3a3759546acd377 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134

[Visualizer]

llvm::SmallVector<*,*>{
	preview (
		#(
			"[",
			($T1*)$e.EndX - ($T1*)$e.BeginX,
			"](",
			#array(
				expr: (($T1*)$e.BeginX)[$i],
				size: ($T1*)$e.EndX - ($T1*)$e.BeginX
			),
			")"
		)
	)

	children (
		#(
			#([size] : ($T1*)$e.EndX - ($T1*)$e.BeginX),
			#([capacity] : ($T1*)$e.CapacityX - ($T1*)$e.BeginX),
			#array(
				expr: (($T1*)$e.BeginX)[$i],
				size: ($T1*)$e.EndX - ($T1*)$e.BeginX
			)
		)
	)
}

llvm::StringRef{
	preview ([$e.Data,s])
	stringview ([$e.Data,sb])

	children (
		#(
			#([size] : $e.Length),
			#array(expr: $e.Data[$i], size: $e.Length)
		)
	)
}

clang::Token{
	preview((clang::tok::TokenKind)(int)$e.Kind)
}

llvm::PointerIntPair<*,*,*,*>{
	preview (
		#(
			($T1*)($e.Value & $e.PointerBitMask),
			" [",
			($T3)(($e.Value >> $e.IntShift) & $e.IntMask),
			"]"
		)
	)
	
	children (
		#(
			#([ptr] : ($T1*)($e.Value & $e.PointerBitMask)),
			#([int] : ($T3)($e.Value >> $e.IntShift) & $e.IntMask)
		)
	)
}

llvm::PointerUnion<*,*>{
	preview (
		#if ((($e.Val.Value >> $e.Val.IntShift) & $e.Val.IntMask) == 0) (
			"PT1"
		) #else (
			"PT2"
		)
	)
	
	children (
		#(
			#if ((($e.Val.Value >> $e.Val.IntShift) & $e.Val.IntMask) == 0) (
				#([ptr] : ($T1)($e.Val.Value & $e.Val.PointerBitMask))
			)	#else (
				#([ptr] : ($T2)($e.Val.Value & $e.Val.PointerBitMask))
			)
		)
	)
}

llvm::PointerUnion3<*,*,*>{
	preview (
		#if (($e.Val.Val.Value & 0x2) == 2) (
			"PT2"
		) #elif (($e.Val.Val.Value & 0x1) == 1) (
			"PT3"
		) #else (
			"PT1"
		)
	)
	
	children (
		#(
			#if (($e.Val.Val.Value & 0x2) == 2) (
				#([ptr] : ($T2)(($e.Val.Val.Value >> 2) << 2))
			) #elif (($e.Val.Val.Value & 0x1) == 1) (
				#([ptr] : ($T3)(($e.Val.Val.Value >> 2) << 2))
			) #else (
				#([ptr] : ($T1)(($e.Val.Val.Value >> 2) << 2))
			)
		)
	)
}

llvm::PointerUnion4<*,*,*,*>{
	preview (
		#if (($e.Val.Val.Value & 0x3) == 3) (
			"PT4"
		)	#elif (($e.Val.Val.Value & 0x2) == 2) (
			"PT2"
		) #elif (($e.Val.Val.Value & 0x1) == 1) (
			"PT3"
		) #else (
			"PT1"
		)
	)
	
	children (
		#(
			#if (($e.Val.Val.Value & 0x3) == 3) (
				#([ptr] : ($T4)(($e.Val.Val.Value >> 2) << 2))
			)	#elif (($e.Val.Val.Value & 0x2) == 2) (
				#([ptr] : ($T2)(($e.Val.Val.Value >> 2) << 2))
			) #elif (($e.Val.Val.Value & 0x1) == 1) (
				#([ptr] : ($T3)(($e.Val.Val.Value >> 2) << 2))
			) #else (
				#([ptr] : ($T1)(($e.Val.Val.Value >> 2) << 2))
			)
		)
	)
}