Changes in / [2cb8bf71:44198fb9]
- Files:
-
- 2 deleted
- 22 edited
-
Jenkinsfile (modified) (2 diffs)
-
benchmark/Makefile.am (modified) (5 diffs)
-
doc/theses/colby_parsons_MMAth/benchmarks/waituntil/cfa/future.cfa (deleted)
-
doc/theses/colby_parsons_MMAth/benchmarks/waituntil/run (modified) (5 diffs)
-
doc/theses/colby_parsons_MMAth/benchmarks/waituntil/ucpp/future.cc (deleted)
-
src/AST/Pass.impl.hpp (modified) (1 diff)
-
src/AST/Pass.proto.hpp (modified) (1 diff)
-
src/Concurrency/Waituntil.cpp (modified) (3 diffs)
-
src/SymTab/Autogen.h (modified) (2 diffs)
-
src/SymTab/GenImplicitCall.cpp (modified) (2 diffs)
-
src/SymTab/GenImplicitCall.hpp (modified) (2 diffs)
-
src/Validate/Autogen.cpp (modified) (4 diffs)
-
tests/.expect/array-ERR1.txt (modified) (1 diff)
-
tests/.expect/array-ERR2.txt (modified) (1 diff)
-
tests/.expect/array-ERR3.txt (modified) (1 diff)
-
tests/.expect/array.txt (modified) (1 diff)
-
tests/Makefile.am (modified) (5 diffs)
-
tests/array.cfa (modified) (1 diff)
-
tests/concurrency/barrier/gen_generation_expect.cfa (modified) (1 diff)
-
tests/concurrency/barrier/generation.cfa (modified) (1 diff)
-
tests/concurrency/barrier/last.cfa (modified) (1 diff)
-
tests/concurrency/barrier/order.cfa (modified) (1 diff)
-
tests/concurrency/readyQ/barrier_sleeper.cfa (modified) (1 diff)
-
tests/concurrency/readyQ/leader_spin.cfa (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
Jenkinsfile
r2cb8bf71 r44198fb9 155 155 dir (BuildDir) { 156 156 //Run the tests from the tests directory 157 sh """make ${jopt} --no-print-directory -C tests timeout =600 global-timeout=14400 tests debug=yes archive-errors=${BuildDir}/tests/crashes/full-debug"""157 sh """make ${jopt} --no-print-directory -C tests timeouts="--timeout=600 --global-timeout=14400" tests debug=yes archiveerrors=${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 =600 global-timeout=14400 tests debug=no archive-errors=${BuildDir}/tests/crashes/full-nodebug"""164 sh """make ${jopt} --no-print-directory -C tests timeouts="--timeout=600 --global-timeout=14400" tests debug=no archiveerrors=${BuildDir}/tests/crashes/full-nodebug""" 165 165 } 166 166 } -
benchmark/Makefile.am
r2cb8bf71 r44198fb9 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 12:13:48 202314 ## Update Count : 2 6013 ## Last Modified On : Tue Mar 10 11:41:18 2020 14 ## Update Count : 258 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 cy/monitor.cfa594 $(CFACOMPILE) -DNO_COMPILED_PRAGMA -fsyntax-only -w $(testdir)/concurrent/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 cy/thread.cfa600 $(CFACOMPILE) -DNO_COMPILED_PRAGMA -fsyntax-only -w $(testdir)/concurrent/thread.cfa 601 601 602 602 compile-typeof$(EXEEXT): -
doc/theses/colby_parsons_MMAth/benchmarks/waituntil/run
r2cb8bf71 r44198fb9 94 94 95 95 chan_size='10' 96 future_time='10'97 96 98 97 # toggle benchmarks … … 100 99 contend=${true} 101 100 sidechan=${true} 102 future=${true} 103 spin=${false} 104 contend=${false} 105 sidechan=${false} 106 # future=${false} 101 # spin=${false} 102 # contend=${false} 103 # sidechan=${false} 107 104 108 105 runCFA=${true} 109 106 runGO=${true} 110 runUCPP=${true}111 107 # runCFA=${false} 112 runGO=${false} 113 # runUCPP=${false} 108 # runGO=${false} 114 109 115 110 cfa=~/cfa-cc/driver/cfa … … 163 158 } 164 159 165 run_future() {166 for p in ${num_threads} ; do167 pre_args=$(( ${p} - 1 ))168 affinity ${p}169 preprint="${p}\t"170 repeat_command taskset -c ${taskset} ./a.${hostname} ${pre_args} ${post_args}171 done172 }173 174 160 arch # get hostname 175 161 … … 191 177 # cfa flags 192 178 cfa_flags='-quiet -O3 -nodebug -DNDEBUG' 193 194 # UCPP flags195 UCPPflags="-quiet -g -Wall -Wextra -O3 -nodebug -DNDEBUG -multi"196 UCPP=~/ucpp/u++-7.0.0/bin/u++197 179 198 180 # run the benchmarks … … 261 243 fi 262 244 263 if [ ${future} -eq ${true} ] ; then264 echo "future: "265 post_args=${future_time}266 if [ ${runCFA} -eq ${true} ] ; then267 cd cfa # CFA RUN268 print_header 'CFA'269 ${cfa} ${cfa_flags} future.cfa -o a.${hostname} > /dev/null 2>&1270 run_future271 rm a.${hostname}272 cd - > /dev/null273 fi # done CFA274 275 if [ ${runUCPP} -eq ${true} ] ; then276 cd ucpp277 print_header 'uC++'278 ${UCPP} ${UCPPflags} future.cc -o a.${hostname} > /dev/null 2>&1279 run_future280 rm a.${hostname}281 cd - > /dev/null282 fi # done Go283 fi284 -
src/AST/Pass.impl.hpp
r2cb8bf71 r44198fb9 46 46 47 47 #ifdef PEDANTIC_PASS_ASSERT 48 #define __pedantic_pass_assert(...) assert (__VA_ARGS__)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
r2cb8bf71 r44198fb9 27 27 28 28 #ifdef PEDANTIC_PASS_ASSERT 29 #define __pedantic_pass_assert(...) assert (__VA_ARGS__)29 #define __pedantic_pass_assert(...) assert (__VA_ARGS__) 30 30 #define __pedantic_pass_assertf(...) assertf(__VA_ARGS__) 31 31 #else -
src/Concurrency/Waituntil.cpp
r2cb8bf71 r44198fb9 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 performance 943 // 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::ExplicitCast 953 // ), 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 942 967 return new CompoundStmt( loc, 943 968 { 944 969 new ExprStmt( loc, new UntypedExpr( loc, new NameExpr( loc, "park" ) ) ), 945 970 outerIf 971 // new SwitchStmt( loc, 972 // new NameExpr( loc, statusName ), 973 // std::move( switchCases ) 974 // ) 946 975 } 947 976 ); … … 986 1015 const CodeLocation & cLoc = stmt->clauses.at(idx)->location; 987 1016 988 Expr * baseCond = genSelectTraitCall( stmt->clauses.at(idx), data.at(idx), "register_select" );989 1017 Expr * ifCond; 990 1018 … … 997 1025 ), 998 1026 new CastExpr( cLoc, 999 baseCond,1027 genSelectTraitCall( stmt->clauses.at(idx), data.at(idx), "register_select" ), 1000 1028 new BasicType( BasicType::Kind::Bool ), GeneratedFlag::ExplicitCast 1001 1029 ), 1002 1030 LogicalFlag::AndExpr 1003 1031 ); 1004 } else ifCond = baseCond;1032 } else ifCond = genSelectTraitCall( stmt->clauses.at(idx), data.at(idx), "register_select" ); 1005 1033 1006 1034 return new CompoundStmt( cLoc, -
src/SymTab/Autogen.h
r2cb8bf71 r44198fb9 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" 22 28 #include "CodeGen/OperatorTable.h" 23 29 #include "Common/UniqueName.h" // for UniqueName … … 51 57 /// maybePolymorphic is true if the resulting FunctionType is allowed to be polymorphic 52 58 FunctionType * genCopyType( Type * paramType, bool maybePolymorphic = true ); 59 60 /// Enum for loop direction 61 enum LoopDirection { LoopBackward, LoopForward }; 53 62 54 63 /// 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
r2cb8bf71 r44198fb9 16 16 #include "GenImplicitCall.hpp" 17 17 18 #include "AST/Decl.hpp" // for ObjectDecl19 #include "AST/Expr.hpp" // for ConstantExpr, UntypedExpr,...20 #include "AST/Init.hpp" // for SingleInit21 18 #include "AST/Inspect.hpp" // for isUnnamedBitfield 22 #include "AST/Stmt.hpp" // for ExprStmt23 #include "AST/Type.hpp" // for ArrayType, BasicType, ...24 19 #include "CodeGen/OperatorTable.h" // for isCtorDtor 25 20 #include "Common/UniqueName.h" // for UniqueName 26 21 27 22 namespace SymTab { 28 29 namespace {30 23 31 24 template< typename OutIter > … … 180 173 } 181 174 182 } // namespace183 184 175 ast::ptr< ast::Stmt > genImplicitCall( 185 176 InitTweak::InitExpander_new & srcParam, const ast::Expr * dstParam, -
src/SymTab/GenImplicitCall.hpp
r2cb8bf71 r44198fb9 17 17 18 18 #include "InitTweak/InitTweak.h" // for InitExpander 19 #include "SymTab/Autogen.h" // for LoopDirection 19 20 20 21 namespace SymTab { 21 22 22 /// Enum for loop direction23 enum LoopDirection { LoopBackward, LoopForward };24 25 /// Returns a generated call expression to function fname with srcParam and26 /// dstParam. Intended to be used with generated ?=?, ?{}, and ^?{} calls.27 23 ast::ptr<ast::Stmt> genImplicitCall( 28 24 InitTweak::InitExpander_new & srcParam, const ast::Expr * dstParam, … … 38 34 // compile-command: "make install" // 39 35 // End: // 36 -
src/Validate/Autogen.cpp
r2cb8bf71 r44198fb9 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 46 49 namespace Validate { 47 50 … … 93 96 94 97 const CodeLocation& getLocation() const { return getDecl()->location; } 95 ast::FunctionDecl * genProto( std::string&& name,98 ast::FunctionDecl * genProto( const std::string& name, 96 99 std::vector<ast::ptr<ast::DeclWithType>>&& params, 97 100 std::vector<ast::ptr<ast::DeclWithType>>&& returns ) const; … … 334 337 } 335 338 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 344 339 /// Generates a basic prototype function declaration. 345 ast::FunctionDecl * FuncGenerator::genProto( std::string&& name,340 ast::FunctionDecl * FuncGenerator::genProto( const std::string& name, 346 341 std::vector<ast::ptr<ast::DeclWithType>>&& params, 347 342 std::vector<ast::ptr<ast::DeclWithType>>&& returns ) const { … … 349 344 // Handle generic prameters and assertions, if any. 350 345 auto const & old_type_params = getGenericParams( type ); 351 ast::DeclReplacer::TypeMap oldToNew;352 346 std::vector<ast::ptr<ast::TypeDecl>> type_params; 353 347 std::vector<ast::ptr<ast::DeclWithType>> assertions; 354 348 for ( auto & old_param : old_type_params ) { 355 349 ast::TypeDecl * decl = ast::deepCopy( old_param ); 356 decl->init = nullptr; 357 splice( assertions, decl->assertions ); 358 oldToNew.emplace( std::make_pair( old_param, decl ) ); 350 for ( auto assertion : decl->assertions ) { 351 assertions.push_back( assertion ); 352 } 353 decl->assertions.clear(); 359 354 type_params.push_back( decl ); 360 355 } 361 replaceAll( params, oldToNew );362 replaceAll( returns, oldToNew );363 replaceAll( assertions, oldToNew );356 // TODO: The values in params and returns still may point at the old 357 // generic params, that does not appear to be an issue but perhaps it 358 // should be addressed. 364 359 365 360 ast::FunctionDecl * decl = new ast::FunctionDecl( 366 361 // Auto-generated routines use the type declaration's location. 367 362 getLocation(), 368 std::move( name ),363 name, 369 364 std::move( type_params ), 370 365 std::move( assertions ), -
tests/.expect/array-ERR1.txt
r2cb8bf71 r44198fb9 1 array.cfa:1 19:25: warning: Preprocessor started1 array.cfa:105: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
r2cb8bf71 r44198fb9 1 array.cfa:1 19:25: warning: Preprocessor started2 array.cfa: 109:32: error: syntax error, unexpected STATIC before token "static"1 array.cfa:105:25: warning: Preprocessor started 2 array.cfa:95:32: error: syntax error, unexpected STATIC before token "static" -
tests/.expect/array-ERR3.txt
r2cb8bf71 r44198fb9 1 array.cfa:1 19:25: warning: Preprocessor started2 array.cfa: 110:32: error: syntax error, unexpected ']' before token "]"1 array.cfa:105:25: warning: Preprocessor started 2 array.cfa:96:32: error: syntax error, unexpected ']' before token "]" -
tests/.expect/array.txt
r2cb8bf71 r44198fb9 1 array.cfa:1 19:25: warning: Preprocessor started1 array.cfa:105:25: warning: Preprocessor started -
tests/Makefile.am
r2cb8bf71 r44198fb9 11 11 ## Created On : Sun May 31 09:08:15 2015 12 12 ## Last Modified By : Peter A. Buhr 13 ## Last Modified On : Sun May 28 08:15:43202314 ## Update Count : 1 9613 ## Last Modified On : Fri May 26 08:23:09 2023 14 ## Update Count : 179 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 32 28 DEBUG_FLAGS = -debug -g -O0 33 29 34 30 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 : concurrencylist .validate .test_makeflags69 .PHONY : 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 cy/channels/parallel_harness.hfa92 concurrentcy/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 program112 111 all-local : # This name is important to automake and implies the default build target. 113 @+${TEST_PY} --debug=${debug} --install=${installed} --invariant ${ARCHIVE_ERRORS} ${TIMEOUT} ${GLOBAL_TIMEOUT} ${ARCH} --all114 115 tests : all-local # synonym 116 117 install : all-local # synonym, PAB only 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 program 113 114 install : all-local # PAB only 115 116 tests : all-local 118 117 119 118 quick : 120 @+${TEST_PY} --debug=${debug} --install=${installed} ${ARCHIVE_ERRORS} ${ARCH} ${quick_test}119 @+${TEST_PY} --debug=${debug} --install=${installed} --archive-errors=${archiveerrors} ${concurrent} ${timeouts} ${ARCH} ${quick_test} 121 120 122 121 concurrency : 123 @+${TEST_PY} --debug=${debug} --install=${installed} ${ARCH IVE_ERRORS} ${TIMEOUT} ${GLOBAL_TIMEOUT} ${ARCH} -Iconcurrency122 @+${TEST_PY} --debug=${debug} --install=${installed} ${ARCH} -Iconcurrent 124 123 125 124 list : 126 @+${TEST_PY} --list 125 @+${TEST_PY} --list ${concurrent} 127 126 128 127 help : 129 128 @echo "user targets:" 130 129 @echo " Run the complete test suite." 131 @echo " $$ make (null) / tests [debug=yes/no] [installed=yes/no] [arch ive-errors=dump-dir] [timeout=seconds] [global-timeout=seconds] [arch=${arch_support}]"130 @echo " $$ make (null) / tests [debug=yes/no] [installed=yes/no] [arch=${arch_support}]" 132 131 @echo "" 133 132 @echo " Run the short (quick) test suite." 134 @echo " $$ make quick [debug=yes/no] [installed=yes/no] [arch ive-errors=dump-dir] [arch=${arch_support}]"133 @echo " $$ make quick [debug=yes/no] [installed=yes/no] [arch=${arch_support}]" 135 134 @echo "" 136 @echo " Run the concurren cytest suite."137 @echo " $$ make concurrency [debug=yes/no] [installed=yes/no] [arch ive-errors=dump-dir] [timeout=seconds] [global-timeout=seconds] [arch=${arch_support}]"135 @echo " Run the concurrent test suite." 136 @echo " $$ make concurrency [debug=yes/no] [installed=yes/no] [arch=${arch_support}]" 138 137 @echo "" 139 138 @echo " List all tests in the test suite." -
tests/array.cfa
r2cb8bf71 r44198fb9 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 of94 // of a[*] is the same as a[0].95 // https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wno-vla-parameter explains96 // the purpose of -Wvla-parameter is to report conflicts between int[] and int[n], which would97 // 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-f99 // explains the declare-*, define-n pattern.100 91 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] ) {} 92 // int fm1( int, int, int[][*] ); // TODO: investigate gcc-11 warning 93 // int fm1( int r, int c, int m[][c] ) {} 108 94 int fm2( int r, int c, int (*m)[c] ) {} // same as fm1 109 95 E2( int fm3( int r, int c, int m[][static c] ) {} ) // that's not static 110 96 E3( int fm4( int r, int c, int m[][] ); ) // m's immediate element type is incomplete 111 int fm5 x( int, int, int[*][*] );// same as fm1 decl97 int fm5( int, int, int[*][*] ); // same as fm1 decl 112 98 #ifndef __cforall 113 int fm5 y( int r, int c, int m[r][c] ) {}// BUG 276: CFA chokes but should accept99 int fm5( int r, int c, int m[r][c] ) {} // BUG 276: CFA chokes but should accept 114 100 // C: same as fm1 defn 115 101 #endif -
tests/concurrency/barrier/gen_generation_expect.cfa
r2cb8bf71 r44198fb9 5 5 // file "LICENCE" distributed with Cforall. 6 6 // 7 // gen_generation_expect.cfa -- simple 'script' generates the expect file for concurren cy/barrier/generation7 // gen_generation_expect.cfa -- simple 'script' generates the expect file for concurrent/barrier/generation 8 8 // 9 9 // Author : Thierry Delisle -
tests/concurrency/barrier/generation.cfa
r2cb8bf71 r44198fb9 5 5 // file "LICENCE" distributed with Cforall. 6 6 // 7 // generation.cfa -- simple test that validates barriers by printing alphabetical generations 7 // concurrent/barrier/generation.cfa -- simple test that validates barriers by printing 8 // alphabetical generations 8 9 // 9 10 // Author : Thierry Delisle -
tests/concurrency/barrier/last.cfa
r2cb8bf71 r44198fb9 5 5 // file "LICENCE" distributed with Cforall. 6 6 // 7 // last.cfa -- validates barrier's last hook functionality7 // concurrent/barrier/last.cfa -- validates barrier's last hook functionality 8 8 // 9 9 // Author : Thierry Delisle -
tests/concurrency/barrier/order.cfa
r2cb8bf71 r44198fb9 5 5 // file "LICENCE" distributed with Cforall. 6 6 // 7 // order.cfa -- validates barriers the return value of7 // concurrent/barrier/order.cfa -- validates barriers the return value of 8 8 // barrier block 9 9 // -
tests/concurrency/readyQ/barrier_sleeper.cfa
r2cb8bf71 r44198fb9 5 5 // file "LICENCE" distributed with Cforall. 6 6 // 7 // barrier_sleeper.cfa -- testing the ready-queue7 // concurrent/readyQ/barrier_sleeper.cfa -- testing the ready-queue 8 8 // 9 9 // Author : Thierry Delisle -
tests/concurrency/readyQ/leader_spin.cfa
r2cb8bf71 r44198fb9 5 5 // file "LICENCE" distributed with Cforall. 6 6 // 7 // leader_spin.cfa -- validates ready queue fairness7 // concurrent/readyQ/leader_spin.cfa -- validates ready queue fairness 8 8 // 9 9 // Author : Thierry Delisle
Note:
See TracChangeset
for help on using the changeset viewer.