Skip to content

Instantly share code, notes, and snippets.

@joaobispo
Created October 17, 2022 15:19
Show Gist options
  • Save joaobispo/f01f04466d021a167e7dedda09ec9ffb to your computer and use it in GitHub Desktop.
Save joaobispo/f01f04466d021a167e7dedda09ec9ffb to your computer and use it in GitHub Desktop.
Code for testing inlining - After
#include <stdio.h>
void funA(int x, int *X, int *Y) {
{
int i;
i = 0;
bool decomp_0;
decomp_0 = i < 100;
while(decomp_0) {
X[i] = Y[i] * x;
i++;
decomp_0 = i < 100;
}
}
}
int funD(int x) {
return x * x * x;
}
int funB(int *X, int *Y) {
{
int i;
i = 0;
bool decomp_1;
decomp_1 = i < 100;
while(decomp_1) {
X[i] = X[i] * Y[i];
i++;
decomp_1 = i < 100;
}
}
{
int i;
i = 0;
bool decomp_2;
decomp_2 = i < 100;
while(decomp_2) {
Y[i] = X[i] + Y[i];
Y[i] = funD(Y[i]);
i++;
decomp_2 = i < 100;
}
}
{
int i;
i = 0;
bool decomp_3;
decomp_3 = i < 100;
while(decomp_3) {
Y[i] = X[i] * Y[i];
Y[i] = funD(Y[i]);
i++;
decomp_3 = i < 100;
}
}
return X[0] + Y[0];
}
int funC(int x, int y, int *X) {
funB(X, X);
return funD(x) + funD(y) + X[6];
}
int main() {
int A[100];
A = {1};
int B[100];
B = {2};
int C[100];
C = {3};
{
int __inline_0_x;
__inline_0_x = 500;
int *__inline_0_X;
__inline_0_X = A;
int *__inline_0_Y;
__inline_0_Y = B;
{
int __inline_0_i;
__inline_0_i = 0;
bool __inline_0_decomp_0;
__inline_0_decomp_0 = __inline_0_i < 100;
while(__inline_0_decomp_0) {
__inline_0_X[__inline_0_i] = __inline_0_Y[__inline_0_i] * __inline_0_x;
__inline_0_i++;
__inline_0_decomp_0 = __inline_0_i < 100;
}
}
}
int x;
{
int *__inline_0_X;
__inline_0_X = B;
int *__inline_0_Y;
__inline_0_Y = C;
{
int __inline_0_i;
__inline_0_i = 0;
bool __inline_0_decomp_1;
__inline_0_decomp_1 = __inline_0_i < 100;
while(__inline_0_decomp_1) {
__inline_0_X[__inline_0_i] = __inline_0_X[__inline_0_i] * __inline_0_Y[__inline_0_i];
__inline_0_i++;
__inline_0_decomp_1 = __inline_0_i < 100;
}
}
{
int __inline_0_i;
__inline_0_i = 0;
bool __inline_0_decomp_2;
__inline_0_decomp_2 = __inline_0_i < 100;
while(__inline_0_decomp_2) {
__inline_0_Y[__inline_0_i] = __inline_0_X[__inline_0_i] + __inline_0_Y[__inline_0_i];
__inline_0_Y[__inline_0_i] = funD(__inline_0_Y[__inline_0_i]);
__inline_0_i++;
__inline_0_decomp_2 = __inline_0_i < 100;
}
}
{
int __inline_0_i;
__inline_0_i = 0;
bool __inline_0_decomp_3;
__inline_0_decomp_3 = __inline_0_i < 100;
while(__inline_0_decomp_3) {
__inline_0_Y[__inline_0_i] = __inline_0_X[__inline_0_i] * __inline_0_Y[__inline_0_i];
__inline_0_Y[__inline_0_i] = funD(__inline_0_Y[__inline_0_i]);
__inline_0_i++;
__inline_0_decomp_3 = __inline_0_i < 100;
}
}
x = __inline_0_X[0] + __inline_0_Y[0];
}
{
int i;
i = 0;
bool decomp_5;
decomp_5 = i < 100;
while(decomp_5) {
{
int j;
j = 0;
bool decomp_4;
decomp_4 = j < 100;
while(decomp_4) {
int y;
y = x + A[0];
{
int __inline_0_x;
__inline_0_x = x;
int __inline_0_y;
__inline_0_y = y;
int *__inline_0_X;
__inline_0_X = C;
funB(__inline_0_X, __inline_0_X);
}
{
int __inline_0_x;
__inline_0_x = y;
int __inline_0_y;
__inline_0_y = x;
int *__inline_0_X;
__inline_0_X = C;
funB(__inline_0_X, __inline_0_X);
}
j++;
decomp_4 = j < 100;
}
}
i++;
decomp_5 = i < 100;
}
}
int sumA;
sumA = 0;
int sumB;
sumB = 0;
int sumC;
sumC = 0;
{
int i;
i = 0;
bool decomp_6;
decomp_6 = i < 100;
while(decomp_6) {
sumA = sumA + A[i];
sumB = sumB + B[i];
sumC = sumC + C[i];
i++;
decomp_6 = i < 100;
}
}
{
char const *__inline_0___format;
__inline_0___format = "A: %d, B: %d, C: %d, x: %d\n";
}
return A[2];
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment