#define NULL ((void *)0)
typedef unsigned long size_t; // Customize by platform.
typedef long intptr_t;
typedef unsigned long uintptr_t;
typedef long scalar_t__; // Either arithmetic or pointer type.
/* By default, we understand bool (as a convenience). */
typedef int bool;
#define false 0
#define true 1

/* Forward declarations */

/* Type definitions */

/* Variables and functions */
int /*<<< orphan*/ bell_tower(double, double, double, double, double, double,
                              int /*<<< orphan*/);
int /*<<< orphan*/ door(double, int /*<<< orphan*/, double, int);
int /*<<< orphan*/ house_1(double, double, double, double, double, double, int,
                           int, int);
int /*<<< orphan*/ house_2(double, double, double, double, double, double, int,
                           int);
int /*<<< orphan*/ house_3(double, double, double, double, double, double, int,
                           int);
void town() {
  house_1(-1.7, .2, 0, .3, .2, .4, 0, 20, 4);
  door(-1.39, 0, 0.075, 90);
  door(-1.8, 0, .415, 0);
  house_2(-1.6, .2, -1.7, .3, .2, .3, 0, 2);
  door(-1.285, 0, -1.7, 90);
  house_3(.2, .2, -.45, .3, .2, .2, 0, 3);
  door(0.4, 0, -.245, 0);
  door(1.1175, 0, -0.375, 90);
  door(-0.090, 0, -0.375, 90);
  house_1(-0.815, .2, -1.4, .15, .2, .2, 90, 20, 4);
  house_1(-0.785, .2, -.95, .15, .2, .15, 0, 19, 23);
  house_1(-0.85, .2, -.45, .2, .2, .2, -90, 21, 25);
  house_3(-1.4, .2, 1.6, .2, .2, .2, 90, 20);
  house_2(-1.4, .3, 2, .2, .3, .185, 0, 21);
  house_1(-0.830, .2, .985, .2, .2, .2, 0, 22, 24);
  house_2(-0.83, .2, .45, .2, .2, .2, 0, 18);
  bell_tower(0.2, .3, 1.925, .25, .3, .25, 0);
  house_2(1, 0.3, 0.42, .18, .3, .18, 0, 19);
  house_1(1.83, .2, 2, .17, .2, .17, 180, 22, 25);
  house_1(1.83, .2, 1.585, .17, .2, .17, 180, 18, 24);
  house_2(1.83, .2, 1.19, .17, .2, .17, 180, 2);
  house_3(1.83, .2, .8, .17, .2, .17, 90, 3);
  house_1(1.83, .2, .05, .17, .2, .17, 180, 22, 23);
  house_2(1.83, .2, -.5, .17, .2, .26, 180, 2);
  house_1(0.1, .2, -.95, .2, .2, .2, 180, 21, 4);
  house_1(0.05, .2, -1.375, .15, .2, .15, 180, 22, 25);
  house_1(0.1, .2, -1.8, .2, .2, .2, 180, 21, 24);
  house_1(.75, .2, -.95, .35, .2, .2, 0, 20, 23);
  house_3(1.375, .2, -1.425, .185, .2, .17, 90, 19);
}


x86 assembly (clang, -O0):
<town>:
push   %rbp
mov    %rsp,%rbp
movsd  0xfec(%rip),%xmm0
movsd  0xea4(%rip),%xmm4
xorps  %xmm2,%xmm2
movsd  0xf39(%rip),%xmm3
movsd  0xfb9(%rip),%xmm5
xor    %edi,%edi
mov    $0x14,%esi
mov    $0x4,%edx
movaps %xmm4,%xmm1
call   1050 <house_1@plt>
movsd  0xfcd(%rip),%xmm0
xor    %edi,%edi
movsd  0xfcb(%rip),%xmm1
mov    $0x5a,%esi
call   1040 <door@plt>
movsd  0xe99(%rip),%xmm0
xor    %esi,%esi
movsd  0xf9f(%rip),%xmm1
mov    %esi,%edi
call   1040 <door@plt>
movsd  0xf88(%rip),%xmm0
movsd  0xe38(%rip),%xmm4
movsd  0xf70(%rip),%xmm2
movsd  0xec8(%rip),%xmm5
xor    %edi,%edi
mov    $0x2,%esi
movaps %xmm4,%xmm1
movaps %xmm5,%xmm3
call   1070 <house_2@plt>
movsd  0xf46(%rip),%xmm0
xor    %edi,%edi
movsd  0xf44(%rip),%xmm1
mov    $0x5a,%esi
call   1040 <door@plt>
movsd  0xdf2(%rip),%xmm5
movsd  0xee2(%rip),%xmm2
movsd  0xe82(%rip),%xmm3
xor    %edi,%edi
mov    $0x3,%esi
movaps %xmm5,%xmm0
movaps %xmm5,%xmm1
movaps %xmm5,%xmm4
call   1060 <house_3@plt>
movsd  0xeed(%rip),%xmm0
xor    %esi,%esi
movsd  0xeeb(%rip),%xmm1
mov    %esi,%edi
call   1040 <door@plt>
movsd  0xecc(%rip),%xmm0
xor    %edi,%edi
movsd  0xeba(%rip),%xmm1
mov    $0x5a,%esi
call   1040 <door@plt>
movsd  0xea0(%rip),%xmm0
xor    %edi,%edi
movsd  0xe9e(%rip),%xmm1
mov    $0x5a,%esi
call   1040 <door@plt>
movsd  0xe7c(%rip),%xmm0
movsd  0xd6c(%rip),%xmm5
movsd  0xe44(%rip),%xmm2
movsd  0xdb4(%rip),%xmm3
mov    $0x5a,%edi
mov    $0x14,%esi
mov    $0x4,%edx
movaps %xmm5,%xmm1
movaps %xmm5,%xmm4
call   1050 <house_1@plt>
movsd  0xe3a(%rip),%xmm0
movsd  0xd32(%rip),%xmm4
movsd  0xd52(%rip),%xmm2
movsd  0xd7a(%rip),%xmm5
xor    %edi,%edi
mov    $0x13,%esi
mov    $0x17,%edx
movaps %xmm4,%xmm1
movaps %xmm5,%xmm3
call   1050 <house_1@plt>
movsd  0xdf3(%rip),%xmm0
movsd  0xcfb(%rip),%xmm5
movsd  0xdeb(%rip),%xmm2
mov    $0xffffffa6,%edi
mov    $0x15,%esi
mov    $0x19,%edx
movaps %xmm5,%xmm1
movaps %xmm5,%xmm3
movaps %xmm5,%xmm4
call   1050 <house_1@plt>
movsd  0xdae(%rip),%xmm0
movsd  0xcc6(%rip),%xmm5
movsd  0xda6(%rip),%xmm2
mov    $0x5a,%edi
mov    $0x14,%esi
movaps %xmm5,%xmm1
movaps %xmm5,%xmm3
movaps %xmm5,%xmm4
call   1060 <house_3@plt>
movsd  0xd7e(%rip),%xmm0
movsd  0xd36(%rip),%xmm4
movsd  0xd1e(%rip),%xmm2
movsd  0xc86(%rip),%xmm3
movsd  0xc8e(%rip),%xmm5
xor    %edi,%edi
mov    $0x15,%esi
movaps %xmm4,%xmm1
call   1070 <house_2@plt>
movsd  0xd2f(%rip),%xmm0
movsd  0xc5f(%rip),%xmm5
movsd  0xd2f(%rip),%xmm2
xor    %edi,%edi
mov    $0x16,%esi
mov    $0x18,%edx
movaps %xmm5,%xmm1
movaps %xmm5,%xmm3
movaps %xmm5,%xmm4
call   1050 <house_1@plt>
movsd  0xcfd(%rip),%xmm0
movsd  0xc2d(%rip),%xmm5
movsd  0xcf5(%rip),%xmm2
xor    %edi,%edi
mov    $0x12,%esi
movaps %xmm5,%xmm1
movaps %xmm5,%xmm3
movaps %xmm5,%xmm4
call   1070 <house_2@plt>
movsd  0xc08(%rip),%xmm0
movsd  0xca0(%rip),%xmm4
movsd  0xcb0(%rip),%xmm2
movsd  0xcb0(%rip),%xmm5
xor    %edi,%edi
movaps %xmm4,%xmm1
movaps %xmm5,%xmm3
call   1030 <bell_tower@plt>
movsd  0xc73(%rip),%xmm0
movsd  0xc73(%rip),%xmm4
movsd  0xc73(%rip),%xmm2
movsd  0xc73(%rip),%xmm5
xor    %edi,%edi
mov    $0x13,%esi
movaps %xmm4,%xmm1
movaps %xmm5,%xmm3
call   1070 <house_2@plt>
movsd  0xc09(%rip),%xmm0
movsd  0xba1(%rip),%xmm4
movsd  0xc29(%rip),%xmm2
movsd  0xba9(%rip),%xmm5
mov    $0xb4,%edi
mov    $0x16,%esi
mov    $0x19,%edx
movaps %xmm4,%xmm1
movaps %xmm5,%xmm3
call   1050 <house_1@plt>
movsd  0xbcf(%rip),%xmm0
movsd  0xb67(%rip),%xmm4
movsd  0xbe7(%rip),%xmm2
movsd  0xb6f(%rip),%xmm5
mov    $0xb4,%edi
mov    $0x12,%esi
mov    $0x18,%edx
movaps %xmm4,%xmm1
movaps %xmm5,%xmm3
call   1050 <house_1@plt>
movsd  0xb95(%rip),%xmm0
movsd  0xb2d(%rip),%xmm4
movsd  0xba5(%rip),%xmm2
movsd  0xb35(%rip),%xmm5
mov    $0xb4,%edi
mov    $0x2,%esi
movaps %xmm4,%xmm1
movaps %xmm5,%xmm3
call   1070 <house_2@plt>
movsd  0xb60(%rip),%xmm0
movsd  0xaf8(%rip),%xmm4
movsd  0xb68(%rip),%xmm2
movsd  0xb00(%rip),%xmm5
mov    $0x5a,%edi
mov    $0x3,%esi
movaps %xmm4,%xmm1
movaps %xmm5,%xmm3
call   1060 <house_3@plt>
movsd  0xb2b(%rip),%xmm0
movsd  0xac3(%rip),%xmm4
movsd  0xb03(%rip),%xmm2
movsd  0xacb(%rip),%xmm5
mov    $0xb4,%edi
mov    $0x16,%esi
mov    $0x17,%edx
movaps %xmm4,%xmm1
movaps %xmm5,%xmm3
call   1050 <house_1@plt>
movsd  0xaf1(%rip),%xmm0
movsd  0xa89(%rip),%xmm4
movsd  0xae9(%rip),%xmm2
movsd  0xa91(%rip),%xmm3
movsd  0xae1(%rip),%xmm5
mov    $0xb4,%edi
mov    $0x2,%esi
movaps %xmm4,%xmm1
call   1070 <house_2@plt>
movsd  0xa8f(%rip),%xmm0
movsd  0xa4f(%rip),%xmm5
movsd  0xa6f(%rip),%xmm2
mov    $0xb4,%edi
mov    $0x15,%esi
mov    $0x4,%edx
movaps %xmm5,%xmm1
movaps %xmm5,%xmm3
movaps %xmm5,%xmm4
call   1050 <house_1@plt>
movsd  0xa6a(%rip),%xmm0
movsd  0xa1a(%rip),%xmm4
movsd  0xa62(%rip),%xmm2
movsd  0xa62(%rip),%xmm5
mov    $0xb4,%edi
mov    $0x16,%esi
mov    $0x19,%edx
movaps %xmm4,%xmm1
movaps %xmm5,%xmm3
call   1050 <house_1@plt>
movsd  0xa20(%rip),%xmm0
movsd  0x9e0(%rip),%xmm5
movsd  0xa18(%rip),%xmm2
mov    $0xb4,%edi
mov    $0x15,%esi
mov    $0x18,%edx
movaps %xmm5,%xmm1
movaps %xmm5,%xmm3
movaps %xmm5,%xmm4
call   1050 <house_1@plt>
movsd  0x9d3(%rip),%xmm0
movsd  0x9ab(%rip),%xmm5
movsd  0x9cb(%rip),%xmm2
movsd  0x9cb(%rip),%xmm3
xor    %edi,%edi
mov    $0x14,%esi
mov    $0x17,%edx
movaps %xmm5,%xmm1
movaps %xmm5,%xmm4
call   1050 <house_1@plt>
movsd  0x974(%rip),%xmm0
movsd  0x974(%rip),%xmm4
movsd  0x974(%rip),%xmm2
movsd  0x974(%rip),%xmm3
movsd  0x974(%rip),%xmm5
mov    $0x5a,%edi
mov    $0x13,%esi
movaps %xmm4,%xmm1
call   1060 <house_3@plt>
pop    %rbp
ret

x86 assembly (clang, -O2):
<town>:
push   %rax
movsd  0xea7(%rip),%xmm0
movsd  0xea7(%rip),%xmm3
movsd  0xea7(%rip),%xmm1
movsd  0xea7(%rip),%xmm5
xorps  %xmm2,%xmm2
movaps %xmm1,%xmm4
xor    %edi,%edi
mov    $0x14,%esi
mov    $0x4,%edx
call   1050 <house_1@plt>
movsd  0xe90(%rip),%xmm0
movsd  0xe90(%rip),%xmm1
xor    %edi,%edi
mov    $0x5a,%esi
call   1040 <door@plt>
movsd  0xe84(%rip),%xmm0
movsd  0xe84(%rip),%xmm1
xor    %edi,%edi
xor    %esi,%esi
call   1040 <door@plt>
movsd  0xe7b(%rip),%xmm0
movsd  0xe43(%rip),%xmm1
movsd  0xe2b(%rip),%xmm2
movsd  0xe2b(%rip),%xmm3
movaps %xmm1,%xmm4
movaps %xmm3,%xmm5
xor    %edi,%edi
mov    $0x2,%esi
call   1070 <house_2@plt>
movsd  0xe51(%rip),%xmm0
xor    %edi,%edi
movsd  0xdff(%rip),%xmm1
mov    $0x5a,%esi
call   1040 <door@plt>
movsd  0xe3d(%rip),%xmm2
movsd  0xdf5(%rip),%xmm0
movaps %xmm0,%xmm1
movsd  0xde2(%rip),%xmm3
movaps %xmm0,%xmm4
movaps %xmm0,%xmm5
xor    %edi,%edi
mov    $0x3,%esi
call   1060 <house_3@plt>
movsd  0xe18(%rip),%xmm1
movsd  0xdd0(%rip),%xmm0
xor    %edi,%edi
xor    %esi,%esi
call   1040 <door@plt>
movsd  0xe07(%rip),%xmm0
movsd  0xe07(%rip),%xmm1
xor    %edi,%edi
mov    $0x5a,%esi
call   1040 <door@plt>
movsd  0xdfb(%rip),%xmm0
xor    %edi,%edi
movsd  0xde9(%rip),%xmm1
mov    $0x5a,%esi
call   1040 <door@plt>
movsd  0xde7(%rip),%xmm0
movsd  0xde7(%rip),%xmm2
movsd  0xde7(%rip),%xmm3
movsd  0xd67(%rip),%xmm1
movaps %xmm1,%xmm4
movaps %xmm1,%xmm5
mov    $0x5a,%edi
mov    $0x14,%esi
mov    $0x4,%edx
call   1050 <house_1@plt>
movsd  0xdc5(%rip),%xmm0
movsd  0xdc5(%rip),%xmm2
movsd  0xd35(%rip),%xmm1
movsd  0xda5(%rip),%xmm3
movaps %xmm1,%xmm4
movaps %xmm3,%xmm5
xor    %edi,%edi
mov    $0x13,%esi
mov    $0x17,%edx
call   1050 <house_1@plt>
movsd  0xd9e(%rip),%xmm0
movsd  0xd06(%rip),%xmm1
movsd  0xd3e(%rip),%xmm2
movaps %xmm1,%xmm3
movaps %xmm1,%xmm4
movaps %xmm1,%xmm5
mov    $0xffffffa6,%edi
mov    $0x15,%esi
mov    $0x19,%edx
call   1050 <house_1@plt>
movsd  0xd71(%rip),%xmm2
movsd  0xd41(%rip),%xmm0
movsd  0xcc9(%rip),%xmm1
movaps %xmm1,%xmm3
movaps %xmm1,%xmm4
movaps %xmm1,%xmm5
mov    $0x5a,%edi
mov    $0x14,%esi
call   1060 <house_3@plt>
movsd  0xd49(%rip),%xmm2
movsd  0xd49(%rip),%xmm5
movsd  0xd09(%rip),%xmm0
movsd  0xc89(%rip),%xmm1
movsd  0xc89(%rip),%xmm3
movaps %xmm1,%xmm4
xor    %edi,%edi
mov    $0x15,%esi
call   1070 <house_2@plt>
movsd  0xd22(%rip),%xmm0
movsd  0xd22(%rip),%xmm2
movsd  0xc62(%rip),%xmm1
movaps %xmm1,%xmm3
movaps %xmm1,%xmm4
movaps %xmm1,%xmm5
xor    %edi,%edi
mov    $0x16,%esi
mov    $0x18,%edx
call   1050 <house_1@plt>
movsd  0xd00(%rip),%xmm2
movsd  0xce8(%rip),%xmm0
movsd  0xc30(%rip),%xmm1
movaps %xmm1,%xmm3
movaps %xmm1,%xmm4
movaps %xmm1,%xmm5
xor    %edi,%edi
mov    $0x12,%esi
call   1070 <house_2@plt>
movsd  0xcdb(%rip),%xmm2
movsd  0xcdb(%rip),%xmm3
movsd  0xc03(%rip),%xmm0
movsd  0xbf3(%rip),%xmm1
movaps %xmm1,%xmm4
movaps %xmm3,%xmm5
xor    %edi,%edi
call   1030 <bell_tower@plt>
movsd  0xcbe(%rip),%xmm0
movsd  0xcbe(%rip),%xmm2
movsd  0xcbe(%rip),%xmm3
movsd  0xbc6(%rip),%xmm1
movaps %xmm1,%xmm4
movaps %xmm3,%xmm5
xor    %edi,%edi
mov    $0x13,%esi
call   1070 <house_2@plt>
movsd  0xca4(%rip),%xmm0
movsd  0xca4(%rip),%xmm3
movsd  0xba4(%rip),%xmm1
movsd  0xc3c(%rip),%xmm2
movaps %xmm1,%xmm4
movaps %xmm3,%xmm5
mov    $0xb4,%edi
mov    $0x16,%esi
mov    $0x19,%edx
call   1050 <house_1@plt>
movsd  0xc7a(%rip),%xmm2
movsd  0xc62(%rip),%xmm0
movsd  0xb6a(%rip),%xmm1
movsd  0xc5a(%rip),%xmm3
movaps %xmm1,%xmm4
movaps %xmm3,%xmm5
mov    $0xb4,%edi
mov    $0x12,%esi
mov    $0x18,%edx
call   1050 <house_1@plt>
movsd  0xc48(%rip),%xmm2
movsd  0xc28(%rip),%xmm0
movsd  0xb30(%rip),%xmm1
movsd  0xc20(%rip),%xmm3
movaps %xmm1,%xmm4
movaps %xmm3,%xmm5
mov    $0xb4,%edi
mov    $0x2,%esi
call   1070 <house_2@plt>
movsd  0xc1b(%rip),%xmm2
movsd  0xbf3(%rip),%xmm0
movsd  0xafb(%rip),%xmm1
movsd  0xbeb(%rip),%xmm3
movaps %xmm1,%xmm4
movaps %xmm3,%xmm5
mov    $0x5a,%edi
mov    $0x3,%esi
call   1060 <house_3@plt>
movsd  0xbee(%rip),%xmm2
movsd  0xbbe(%rip),%xmm0
movsd  0xac6(%rip),%xmm1
movsd  0xbb6(%rip),%xmm3
movaps %xmm1,%xmm4
movaps %xmm3,%xmm5
mov    $0xb4,%edi
mov    $0x16,%esi
mov    $0x17,%edx
call   1050 <house_1@plt>
movsd  0xbbc(%rip),%xmm2
movsd  0xbbc(%rip),%xmm5
movsd  0xb7c(%rip),%xmm0
movsd  0xa84(%rip),%xmm1
movsd  0xb74(%rip),%xmm3
movaps %xmm1,%xmm4
mov    $0xb4,%edi
mov    $0x2,%esi
call   1070 <house_2@plt>
movsd  0xb92(%rip),%xmm0
movsd  0xa5a(%rip),%xmm1
movsd  0xada(%rip),%xmm2
movaps %xmm1,%xmm3
movaps %xmm1,%xmm4
movaps %xmm1,%xmm5
mov    $0xb4,%edi
mov    $0x15,%esi
mov    $0x4,%edx
call   1050 <house_1@plt>
movsd  0xb65(%rip),%xmm2
movsd  0xb3d(%rip),%xmm0
movsd  0xa1d(%rip),%xmm1
movsd  0xa8d(%rip),%xmm3
movaps %xmm1,%xmm4
movaps %xmm3,%xmm5
mov    $0xb4,%edi
mov    $0x16,%esi
mov    $0x19,%edx
call   1050 <house_1@plt>
movsd  0xb23(%rip),%xmm0
movsd  0x9eb(%rip),%xmm1
movsd  0xa03(%rip),%xmm2
movaps %xmm1,%xmm3
movaps %xmm1,%xmm4
movaps %xmm1,%xmm5
mov    $0xb4,%edi
mov    $0x15,%esi
mov    $0x18,%edx
call   1050 <house_1@plt>
movsd  0xafe(%rip),%xmm0
movsd  0xafe(%rip),%xmm3
movsd  0x9ae(%rip),%xmm1
movsd  0xa2e(%rip),%xmm2
movaps %xmm1,%xmm4
movaps %xmm1,%xmm5
xor    %edi,%edi
mov    $0x14,%esi
mov    $0x17,%edx
call   1050 <house_1@plt>
movsd  0xad7(%rip),%xmm0
movsd  0xad7(%rip),%xmm2
movsd  0x977(%rip),%xmm1
movsd  0xa17(%rip),%xmm3
movaps %xmm1,%xmm4
movsd  0xa5c(%rip),%xmm5
mov    $0x5a,%edi
mov    $0x13,%esi
pop    %rax
jmp    1060 <house_3@plt>

LLVM IR (-O0):
define void @town() {
%1 = call i32 @house_1(double -1.700000e+00, double 2.000000e-01, double 0.000000e+00, double 3.000000e-01, double 2.000000e-01, double 4.000000e-01, i32 0, i32 20, i32 4)
%2 = call i32 @door(double -1.390000e+00, i32 0, double 0x3FB3333333333333, i32 90)
%3 = call i32 @door(double -1.800000e+00, i32 0, double 4.150000e-01, i32 0)
%4 = call i32 @house_2(double -1.600000e+00, double 2.000000e-01, double -1.700000e+00, double 3.000000e-01, double 2.000000e-01, double 3.000000e-01, i32 0, i32 2)
%5 = call i32 @door(double -1.285000e+00, i32 0, double -1.700000e+00, i32 90)
%6 = call i32 @house_3(double 2.000000e-01, double 2.000000e-01, double -4.500000e-01, double 3.000000e-01, double 2.000000e-01, double 2.000000e-01, i32 0, i32 3)
%7 = call i32 @door(double 4.000000e-01, i32 0, double -2.450000e-01, i32 0)
%8 = call i32 @door(double 1.117500e+00, i32 0, double -3.750000e-01, i32 90)
%9 = call i32 @door(double 0xBFB70A3D70A3D70A, i32 0, double -3.750000e-01, i32 90)
%10 = call i32 @house_1(double 0xBFEA147AE147AE14, double 2.000000e-01, double -1.400000e+00, double 1.500000e-01, double 2.000000e-01, double 2.000000e-01, i32 90, i32 20, i32 4)
%11 = call i32 @house_1(double -7.850000e-01, double 2.000000e-01, double 0xBFEE666666666666, double 1.500000e-01, double 2.000000e-01, double 1.500000e-01, i32 0, i32 19, i32 23)
%12 = call i32 @house_1(double -8.500000e-01, double 2.000000e-01, double -4.500000e-01, double 2.000000e-01, double 2.000000e-01, double 2.000000e-01, i32 -90, i32 21, i32 25)
%13 = call i32 @house_3(double -1.400000e+00, double 2.000000e-01, double 1.600000e+00, double 2.000000e-01, double 2.000000e-01, double 2.000000e-01, i32 90, i32 20)
%14 = call i32 @house_2(double -1.400000e+00, double 3.000000e-01, double 2.000000e+00, double 2.000000e-01, double 3.000000e-01, double 1.850000e-01, i32 0, i32 21)
%15 = call i32 @house_1(double -8.300000e-01, double 2.000000e-01, double 0x3FEF851EB851EB85, double 2.000000e-01, double 2.000000e-01, double 2.000000e-01, i32 0, i32 22, i32 24)
%16 = call i32 @house_2(double -8.300000e-01, double 2.000000e-01, double 4.500000e-01, double 2.000000e-01, double 2.000000e-01, double 2.000000e-01, i32 0, i32 18)
%17 = call i32 @bell_tower(double 2.000000e-01, double 3.000000e-01, double 1.925000e+00, double 2.500000e-01, double 3.000000e-01, double 2.500000e-01, i32 0)
%18 = call i32 @house_2(double 1.000000e+00, double 3.000000e-01, double 4.200000e-01, double 1.800000e-01, double 3.000000e-01, double 1.800000e-01, i32 0, i32 19)
%19 = call i32 @house_1(double 1.830000e+00, double 2.000000e-01, double 2.000000e+00, double 1.700000e-01, double 2.000000e-01, double 1.700000e-01, i32 180, i32 22, i32 25)
%20 = call i32 @house_1(double 1.830000e+00, double 2.000000e-01, double 1.585000e+00, double 1.700000e-01, double 2.000000e-01, double 1.700000e-01, i32 180, i32 18, i32 24)
%21 = call i32 @house_2(double 1.830000e+00, double 2.000000e-01, double 1.190000e+00, double 1.700000e-01, double 2.000000e-01, double 1.700000e-01, i32 180, i32 2)
%22 = call i32 @house_3(double 1.830000e+00, double 2.000000e-01, double 8.000000e-01, double 1.700000e-01, double 2.000000e-01, double 1.700000e-01, i32 90, i32 3)
%23 = call i32 @house_1(double 1.830000e+00, double 2.000000e-01, double 5.000000e-02, double 1.700000e-01, double 2.000000e-01, double 1.700000e-01, i32 180, i32 22, i32 23)
%24 = call i32 @house_2(double 1.830000e+00, double 2.000000e-01, double -5.000000e-01, double 1.700000e-01, double 2.000000e-01, double 2.600000e-01, i32 180, i32 2)
%25 = call i32 @house_1(double 1.000000e-01, double 2.000000e-01, double 0xBFEE666666666666, double 2.000000e-01, double 2.000000e-01, double 2.000000e-01, i32 180, i32 21, i32 4)
%26 = call i32 @house_1(double 5.000000e-02, double 2.000000e-01, double -1.375000e+00, double 1.500000e-01, double 2.000000e-01, double 1.500000e-01, i32 180, i32 22, i32 25)
%27 = call i32 @house_1(double 1.000000e-01, double 2.000000e-01, double -1.800000e+00, double 2.000000e-01, double 2.000000e-01, double 2.000000e-01, i32 180, i32 21, i32 24)
%28 = call i32 @house_1(double 7.500000e-01, double 2.000000e-01, double 0xBFEE666666666666, double 3.500000e-01, double 2.000000e-01, double 2.000000e-01, i32 0, i32 20, i32 23)
%29 = call i32 @house_3(double 1.375000e+00, double 2.000000e-01, double -1.425000e+00, double 1.850000e-01, double 2.000000e-01, double 1.700000e-01, i32 90, i32 19)
ret void
}

LLVM IR (-O2):
define void @town() {
%1 = tail call i32 @house_1(double -1.700000e+00, double 2.000000e-01, double 0.000000e+00, double 3.000000e-01, double 2.000000e-01, double 4.000000e-01, i32 0, i32 20, i32 4)
%2 = tail call i32 @door(double -1.390000e+00, i32 0, double 0x3FB3333333333333, i32 90)
%3 = tail call i32 @door(double -1.800000e+00, i32 0, double 4.150000e-01, i32 0)
%4 = tail call i32 @house_2(double -1.600000e+00, double 2.000000e-01, double -1.700000e+00, double 3.000000e-01, double 2.000000e-01, double 3.000000e-01, i32 0, i32 2)
%5 = tail call i32 @door(double -1.285000e+00, i32 0, double -1.700000e+00, i32 90)
%6 = tail call i32 @house_3(double 2.000000e-01, double 2.000000e-01, double -4.500000e-01, double 3.000000e-01, double 2.000000e-01, double 2.000000e-01, i32 0, i32 3)
%7 = tail call i32 @door(double 4.000000e-01, i32 0, double -2.450000e-01, i32 0)
%8 = tail call i32 @door(double 1.117500e+00, i32 0, double -3.750000e-01, i32 90)
%9 = tail call i32 @door(double 0xBFB70A3D70A3D70A, i32 0, double -3.750000e-01, i32 90)
%10 = tail call i32 @house_1(double 0xBFEA147AE147AE14, double 2.000000e-01, double -1.400000e+00, double 1.500000e-01, double 2.000000e-01, double 2.000000e-01, i32 90, i32 20, i32 4)
%11 = tail call i32 @house_1(double -7.850000e-01, double 2.000000e-01, double 0xBFEE666666666666, double 1.500000e-01, double 2.000000e-01, double 1.500000e-01, i32 0, i32 19, i32 23)
%12 = tail call i32 @house_1(double -8.500000e-01, double 2.000000e-01, double -4.500000e-01, double 2.000000e-01, double 2.000000e-01, double 2.000000e-01, i32 -90, i32 21, i32 25)
%13 = tail call i32 @house_3(double -1.400000e+00, double 2.000000e-01, double 1.600000e+00, double 2.000000e-01, double 2.000000e-01, double 2.000000e-01, i32 90, i32 20)
%14 = tail call i32 @house_2(double -1.400000e+00, double 3.000000e-01, double 2.000000e+00, double 2.000000e-01, double 3.000000e-01, double 1.850000e-01, i32 0, i32 21)
%15 = tail call i32 @house_1(double -8.300000e-01, double 2.000000e-01, double 0x3FEF851EB851EB85, double 2.000000e-01, double 2.000000e-01, double 2.000000e-01, i32 0, i32 22, i32 24)
%16 = tail call i32 @house_2(double -8.300000e-01, double 2.000000e-01, double 4.500000e-01, double 2.000000e-01, double 2.000000e-01, double 2.000000e-01, i32 0, i32 18)
%17 = tail call i32 @bell_tower(double 2.000000e-01, double 3.000000e-01, double 1.925000e+00, double 2.500000e-01, double 3.000000e-01, double 2.500000e-01, i32 0)
%18 = tail call i32 @house_2(double 1.000000e+00, double 3.000000e-01, double 4.200000e-01, double 1.800000e-01, double 3.000000e-01, double 1.800000e-01, i32 0, i32 19)
%19 = tail call i32 @house_1(double 1.830000e+00, double 2.000000e-01, double 2.000000e+00, double 1.700000e-01, double 2.000000e-01, double 1.700000e-01, i32 180, i32 22, i32 25)
%20 = tail call i32 @house_1(double 1.830000e+00, double 2.000000e-01, double 1.585000e+00, double 1.700000e-01, double 2.000000e-01, double 1.700000e-01, i32 180, i32 18, i32 24)
%21 = tail call i32 @house_2(double 1.830000e+00, double 2.000000e-01, double 1.190000e+00, double 1.700000e-01, double 2.000000e-01, double 1.700000e-01, i32 180, i32 2)
%22 = tail call i32 @house_3(double 1.830000e+00, double 2.000000e-01, double 8.000000e-01, double 1.700000e-01, double 2.000000e-01, double 1.700000e-01, i32 90, i32 3)
%23 = tail call i32 @house_1(double 1.830000e+00, double 2.000000e-01, double 5.000000e-02, double 1.700000e-01, double 2.000000e-01, double 1.700000e-01, i32 180, i32 22, i32 23)
%24 = tail call i32 @house_2(double 1.830000e+00, double 2.000000e-01, double -5.000000e-01, double 1.700000e-01, double 2.000000e-01, double 2.600000e-01, i32 180, i32 2)
%25 = tail call i32 @house_1(double 1.000000e-01, double 2.000000e-01, double 0xBFEE666666666666, double 2.000000e-01, double 2.000000e-01, double 2.000000e-01, i32 180, i32 21, i32 4)
%26 = tail call i32 @house_1(double 5.000000e-02, double 2.000000e-01, double -1.375000e+00, double 1.500000e-01, double 2.000000e-01, double 1.500000e-01, i32 180, i32 22, i32 25)
%27 = tail call i32 @house_1(double 1.000000e-01, double 2.000000e-01, double -1.800000e+00, double 2.000000e-01, double 2.000000e-01, double 2.000000e-01, i32 180, i32 21, i32 24)
%28 = tail call i32 @house_1(double 7.500000e-01, double 2.000000e-01, double 0xBFEE666666666666, double 3.500000e-01, double 2.000000e-01, double 2.000000e-01, i32 0, i32 20, i32 23)
%29 = tail call i32 @house_3(double 1.375000e+00, double 2.000000e-01, double -1.425000e+00, double 1.850000e-01, double 2.000000e-01, double 1.700000e-01, i32 90, i32 19)
ret void
}