search for: mcp_yield

Displaying 4 results from an estimated 4 matches for "mcp_yield".

2007 Jan 06
3
[LLVMdev] More detailed example...
...taking the (constant) result 0. I somehow need to get around this, or my attempt to implement a C++ model checker is dead in the water. Thank you in advance, Sarah PS: mcp_fork() duplicates the current stack as a new thread, and returns true within that thread and false in the original thread. mcp_yield() forces a reschedule. Stacks are separate, but the heap is shared. My model checker generates correct output for the generated code, but the generated code has the wrong semantics. ----------------------------------------------------------------- Here is the test code: #include <stdio.h&gt...
2007 Jan 06
0
[LLVMdev] More detailed example...
...w are you compiling this? I get the following sort of output: void %inc(int* %p) { entry: %tmp = volatile load int* %p ; <int> [#uses=1] %tmp1 = add int %tmp, 1 ; <int> [#uses=1] volatile store int %tmp1, int* %p tail call void (...)* %mcp_yield( ) %tmp.1 = volatile load int* %p ; <int> [#uses=1] %tmp1.1 = add int %tmp.1, 1 ; <int> [#uses=1] volatile store int %tmp1.1, int* %p tail call void (...)* %mcp_yield( ) %tmp.2 = volatile load int* %p ; <int> [#...
2007 Jan 06
2
[LLVMdev] More detailed example...
...to have to hit a moving target. > void %inc(int* %p) { > entry: > %tmp = volatile load int* %p ; <int> [#uses=1] > %tmp1 = add int %tmp, 1 ; <int> [#uses=1] > volatile store int %tmp1, int* %p > tail call void (...)* %mcp_yield( ) > %tmp.1 = volatile load int* %p ; <int> [#uses=1] > %tmp1.1 = add int %tmp.1, 1 ; <int> [#uses=1] > volatile store int %tmp1.1, int* %p > tail call void (...)* %mcp_yield( ) > %tmp.2 = volatile load int* %p...
2007 Oct 09
2
[LLVMdev] Stack layout in the x86 back-end
...strategies -- this all works. However, I'm currently dumbly checking the entire stack (not just the currently relevant stack frame(s)) for changes, but I'd rather just be able to check a minimal area. Whenever I context switch, the code under test calls a function in my run-time-system (mcp_yield(), not that the details matter much). What I'd like to be able to do is pick up the address range of the stack frame of the function that called it -- ideally, I'd like a block that encompasses everything from the function parameters up to the current top-of-stack including spilled reg...