diff options
Diffstat (limited to 'src/relooper/test3.c')
-rw-r--r-- | src/relooper/test3.c | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/src/relooper/test3.c b/src/relooper/test3.c new file mode 100644 index 00000000..2cef14fb --- /dev/null +++ b/src/relooper/test3.c @@ -0,0 +1,42 @@ + +#include "Relooper.h" + +int main() { + char buffer[10000]; + rl_set_output_buffer(buffer, sizeof(buffer)); + + void *r = rl_new_relooper(); + void *ep = rl_new_block("ep"); + rl_relooper_add_block(r, ep); + void *LBB1 = rl_new_block("LBB1"); + rl_relooper_add_block(r, LBB1); + void *LBB2 = rl_new_block("LBB2"); + rl_relooper_add_block(r, LBB2); + void *LBB3 = rl_new_block("LBB3"); + rl_relooper_add_block(r, LBB3); + void *LBB4 = rl_new_block("LBB4"); + rl_relooper_add_block(r, LBB4); + void *LBB5 = rl_new_block("LBB5"); + rl_relooper_add_block(r, LBB5); + void *LBB6 = rl_new_block("LBB6"); + rl_relooper_add_block(r, LBB6); + + rl_block_add_branch_to(ep, LBB1, "ep -> LBB1", NULL); + rl_block_add_branch_to(ep, LBB3, NULL, NULL); + rl_block_add_branch_to(LBB1, LBB2, "LBB1 -> LBB2", NULL); + rl_block_add_branch_to(LBB1, LBB3, NULL, NULL); + rl_block_add_branch_to(LBB2, LBB3, NULL, NULL); + rl_block_add_branch_to(LBB3, LBB4, "LBB3 -> LBB4", NULL); + rl_block_add_branch_to(LBB3, LBB6, NULL, NULL); + rl_block_add_branch_to(LBB4, LBB5, "LBB4 -> LBB5", NULL); + rl_block_add_branch_to(LBB4, LBB6, NULL, NULL); + rl_block_add_branch_to(LBB5, LBB6, "LBB5 -> LBB6", NULL); + rl_block_add_branch_to(LBB5, LBB5, NULL, NULL); + + rl_relooper_calculate(r, ep); + rl_relooper_render(r); + rl_delete_relooper(r); + + puts(buffer); +} + |