[Gs-commits] r463 - in trunk/code/src/gsl: . tests/correctness
Author: slang Date: 2009-04-29 22:18:29 -0500 (Wed, 29 Apr 2009) New Revision: 463 Modified: trunk/code/src/gsl/CGen.lhs trunk/code/src/gsl/gs-parser trunk/code/src/gsl/gs-parser.lhs trunk/code/src/gsl/gscc trunk/code/src/gsl/tests/correctness/btest-impl.c trunk/code/src/gsl/tests/correctness/parallelfor.gs Log: fix parser from changes with state variables in pwait Modified: trunk/code/src/gsl/CGen.lhs =================================================================== --- trunk/code/src/gsl/CGen.lhs 2009-04-30 02:09:41 UTC (rev 462) +++ trunk/code/src/gsl/CGen.lhs 2009-04-30 03:18:29 UTC (rev 463) @@ -143,10 +143,9 @@
mkStructDef :: Ident -> [CDecl] -> NodeInfo -> CTypeSpec mkStructDef name members ni = CSUType (CStruct CStructTag (Just name) (Just members) [] ni) ni
-> mkStructDefDecl :: String -> [CDecl] -> CDecl -> mkStructDefDecl name members = -> let ni = nodeInfo $ head members -> in CDecl [CTypeSpec $ mkStructDef (newIdent name ni) members ni] [(Nothing, Nothing, Nothing)] ni +> mkStructDefDecl :: String -> [CDecl] -> NodeInfo -> CDecl +> mkStructDefDecl name members ni = +> CDecl [CTypeSpec $ mkStructDef (newIdent name ni) members ni] [(Nothing, Nothing, Nothing)] ni
mkStructDecl :: String -> String -> NodeInfo -> CDecl mkStructDecl tname name ni = mkCDecl (CSUType (CStruct CStructTag (Just $ newIdent tname ni) @@ -178,8 +177,8 @@
genStructExtDecl "myStruct" [param1Decl, param2Decl] -> genStructExtDecl :: String -> [CDecl] -> CExtDecl -> genStructExtDecl name members = CDeclExt $ mkStructDefDecl name members +> genStructExtDecl :: String -> [CDecl] -> NodeInfo -> CExtDecl +> genStructExtDecl name members ni = CDeclExt $ mkStructDefDecl name members ni Make a function pointer declarator: (*) (params); Modified: trunk/code/src/gsl/gs-parser =================================================================== (Binary files differ) Modified: trunk/code/src/gsl/gs-parser.lhs =================================================================== --- trunk/code/src/gsl/gs-parser.lhs 2009-04-30 02:09:41 UTC (rev 462) +++ trunk/code/src/gsl/gs-parser.lhs 2009-04-30 03:18:29 UTC (rev 463) @@ -395,25 +395,27 @@
mkBlockingParamsStruct :: CFunDef -> WalkerT CExtDecl mkBlockingParamsStruct funDef = do let decls = getFunDefParams funDef +> ni = nodeInfo funDef params = (map translateBlockingFunParam $ removeVoid decls) ++ (map removeInitFromDecl $ getLocalDeclarations funDef) -> return $ genStructExtDecl (mkStructParamsName $ getFunDefName funDef) params +> return $ genStructExtDecl (mkStructParamsName $ getFunDefName funDef) params ni
removeInits :: (String, [CDecl]) -> (String, [CDecl]) removeInits (pwaitName, pwaitDecls) = (pwaitName, (map removeInitFromDecl pwaitDecls))
-> mkPWaitExtDecl :: String -> (String, [CDecl]) -> CExtDecl -> mkPWaitExtDecl fname (pwaitName, pwaitDecls) = -> genStructExtDecl (mkStructPWaitName fname pwaitName) pwaitDecls +> mkPWaitExtDecl :: String -> (String, [CDecl]) -> NodeInfo -> CExtDecl +> mkPWaitExtDecl fname (pwaitName, pwaitDecls) ni = +> genStructExtDecl (mkStructPWaitName fname pwaitName) pwaitDecls ni
mkBlockingPWaitStructs :: CFunDef -> BlockingContext -> WalkerT [CExtDecl] mkBlockingPWaitStructs funDef bctx | containsPWait bctx = do let fname = getFunDefName funDef +> ni = nodeInfo funDef pwaits = getPWaits bctx pwaitDecls = zip (map getPWaitId pwaits) (map getPWaitDecls pwaits) params = map removeInits pwaitDecls -> return $ map (mkPWaitExtDecl fname) params +> return $ map (\p -> mkPWaitExtDecl fname p ni) params
| otherwise = return []
@@ -435,7 +437,7 @@
$ getPWaits bctx return $ genStructExtDecl ctlName (bparams ++ pparams ++
-> [fieldsDecl, paramsDecl] ++ pwaitDecls) +> [fieldsDecl, paramsDecl] ++ pwaitDecls) ni
mkPostFunName :: Bool -> String -> String -> String mkPostFunName True ctlName name = ctlName ++ "->" ++ name
Modified: trunk/code/src/gsl/gscc =================================================================== --- trunk/code/src/gsl/gscc 2009-04-30 02:09:41 UTC (rev 462) +++ trunk/code/src/gsl/gscc 2009-04-30 03:18:29 UTC (rev 463) @@ -23,7 +23,7 @@ exit $res fi -${CC} -g -x c -c -o $gsfile.o $gsfile.i +gcc -g -x c -c -o $gsfile.o $gsfile.i res=$? if test $res != 0; then echo "compiling parsed $gsfile Failed!" 1>&2 Modified: trunk/code/src/gsl/tests/correctness/btest-impl.c =================================================================== --- trunk/code/src/gsl/tests/correctness/btest-impl.c 2009-04-30 02:09:41 UTC (rev 462) +++ trunk/code/src/gsl/tests/correctness/btest-impl.c 2009-04-30 03:18:29 UTC (rev 463) @@ -6,25 +6,8 @@ #include "gs.h" #include "gs-list.h" -int btest_poll(gs_context_t ctx, int ms); -int btest_cancel(gs_op_id_t id); +static int btest_resource_id; -static int btest_api_id; - -struct gs_api btest_api = -{ - "btest", - NULL, - btest_poll, - btest_cancel -}; - -int btest_init(void) -{ - btest_api_id = gs_register_api(&btest_api); - return 0; -} - struct bsleep_op { void (*cb)(void *ptr, int ret); @@ -57,7 +40,7 @@ assert(n); n->cb = cb; n->user_ptr = up; - n->id = gs_id_gen(btest_api_id, (uint64_t)(uint32_t)n); + n->id = gs_id_gen(btest_resource_id, (uint64_t)(uint32_t)n); n->value = v; gs_list_add_tail(&n->link, list); return n->id; @@ -112,7 +95,7 @@ printf("BTEST SLEEP\n"); n->cb = callback; n->user_ptr = up; - n->id = gs_id_gen(btest_api_id, (uint64_t)(uint32_t)n); + n->id = gs_id_gen(btest_resource_id, (uint64_t)(uint32_t)n); n->sleep = secs; gs_list_add_tail(&n->link, &slist); *op_id = n->id; @@ -198,7 +181,7 @@ return 0; } -int btest_cancel(gs_op_id_t op_id) +int btest_cancel(gs_context_t ctx, gs_op_id_t op_id) { struct gs_list_head *t, *tmp; struct btest_op *b; @@ -218,3 +201,17 @@ return 0; } +struct gs_resource btest_resource = +{ + .resource_name = "btest", + .poll_context = btest_poll, + .cancel = btest_cancel +}; + +int btest_init(void) +{ + btest_resource_id = gs_resource_register(&btest_resource); + return 0; +} + + Modified: trunk/code/src/gsl/tests/correctness/parallelfor.gs =================================================================== --- trunk/code/src/gsl/tests/correctness/parallelfor.gs 2009-04-30 02:09:41 UTC (rev 462) +++ trunk/code/src/gsl/tests/correctness/parallelfor.gs 2009-04-30 03:18:29 UTC (rev 463) @@ -5,7 +5,7 @@ { int a[100]; int ret[100]; - int i; + int i, j; memset(a, 0, sizeof(int)*100); memset(ret, 0, sizeof(int)*100); @@ -14,15 +14,11 @@ { pwait { - pcopy int i; - pbranch { - while(flow_buffer_not_done) - { for(i = 0; i < 100; ++i) - { + { pbranch { - int j = i; + j = i; a[i] = i; ret[i] = btest1(&a[i]); assert(ret[i] == 0); @@ -37,8 +33,9 @@ assert(ret[i] == 0); assert(a[i] == (i+6)); } - } - } + } + } + } printf("pwait done\n"); }
participants (1)
-
slang@mcs.anl.gov