summaryrefslogtreecommitdiff
path: root/2005/flow-accounting-ols2005/OLS2005/EXAMPLE/complexCode/Figures/example.ll
blob: f9ce373e6eb28ea6adee7210b072b91d54c17ad5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
%struct.QuadTree = type { double, [4 x %QT*] }
%QT = type %struct.QuadTree

void %Sum3rdChildren(%QT* %T, double* %Result) {
entry:	%V = alloca double            ;; %V is type 'double*'
	%tmp.0 = seteq %QT* %T, null  ;; type 'bool'
	br bool %tmp.0, label %endif, label %else

else:   ;;tmp.1 = &T[0].Children[3]  'Children' = Field #1
        %tmp.1 = getelementptr %QT* %T, long 0, ubyte 1, long 3
        %Child3 = load %QT** %tmp.1
	call void %Sum3rdChildren(%QT* %Child3, double* %V)
	%tmp.2 = load double* %V
	%tmp.3 = getelementptr %QT* %T, long 0, ubyte 0
	%tmp.4 = load double* %tmp.3
	%tmp.5 = add double %tmp.2, %tmp.4
	br label %endif

endif:  %Ret = phi double [ %tmp.5, %else ], [ 0.0, %entry ]
        store double %Ret, double* %Result
	ret void  ;; Return with no value
}
personal git repositories of Harald Welte. Your mileage may vary