Changeset 2cb8bf71
- Timestamp:
- May 30, 2023, 5:35:57 PM (6 months ago)
- Branches:
- ast-experimental, master
- Children:
- dd3baf4
- Parents:
- 44198fb9 (diff), 8913de4 (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the(diff)
links above to see all the changes relative to each parent. - Files:
-
- 2 added
- 22 edited
Legend:
- Unmodified
- Added
- Removed
-
Jenkinsfile
r44198fb9 r2cb8bf71 155 155 dir (BuildDir) { 156 156 //Run the tests from the tests directory 157 sh """make ${jopt} --no-print-directory -C tests timeout s="--timeout=600 --global-timeout=14400" tests debug=yes archiveerrors=${BuildDir}/tests/crashes/full-debug"""157 sh """make ${jopt} --no-print-directory -C tests timeout=600 global-timeout=14400 tests debug=yes archive-errors=${BuildDir}/tests/crashes/full-debug""" 158 158 } 159 159 } … … 162 162 dir (BuildDir) { 163 163 //Run the tests from the tests directory 164 sh """make ${jopt} --no-print-directory -C tests timeout s="--timeout=600 --global-timeout=14400" tests debug=no archiveerrors=${BuildDir}/tests/crashes/full-nodebug"""164 sh """make ${jopt} --no-print-directory -C tests timeout=600 global-timeout=14400 tests debug=no archive-errors=${BuildDir}/tests/crashes/full-nodebug""" 165 165 } 166 166 } -
benchmark/Makefile.am
r44198fb9 r2cb8bf71 11 11 ## Created On : Sun May 31 09:08:15 2015 12 12 ## Last Modified By : Peter A. Buhr 13 ## Last Modified On : Tue Mar 10 11:41:18 202014 ## Update Count : 2 5813 ## Last Modified On : Fri May 26 12:13:48 2023 14 ## Update Count : 260 15 15 ############################################################################### 16 16 … … 374 374 ## ========================================================================================================= 375 375 376 mutexStmt$(EXEEXT) : 377 mutexStmt-cpp1.run 378 mutexStmt-cpp2.run 379 mutexStmt-cpp4.run 380 mutexStmt-cpp8.run 381 mutexStmt-java.run 382 mutexStmt-lock1.run 383 mutexStmt-lock2.run 384 mutexStmt-lock4.run 385 mutexStmt-lock8.run 386 mutexStmt-no-stmt-lock1.run 387 mutexStmt-no-stmt-lock2.run 388 mutexStmt-no-stmt-lock4.run 389 mutexStmt-no-stmt-lock8.run 390 mutexStmt-monitor1.run 391 mutexStmt-monitor2.run 376 mutexStmt$(EXEEXT) : \ 377 mutexStmt-cpp1.run \ 378 mutexStmt-cpp2.run \ 379 mutexStmt-cpp4.run \ 380 mutexStmt-cpp8.run \ 381 mutexStmt-java.run \ 382 mutexStmt-lock1.run \ 383 mutexStmt-lock2.run \ 384 mutexStmt-lock4.run \ 385 mutexStmt-lock8.run \ 386 mutexStmt-no-stmt-lock1.run \ 387 mutexStmt-no-stmt-lock2.run \ 388 mutexStmt-no-stmt-lock4.run \ 389 mutexStmt-no-stmt-lock8.run \ 390 mutexStmt-monitor1.run \ 391 mutexStmt-monitor2.run \ 392 392 mutexStmt-monitor4.run 393 393 … … 567 567 compile-array.make \ 568 568 compile-attributes.make \ 569 compile-empty.make 569 compile-empty.make \ 570 570 compile-expression.make \ 571 571 compile-io.make \ … … 592 592 593 593 compile-monitor$(EXEEXT): 594 $(CFACOMPILE) -DNO_COMPILED_PRAGMA -fsyntax-only -w $(testdir)/concurren t/monitor.cfa594 $(CFACOMPILE) -DNO_COMPILED_PRAGMA -fsyntax-only -w $(testdir)/concurrency/monitor.cfa 595 595 596 596 compile-operators$(EXEEXT): … … 598 598 599 599 compile-thread$(EXEEXT): 600 $(CFACOMPILE) -DNO_COMPILED_PRAGMA -fsyntax-only -w $(testdir)/concurren t/thread.cfa600 $(CFACOMPILE) -DNO_COMPILED_PRAGMA -fsyntax-only -w $(testdir)/concurrency/thread.cfa 601 601 602 602 compile-typeof$(EXEEXT): -
doc/theses/colby_parsons_MMAth/benchmarks/waituntil/run
r44198fb9 r2cb8bf71 94 94 95 95 chan_size='10' 96 future_time='10' 96 97 97 98 # toggle benchmarks … … 99 100 contend=${true} 100 101 sidechan=${true} 101 # spin=${false} 102 # contend=${false} 103 # sidechan=${false} 102 future=${true} 103 spin=${false} 104 contend=${false} 105 sidechan=${false} 106 # future=${false} 104 107 105 108 runCFA=${true} 106 109 runGO=${true} 110 runUCPP=${true} 107 111 # runCFA=${false} 108 # runGO=${false} 112 runGO=${false} 113 # runUCPP=${false} 109 114 110 115 cfa=~/cfa-cc/driver/cfa … … 158 163 } 159 164 165 run_future() { 166 for p in ${num_threads} ; do 167 pre_args=$(( ${p} - 1 )) 168 affinity ${p} 169 preprint="${p}\t" 170 repeat_command taskset -c ${taskset} ./a.${hostname} ${pre_args} ${post_args} 171 done 172 } 173 160 174 arch # get hostname 161 175 … … 177 191 # cfa flags 178 192 cfa_flags='-quiet -O3 -nodebug -DNDEBUG' 193 194 # UCPP flags 195 UCPPflags="-quiet -g -Wall -Wextra -O3 -nodebug -DNDEBUG -multi" 196 UCPP=~/ucpp/u++-7.0.0/bin/u++ 179 197 180 198 # run the benchmarks … … 243 261 fi 244 262 263 if [ ${future} -eq ${true} ] ; then 264 echo "future: " 265 post_args=${future_time} 266 if [ ${runCFA} -eq ${true} ] ; then 267 cd cfa # CFA RUN 268 print_header 'CFA' 269 ${cfa} ${cfa_flags} future.cfa -o a.${hostname} > /dev/null 2>&1 270 run_future 271 rm a.${hostname} 272 cd - > /dev/null 273 fi # done CFA 274 275 if [ ${runUCPP} -eq ${true} ] ; then 276 cd ucpp 277 print_header 'uC++' 278 ${UCPP} ${UCPPflags} future.cc -o a.${hostname} > /dev/null 2>&1 279 run_future 280 rm a.${hostname} 281 cd - > /dev/null 282 fi # done Go 283 fi 284 -
src/AST/Pass.impl.hpp
r44198fb9 r2cb8bf71 46 46 47 47 #ifdef PEDANTIC_PASS_ASSERT 48 #define __pedantic_pass_assert(...) assert 48 #define __pedantic_pass_assert(...) assert(__VA_ARGS__) 49 49 #define __pedantic_pass_assertf(...) assertf(__VA_ARGS__) 50 50 #else -
src/AST/Pass.proto.hpp
r44198fb9 r2cb8bf71 27 27 28 28 #ifdef PEDANTIC_PASS_ASSERT 29 #define __pedantic_pass_assert(...) assert 29 #define __pedantic_pass_assert(...) assert(__VA_ARGS__) 30 30 #define __pedantic_pass_assertf(...) assertf(__VA_ARGS__) 31 31 #else -
src/Concurrency/Waituntil.cpp
r44198fb9 r2cb8bf71 940 940 } 941 941 942 // C_TODO: will remove this commented code later. Currently it isn't needed but may switch to a modified version of this later if it has better performance943 // std::vector<ptr<CaseClause>> switchCases;944 945 // int idx = 0;946 // for ( const auto & clause: stmt->clauses ) {947 // const CodeLocation & cLoc = clause->location;948 // switchCases.push_back(949 // new CaseClause( cLoc,950 // new CastExpr( cLoc,951 // new AddressExpr( cLoc, new NameExpr( cLoc, data.at(idx)->targetName ) ),952 // new BasicType( BasicType::Kind::LongUnsignedInt ), GeneratedFlag::ExplicitCast953 // ),954 // {955 // new CompoundStmt( cLoc,956 // {957 // ast::deepCopy( clause->stmt ),958 // new BranchStmt( cLoc, BranchStmt::Kind::Break, Label( cLoc ) )959 // }960 // )961 // }962 // )963 // );964 // idx++;965 // }966 967 942 return new CompoundStmt( loc, 968 943 { 969 944 new ExprStmt( loc, new UntypedExpr( loc, new NameExpr( loc, "park" ) ) ), 970 945 outerIf 971 // new SwitchStmt( loc,972 // new NameExpr( loc, statusName ),973 // std::move( switchCases )974 // )975 946 } 976 947 ); … … 1015 986 const CodeLocation & cLoc = stmt->clauses.at(idx)->location; 1016 987 988 Expr * baseCond = genSelectTraitCall( stmt->clauses.at(idx), data.at(idx), "register_select" ); 1017 989 Expr * ifCond; 1018 990 … … 1025 997 ), 1026 998 new CastExpr( cLoc, 1027 genSelectTraitCall( stmt->clauses.at(idx), data.at(idx), "register_select" ),999 baseCond, 1028 1000 new BasicType( BasicType::Kind::Bool ), GeneratedFlag::ExplicitCast 1029 1001 ), 1030 1002 LogicalFlag::AndExpr 1031 1003 ); 1032 } else ifCond = genSelectTraitCall( stmt->clauses.at(idx), data.at(idx), "register_select" );1004 } else ifCond = baseCond; 1033 1005 1034 1006 return new CompoundStmt( cLoc, -
src/SymTab/Autogen.h
r44198fb9 r2cb8bf71 20 20 #include <string> // for string 21 21 22 #include "AST/Decl.hpp"23 #include "AST/Expr.hpp"24 #include "AST/Init.hpp"25 #include "AST/Node.hpp"26 #include "AST/Stmt.hpp"27 #include "AST/Type.hpp"28 22 #include "CodeGen/OperatorTable.h" 29 23 #include "Common/UniqueName.h" // for UniqueName … … 57 51 /// maybePolymorphic is true if the resulting FunctionType is allowed to be polymorphic 58 52 FunctionType * genCopyType( Type * paramType, bool maybePolymorphic = true ); 59 60 /// Enum for loop direction61 enum LoopDirection { LoopBackward, LoopForward };62 53 63 54 /// inserts into out a generated call expression to function fname with arguments dstParam and srcParam. Intended to be used with generated ?=?, ?{}, and ^?{} calls. -
src/SymTab/GenImplicitCall.cpp
r44198fb9 r2cb8bf71 16 16 #include "GenImplicitCall.hpp" 17 17 18 #include "AST/Decl.hpp" // for ObjectDecl 19 #include "AST/Expr.hpp" // for ConstantExpr, UntypedExpr,... 20 #include "AST/Init.hpp" // for SingleInit 18 21 #include "AST/Inspect.hpp" // for isUnnamedBitfield 22 #include "AST/Stmt.hpp" // for ExprStmt 23 #include "AST/Type.hpp" // for ArrayType, BasicType, ... 19 24 #include "CodeGen/OperatorTable.h" // for isCtorDtor 20 25 #include "Common/UniqueName.h" // for UniqueName 21 26 22 27 namespace SymTab { 28 29 namespace { 23 30 24 31 template< typename OutIter > … … 173 180 } 174 181 182 } // namespace 183 175 184 ast::ptr< ast::Stmt > genImplicitCall( 176 185 InitTweak::InitExpander_new & srcParam, const ast::Expr * dstParam, -
src/SymTab/GenImplicitCall.hpp
r44198fb9 r2cb8bf71 17 17 18 18 #include "InitTweak/InitTweak.h" // for InitExpander 19 #include "SymTab/Autogen.h" // for LoopDirection20 19 21 20 namespace SymTab { 22 21 22 /// Enum for loop direction 23 enum LoopDirection { LoopBackward, LoopForward }; 24 25 /// Returns a generated call expression to function fname with srcParam and 26 /// dstParam. Intended to be used with generated ?=?, ?{}, and ^?{} calls. 23 27 ast::ptr<ast::Stmt> genImplicitCall( 24 28 InitTweak::InitExpander_new & srcParam, const ast::Expr * dstParam, … … 34 38 // compile-command: "make install" // 35 39 // End: // 36 -
src/Validate/Autogen.cpp
r44198fb9 r2cb8bf71 44 44 #include "CompilationState.h" 45 45 46 // TODO: The other new ast function should be moved over to this file.47 #include "SymTab/Autogen.h"48 49 46 namespace Validate { 50 47 … … 96 93 97 94 const CodeLocation& getLocation() const { return getDecl()->location; } 98 ast::FunctionDecl * genProto( const std::string& name,95 ast::FunctionDecl * genProto( std::string&& name, 99 96 std::vector<ast::ptr<ast::DeclWithType>>&& params, 100 97 std::vector<ast::ptr<ast::DeclWithType>>&& returns ) const; … … 337 334 } 338 335 336 void replaceAll( std::vector<ast::ptr<ast::DeclWithType>> & dwts, 337 const ast::DeclReplacer::TypeMap & map ) { 338 for ( auto & dwt : dwts ) { 339 dwt = strict_dynamic_cast<const ast::DeclWithType *>( 340 ast::DeclReplacer::replace( dwt, map ) ); 341 } 342 } 343 339 344 /// Generates a basic prototype function declaration. 340 ast::FunctionDecl * FuncGenerator::genProto( const std::string& name,345 ast::FunctionDecl * FuncGenerator::genProto( std::string&& name, 341 346 std::vector<ast::ptr<ast::DeclWithType>>&& params, 342 347 std::vector<ast::ptr<ast::DeclWithType>>&& returns ) const { … … 344 349 // Handle generic prameters and assertions, if any. 345 350 auto const & old_type_params = getGenericParams( type ); 351 ast::DeclReplacer::TypeMap oldToNew; 346 352 std::vector<ast::ptr<ast::TypeDecl>> type_params; 347 353 std::vector<ast::ptr<ast::DeclWithType>> assertions; 348 354 for ( auto & old_param : old_type_params ) { 349 355 ast::TypeDecl * decl = ast::deepCopy( old_param ); 350 for ( auto assertion : decl->assertions ) { 351 assertions.push_back( assertion ); 352 } 353 decl->assertions.clear(); 356 decl->init = nullptr; 357 splice( assertions, decl->assertions ); 358 oldToNew.emplace( std::make_pair( old_param, decl ) ); 354 359 type_params.push_back( decl ); 355 360 } 356 // TODO: The values in params and returns still may point at the old357 // generic params, that does not appear to be an issue but perhaps it358 // should be addressed.361 replaceAll( params, oldToNew ); 362 replaceAll( returns, oldToNew ); 363 replaceAll( assertions, oldToNew ); 359 364 360 365 ast::FunctionDecl * decl = new ast::FunctionDecl( 361 366 // Auto-generated routines use the type declaration's location. 362 367 getLocation(), 363 name,368 std::move( name ), 364 369 std::move( type_params ), 365 370 std::move( assertions ), -
tests/.expect/array-ERR1.txt
r44198fb9 r2cb8bf71 1 array.cfa:1 05:25: warning: Preprocessor started1 array.cfa:119:25: warning: Preprocessor started 2 2 array.cfa:40:22: error: '[*]' not allowed in other than function prototype scope 3 3 array.cfa:46:24: error: '[*]' not allowed in other than function prototype scope -
tests/.expect/array-ERR2.txt
r44198fb9 r2cb8bf71 1 array.cfa:1 05:25: warning: Preprocessor started2 array.cfa: 95:32: error: syntax error, unexpected STATIC before token "static"1 array.cfa:119:25: warning: Preprocessor started 2 array.cfa:109:32: error: syntax error, unexpected STATIC before token "static" -
tests/.expect/array-ERR3.txt
r44198fb9 r2cb8bf71 1 array.cfa:1 05:25: warning: Preprocessor started2 array.cfa: 96:32: error: syntax error, unexpected ']' before token "]"1 array.cfa:119:25: warning: Preprocessor started 2 array.cfa:110:32: error: syntax error, unexpected ']' before token "]" -
tests/.expect/array.txt
r44198fb9 r2cb8bf71 1 array.cfa:1 05:25: warning: Preprocessor started1 array.cfa:119:25: warning: Preprocessor started -
tests/Makefile.am
r44198fb9 r2cb8bf71 11 11 ## Created On : Sun May 31 09:08:15 2015 12 12 ## Last Modified By : Peter A. Buhr 13 ## Last Modified On : Fri May 26 08:23:09202314 ## Update Count : 1 7913 ## Last Modified On : Sun May 28 08:15:43 2023 14 ## Update Count : 196 15 15 ############################################################################### 16 16 … … 26 26 ARCH = ${if ${arch},"--arch=${arch}"} 27 27 arch_support = "x86/x64/arm" 28 TIMEOUT = ${if ${timeout},"--timeout=${timeout}"} 29 GLOBAL_TIMEOUT = ${if ${global-timeout},"--global-timeout=${global-timeout}"} 30 ARCHIVE_ERRORS = ${if ${archive-errors},"--archive-errors=${archive-errors}"} 31 28 32 DEBUG_FLAGS = -debug -g -O0 29 33 30 34 quick_test = avl_test operators numericConstants expression enum array typeof cast raii/dtor-early-exit raii/init_once attributes meta/dumpable 31 32 archiveerrors=33 concurrent=34 timeouts=35 35 36 36 TEST_PY = python3 ${builddir}/test.py … … 67 67 PRETTY_PATH = mkdir -p ${dir ${abspath ${@}}} && cd ${srcdir} && 68 68 69 .PHONY : list .validate .test_makeflags69 .PHONY : concurrency list .validate .test_makeflags 70 70 .INTERMEDIATE : .validate .validate.cfa .test_makeflags 71 71 EXTRA_PROGRAMS = avl_test linkonce linking/mangling/anon .dummy_hack # build but do not install … … 90 90 concurrency/clib.c \ 91 91 concurrency/unified_locking/mutex_test.hfa \ 92 concurren tcy/channels/parallel_harness.hfa92 concurrency/channels/parallel_harness.hfa 93 93 94 94 dist-hook: … … 109 109 #---------------------------------------------------------------------------------------------------------------- 110 110 111 # '@' => do not echo command (SILENT), '+' => allows recursive make from within python program 111 112 all-local : # This name is important to automake and implies the default build target. 112 @+${TEST_PY} --debug=${debug} --install=${installed} --invariant --archive-errors=${archiveerrors} ${concurrent} ${timeouts} ${ARCH} --all # '@' => do not echo command (SILENT), '+' => allows recursive make from within python program113 114 install : all-local # PAB only 115 116 tests : all-local 113 @+${TEST_PY} --debug=${debug} --install=${installed} --invariant ${ARCHIVE_ERRORS} ${TIMEOUT} ${GLOBAL_TIMEOUT} ${ARCH} --all 114 115 tests : all-local # synonym 116 117 install : all-local # synonym, PAB only 117 118 118 119 quick : 119 @+${TEST_PY} --debug=${debug} --install=${installed} --archive-errors=${archiveerrors} ${concurrent} ${timeouts} ${ARCH} ${quick_test}120 @+${TEST_PY} --debug=${debug} --install=${installed} ${ARCHIVE_ERRORS} ${ARCH} ${quick_test} 120 121 121 122 concurrency : 122 @+${TEST_PY} --debug=${debug} --install=${installed} ${ARCH } -Iconcurrent123 @+${TEST_PY} --debug=${debug} --install=${installed} ${ARCHIVE_ERRORS} ${TIMEOUT} ${GLOBAL_TIMEOUT} ${ARCH} -Iconcurrency 123 124 124 125 list : 125 @+${TEST_PY} --list ${concurrent}126 @+${TEST_PY} --list 126 127 127 128 help : 128 129 @echo "user targets:" 129 130 @echo " Run the complete test suite." 130 @echo " $$ make (null) / tests [debug=yes/no] [installed=yes/no] [arch =${arch_support}]"131 @echo " $$ make (null) / tests [debug=yes/no] [installed=yes/no] [archive-errors=dump-dir] [timeout=seconds] [global-timeout=seconds] [arch=${arch_support}]" 131 132 @echo "" 132 133 @echo " Run the short (quick) test suite." 133 @echo " $$ make quick [debug=yes/no] [installed=yes/no] [arch =${arch_support}]"134 @echo " $$ make quick [debug=yes/no] [installed=yes/no] [archive-errors=dump-dir] [arch=${arch_support}]" 134 135 @echo "" 135 @echo " Run the concurren ttest suite."136 @echo " $$ make concurrency [debug=yes/no] [installed=yes/no] [arch =${arch_support}]"136 @echo " Run the concurrency test suite." 137 @echo " $$ make concurrency [debug=yes/no] [installed=yes/no] [archive-errors=dump-dir] [timeout=seconds] [global-timeout=seconds] [arch=${arch_support}]" 137 138 @echo "" 138 139 @echo " List all tests in the test suite." -
tests/array.cfa
r44198fb9 r2cb8bf71 81 81 } 82 82 [ * [int]( [3] int T, 83 [const 3] int p1,84 [static 3] int p2,85 [static const 3] int p386 )83 [const 3] int p1, 84 [static 3] int p2, 85 [static const 3] int p3 86 ) 87 87 ] janes_twin(...) { 88 88 } 89 89 #endif 90 90 91 // GCC 11+ gives a false warning (-Wvla-parameter) on the valid (C11 ARM p134-135) combination: 92 // declare with type int[*], define with type int[n]. 93 // https://gcc.gnu.org/bugzilla//show_bug.cgi?id=100420 suggests the internal representation of 94 // of a[*] is the same as a[0]. 95 // https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wno-vla-parameter explains 96 // the purpose of -Wvla-parameter is to report conflicts between int[] and int[n], which would 97 // understandably also include those between int[42] and int[n]. 98 // https://stackoverflow.com/questions/17371645/why-use-an-asterisk-instead-of-an-integer-for-a-vla-array-parameter-of-a-f 99 // explains the declare-*, define-n pattern. 91 100 92 // int fm1( int, int, int[][*] ); // TODO: investigate gcc-11 warning 93 // int fm1( int r, int c, int m[][c] ) {} 101 // To work around the false warning, and keep to this test's purpose of exercising CFA's 102 // handling of exotic C array syntax, what would ideally be demonstrated as a declaration of 103 // fm1, followed by its definition, is instead split into fm1x and fm1y. And similarly for 104 // fm5. 105 106 int fm1x( int, int, int[][*] ); 107 int fm1y( int r, int c, int m[][c] ) {} 94 108 int fm2( int r, int c, int (*m)[c] ) {} // same as fm1 95 109 E2( int fm3( int r, int c, int m[][static c] ) {} ) // that's not static 96 110 E3( int fm4( int r, int c, int m[][] ); ) // m's immediate element type is incomplete 97 int fm5 ( int, int, int[*][*] );// same as fm1 decl111 int fm5x( int, int, int[*][*] ); // same as fm1 decl 98 112 #ifndef __cforall 99 int fm5 ( int r, int c, int m[r][c] ) {}// BUG 276: CFA chokes but should accept113 int fm5y( int r, int c, int m[r][c] ) {} // BUG 276: CFA chokes but should accept 100 114 // C: same as fm1 defn 101 115 #endif -
tests/concurrency/barrier/gen_generation_expect.cfa
r44198fb9 r2cb8bf71 5 5 // file "LICENCE" distributed with Cforall. 6 6 // 7 // gen_generation_expect.cfa -- simple 'script' generates the expect file for concurren t/barrier/generation7 // gen_generation_expect.cfa -- simple 'script' generates the expect file for concurrency/barrier/generation 8 8 // 9 9 // Author : Thierry Delisle -
tests/concurrency/barrier/generation.cfa
r44198fb9 r2cb8bf71 5 5 // file "LICENCE" distributed with Cforall. 6 6 // 7 // concurrent/barrier/generation.cfa -- simple test that validates barriers by printing 8 // alphabetical generations 7 // generation.cfa -- simple test that validates barriers by printing alphabetical generations 9 8 // 10 9 // Author : Thierry Delisle -
tests/concurrency/barrier/last.cfa
r44198fb9 r2cb8bf71 5 5 // file "LICENCE" distributed with Cforall. 6 6 // 7 // concurrent/barrier/last.cfa -- validates barrier's last hook functionality7 // last.cfa -- validates barrier's last hook functionality 8 8 // 9 9 // Author : Thierry Delisle -
tests/concurrency/barrier/order.cfa
r44198fb9 r2cb8bf71 5 5 // file "LICENCE" distributed with Cforall. 6 6 // 7 // concurrent/barrier/order.cfa -- validates barriers the return value of7 // order.cfa -- validates barriers the return value of 8 8 // barrier block 9 9 // -
tests/concurrency/readyQ/barrier_sleeper.cfa
r44198fb9 r2cb8bf71 5 5 // file "LICENCE" distributed with Cforall. 6 6 // 7 // concurrent/readyQ/barrier_sleeper.cfa -- testing the ready-queue7 // barrier_sleeper.cfa -- testing the ready-queue 8 8 // 9 9 // Author : Thierry Delisle -
tests/concurrency/readyQ/leader_spin.cfa
r44198fb9 r2cb8bf71 5 5 // file "LICENCE" distributed with Cforall. 6 6 // 7 // concurrent/readyQ/leader_spin.cfa -- validates ready queue fairness7 // leader_spin.cfa -- validates ready queue fairness 8 8 // 9 9 // Author : Thierry Delisle
Note: See TracChangeset
for help on using the changeset viewer.