![]() System : Linux absol.cf 5.4.0-198-generic #218-Ubuntu SMP Fri Sep 27 20:18:53 UTC 2024 x86_64 User : www-data ( 33) PHP Version : 7.4.33 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare, Directory : /usr/share/emscripten/src/relooper/ |
Upload File : |
#include "Relooper.h" int main() { char buffer[100000]; rl_set_output_buffer(buffer); void *block_map[10000]; void *rl = rl_new_relooper(); void *b-1 = rl_new_block("// code -1"); block_map[-1] = b-1; rl_relooper_add_block(rl, block_map[-1]); void *b-1 = rl_new_block("// code -1"); block_map[-1] = b-1; rl_relooper_add_block(rl, block_map[-1]); void *b-1 = rl_new_block("// code -1"); block_map[-1] = b-1; rl_relooper_add_block(rl, block_map[-1]); void *b-1 = rl_new_block("// code -1"); block_map[-1] = b-1; rl_relooper_add_block(rl, block_map[-1]); rl_block_add_branch_to(block_map[1], block_map[2], "ep -> LBB1", NULL); rl_block_add_branch_to(block_map[1], block_map[4], NULL, NULL); rl_block_add_branch_to(block_map[2], block_map[3], "LBB1 -> LBB2", NULL); rl_block_add_branch_to(block_map[2], block_map[4], NULL, NULL); rl_block_add_branch_to(block_map[3], block_map[4], NULL, NULL); rl_relooper_calculate(rl, block_map[1]); rl_relooper_render(rl); rl_delete_relooper(rl); puts(buffer); return 0; } // Adding block 1 (ep) // Adding block 2 (LBB1) // Adding block 3 (LBB2) // Adding block 4 (LBB3) // Process() called // Process() running blocks : 1: -> 2 -> 4 2: -> 3 -> 4 3: -> 4 4: entries: 1: -> 2 -> 4 // creating simple block with block #1 // Solipsizing branches into 2 relevant to solipsize: 1: -> 2 -> 4 // eliminated branch from 1 // Solipsizing branches into 4 relevant to solipsize: 1: -> 4 // eliminated branch from 1 // Process() running blocks : 2: -> 3 -> 4 3: -> 4 4: entries: 2: -> 3 -> 4 4: // Investigated independent groups: group: 2: -> 3 -> 4 3: -> 4 // Independent groups: 1 // Handleable independent groups: 1 // creating multiple block with 1 inner groups // multiple group with entry 2: 2: -> 3 -> 4 3: -> 4 // Solipsizing branches into 4 relevant to solipsize: 2: -> 3 -> 4 3: -> 4 // eliminated branch from 2 // eliminated branch from 3 // Process() called // Process() running blocks : 2: -> 3 3: entries: 2: -> 3 // creating simple block with block #2 // Solipsizing branches into 3 relevant to solipsize: 2: -> 3 // eliminated branch from 2 // Process() running blocks : 3: entries: 3: // creating simple block with block #3 // Process() returning remaining blocks after multiple: 4: // Process() running blocks : 4: entries: 4: // creating simple block with block #4 // Process() returning // === Optimizing shapes === // Fusing Multiple to Simple ep L1: do { switch (the_var) { ep -> LBB1 { LBB1 switch (the_var) { LBB1 -> LBB2 { break; } default: { break L1; } } LBB2 switch (the_var) { default: { } } break; } default: { } } } while(0); LBB3