Changes in / [aeb31b1:a78c3ff]
- Files:
-
- 10 added
- 15 deleted
- 14 edited
Legend:
- Unmodified
- Added
- Removed
-
libcfa/src/concurrency/io.cfa
raeb31b1 ra78c3ff 160 160 static inline void process(struct io_uring_cqe & cqe ) { 161 161 struct io_future_t * future = (struct io_future_t *)(uintptr_t)cqe.user_data; 162 __cfadbg_print_safe( io, "Kernel I/O : Syscall completed : cqe %p, result %d for %p\n", &cqe, cqe.res, future);162 __cfadbg_print_safe( io, "Kernel I/O : Syscall completed : cqe %p, result %d for %p\n", future, cqe.res, data->thrd ); 163 163 164 164 fulfil( *future, cqe.res ); … … 298 298 __u32 mask = *ring.submit_q.mask; 299 299 300 __u32 off = thread_rand(); 300 disable_interrupts(); 301 __u32 off = __tls_rand(); 302 enable_interrupts( __cfaabi_dbg_ctx ); 301 303 302 304 // Loop around looking for an available spot … … 342 344 __u32 ready_mask = ring.submit_q.ready_cnt - 1; 343 345 344 __u32 off = thread_rand(); 346 disable_interrupts(); 347 __u32 off = __tls_rand(); 348 enable_interrupts( __cfaabi_dbg_ctx ); 345 349 346 350 __u32 picked; -
libcfa/src/concurrency/io/call.cfa.in
raeb31b1 ra78c3ff 84 84 85 85 /* paranoid */ verifyf( cltr->io.ctxs, "default io contexts for cluster %p are missing\\n", cltr); 86 return &cltr->io.ctxs[ thread_rand() % cltr->io.cnt ];86 return &cltr->io.ctxs[ __tls_rand() % cltr->io.cnt ]; 87 87 } 88 88 #endif -
libcfa/src/concurrency/kernel.cfa
raeb31b1 ra78c3ff 619 619 lock( kernel_abort_lock __cfaabi_dbg_ctx2 ); 620 620 621 // disable interrupts, it no longer makes sense to try to interrupt this processor622 disable_interrupts();623 624 621 // first task to abort ? 625 622 if ( kernel_abort_called ) { // not first task to abort ? -
libcfa/src/concurrency/kernel/fwd.hfa
raeb31b1 ra78c3ff 132 132 } 133 133 134 extern uint64_t thread_rand();135 136 134 //----------------------------------------------------------------------- 137 135 // Statics call at the end of each thread to register statistics -
libcfa/src/concurrency/thread.cfa
raeb31b1 ra78c3ff 162 162 } 163 163 164 uint64_t thread_rand() {165 disable_interrupts();166 uint64_t ret = __tls_rand();167 enable_interrupts( __cfaabi_dbg_ctx );168 return ret;169 }170 171 164 // Local Variables: // 172 165 // mode: c // -
libcfa/src/interpose.cfa
raeb31b1 ra78c3ff 220 220 } 221 221 222 static volatile int __abort_stage = 0;223 224 222 // Cannot forward va_list. 225 223 void __abort( bool signalAbort, const char fmt[], va_list args ) { 226 int stage = __atomic_add_fetch( &__abort_stage, 1, __ATOMIC_SEQ_CST ); 227 228 // First stage: stop the cforall kernel and print 229 if(stage == 1) { 230 // increment stage 231 stage = __atomic_add_fetch( &__abort_stage, 1, __ATOMIC_SEQ_CST ); 232 233 // must be done here to lock down kernel 234 void * kernel_data = kernel_abort(); 235 int len; 236 237 signal( SIGABRT, SIG_DFL ); // prevent final "real" abort from recursing to handler 238 239 len = snprintf( abort_text, abort_text_size, "Cforall Runtime error (UNIX pid:%ld) ", (long int)getpid() ); // use UNIX pid (versus getPid) 240 __cfaabi_bits_write( STDERR_FILENO, abort_text, len ); 241 242 assert( fmt ); 243 len = vsnprintf( abort_text, abort_text_size, fmt, args ); 244 __cfaabi_bits_write( STDERR_FILENO, abort_text, len ); 245 246 // add optional newline if missing at the end of the format text 247 if ( fmt[strlen( fmt ) - 1] != '\n' ) { 248 __cfaabi_bits_write( STDERR_FILENO, "\n", 1 ); 249 } // if 250 kernel_abort_msg( kernel_data, abort_text, abort_text_size ); 251 } 252 253 // Second stage: print the backtrace 254 if(stage == 2) { 255 // increment stage 256 stage = __atomic_add_fetch( &__abort_stage, 1, __ATOMIC_SEQ_CST ); 257 258 // print stack trace in handler 259 __cfaabi_backtrace( signalAbort ? 4 : 2 ); 260 } 261 262 do { 263 // Finally call abort 264 __cabi_libc.abort(); 265 266 // Loop so that we never return 267 } while(true); 224 void * kernel_data = kernel_abort(); // must be done here to lock down kernel 225 int len; 226 227 signal( SIGABRT, SIG_DFL ); // prevent final "real" abort from recursing to handler 228 229 len = snprintf( abort_text, abort_text_size, "Cforall Runtime error (UNIX pid:%ld) ", (long int)getpid() ); // use UNIX pid (versus getPid) 230 __cfaabi_bits_write( STDERR_FILENO, abort_text, len ); 231 232 assert( fmt ); 233 len = vsnprintf( abort_text, abort_text_size, fmt, args ); 234 __cfaabi_bits_write( STDERR_FILENO, abort_text, len ); 235 236 if ( fmt[strlen( fmt ) - 1] != '\n' ) { // add optional newline if missing at the end of the format text 237 __cfaabi_bits_write( STDERR_FILENO, "\n", 1 ); 238 } // if 239 kernel_abort_msg( kernel_data, abort_text, abort_text_size ); 240 241 __cfaabi_backtrace( signalAbort ? 4 : 2 ); 242 243 __cabi_libc.abort(); // print stack trace in handler 268 244 } 269 245 -
src/ResolvExpr/AlternativeFinder.cc
raeb31b1 ra78c3ff 131 131 132 132 void printAlts( const AltList &list, std::ostream &os, unsigned int indentAmt ) { 133 std::vector<std::string> sorted; 134 sorted.reserve(list.size()); 135 for(const auto & c : list) { 136 std::stringstream ss; 137 c.print( ss, indentAmt ); 138 sorted.push_back(ss.str()); 139 } 140 141 std::sort(sorted.begin(), sorted.end()); 142 143 for ( const auto & s : sorted ) { 144 os << s << std::endl; 133 Indenter indent = { indentAmt }; 134 135 std::vector<int> idx; 136 idx.reserve(list.size()); 137 for(int i = 0; i < list.size(); i++) { idx.push_back(i); } 138 139 std::sort(idx.begin(), idx.end(), [&list](int lhs_idx, int rhs_idx) -> bool { 140 const auto & lhs = list.at(lhs_idx); 141 const auto & rhs = list.at(rhs_idx); 142 if(lhs.expr->location.startsBefore(rhs.expr->location)) return true; 143 if(rhs.expr->location.startsBefore(lhs.expr->location)) return false; 144 145 if(lhs.env.size() < rhs.env.size()) return true; 146 if(lhs.env.size() > rhs.env.size()) return false; 147 148 if(lhs.openVars.size() < rhs.openVars.size()) return true; 149 if(lhs.openVars.size() > rhs.openVars.size()) return false; 150 151 if(lhs.need.size() < rhs.need.size()) return true; 152 if(lhs.need.size() > rhs.need.size()) return false; 153 154 return false; 155 }); 156 157 for ( AltList::const_iterator i = list.begin(); i != list.end(); ++i ) { 158 i->print( os, indent ); 159 os << std::endl; 145 160 } 146 161 } -
src/ResolvExpr/Candidate.cpp
raeb31b1 ra78c3ff 41 41 42 42 void print( std::ostream & os, const CandidateList & cands, Indenter indent ) { 43 std::vector<std::string> sorted; 44 sorted.reserve(cands.size()); 45 for(const auto & c : cands) { 46 std::stringstream ss; 47 print( ss, *c, indent ); 48 sorted.push_back(ss.str()); 49 } 50 51 std::sort(sorted.begin(), sorted.end()); 52 53 for ( const auto & s : sorted ) { 54 os << s << std::endl; 43 for ( const CandidateRef & cand : cands ) { 44 print( os, *cand, indent ); 45 os << std::endl; 55 46 } 56 47 } -
tests/.expect/castError.oast.txt
raeb31b1 ra78c3ff 3 3 Name: f 4 4 ... to: 5 char6 with resolved type:7 5 char Alternatives are: 8 6 Cost ( 1, 0, 0, 0, 0, 0, 0 ): Explicit Cast of: 9 Variable Expression: f: double 10 with resolved type: 11 double 7 Variable Expression: f: function 8 accepting unspecified arguments 9 ... returning nothing 10 12 11 ... to: 13 char14 with resolved type:15 12 char 16 13 (types: … … 20 17 21 18 Cost ( 1, 0, 0, 0, 0, 0, 0 ): Explicit Cast of: 22 Variable Expression: f: function 23 accepting unspecified arguments 24 ... returning nothing 25 26 with resolved type: 27 pointer to function 28 accepting unspecified arguments 29 ... returning nothing 30 19 Variable Expression: f: double 31 20 ... to: 32 char33 with resolved type:34 21 char 35 22 (types: … … 40 27 Cost ( 1, 0, 0, 0, 0, 0, 0 ): Explicit Cast of: 41 28 Variable Expression: f: signed int 42 with resolved type:43 signed int44 29 ... to: 45 char46 with resolved type:47 30 char 48 31 (types: … … 56 39 Comma Expression: 57 40 constant expression (3 3: signed int) 58 with resolved type:59 signed int60 41 Name: v 61 ... to: nothing 62 with resolved type: 63 void Alternatives are: 42 ... to: nothing Alternatives are: 64 43 Cost ( 0, 0, 2, 0, 0, 0, 0 ): Generated Cast of: 65 44 Comma Expression: 66 45 constant expression (3 3: signed int) 67 with resolved type: 68 signed int 69 Variable Expression: v: signed short int 70 with resolved type: 71 signed short int 72 with resolved type: 73 signed short int 46 Variable Expression: v: unsigned char 74 47 ... to: nothing 75 with resolved type:76 void77 48 (types: 78 49 void … … 83 54 Comma Expression: 84 55 constant expression (3 3: signed int) 85 with resolved type: 86 signed int 87 Variable Expression: v: unsigned char 88 with resolved type: 89 unsigned char 90 with resolved type: 91 unsigned char 56 Variable Expression: v: signed short int 92 57 ... to: nothing 93 with resolved type:94 void95 58 (types: 96 59 void … … 106 69 char 107 70 108 with resolved type:109 instance of struct S with body 1110 ... with parameters111 char112 -
tests/errors/.expect/completeType.nast.x64.txt
raeb31b1 ra78c3ff 9 9 ... with resolved type: 10 10 void Alternatives are: 11 Cost ( 0, 1, 2, 0, 1, -1, 0 ): Generated Cast of: 12 Application of 13 Variable Expression: *?: forall 14 DT: data type 15 function 16 ... with parameters 17 pointer to instance of type DT (not function type) 18 ... returning 19 reference to instance of type DT (not function type) 20 21 ... with resolved type: 22 pointer to forall 23 [unbound]:data type 24 function 25 ... with parameters 26 pointer to instance of type [unbound] (not function type) 27 ... returning 28 reference to instance of type [unbound] (not function type) 29 30 ... to arguments 31 Variable Expression: x: pointer to instance of struct B with body 32 ... with resolved type: 33 pointer to instance of struct B with body 34 35 ... with resolved type: 36 reference to instance of struct B with body 37 ... to: nothing 38 ... with resolved type: 39 void 40 (types: 41 void 42 ) 43 Environment:([unbound]) -> instance of struct B with body (no widening) 44 45 11 46 Cost ( 0, 1, 2, 0, 1, -1, 0 ): Generated Cast of: 12 47 Application of … … 42 77 ) 43 78 Environment:([unbound]) -> instance of struct A without body (no widening) 44 45 46 Cost ( 0, 1, 2, 0, 1, -1, 0 ): Generated Cast of:47 Application of48 Variable Expression: *?: forall49 DT: data type50 function51 ... with parameters52 pointer to instance of type DT (not function type)53 ... returning54 reference to instance of type DT (not function type)55 56 ... with resolved type:57 pointer to forall58 [unbound]:data type59 function60 ... with parameters61 pointer to instance of type [unbound] (not function type)62 ... returning63 reference to instance of type [unbound] (not function type)64 65 ... to arguments66 Variable Expression: x: pointer to instance of struct B with body67 ... with resolved type:68 pointer to instance of struct B with body69 70 ... with resolved type:71 reference to instance of struct B with body72 ... to: nothing73 ... with resolved type:74 void75 (types:76 void77 )78 Environment:([unbound]) -> instance of struct B with body (no widening)79 79 80 80 -
tests/meta/.expect/archVast.nast.arm64.txt
raeb31b1 ra78c3ff 3 3 Name: FA64 4 4 ... to: 5 char6 ... with resolved type:7 5 char Alternatives are: 8 6 Cost ( 1, 0, 0, 0, 0, 0, 0 ): Explicit Cast of: 9 7 Variable Expression: FA64: signed int 10 ... with resolved type:11 signed int12 8 ... to: 13 char14 ... with resolved type:15 9 char 16 10 (types: … … 24 18 ... returning nothing 25 19 26 ... with resolved type:27 pointer to function28 accepting unspecified arguments29 ... returning nothing30 31 20 ... to: 32 char33 ... with resolved type:34 21 char 35 22 (types: … … 40 27 Cost ( 1, 0, 0, 0, 0, 0, 0 ): Explicit Cast of: 41 28 Variable Expression: FA64: double 42 ... with resolved type:43 double44 29 ... to: 45 char46 ... with resolved type:47 30 char 48 31 (types: -
tests/meta/.expect/archVast.nast.x64.txt
raeb31b1 ra78c3ff 7 7 char Alternatives are: 8 8 Cost ( 1, 0, 0, 0, 0, 0, 0 ): Explicit Cast of: 9 Variable Expression: FX64: double9 Variable Expression: FX64: signed int 10 10 ... with resolved type: 11 double11 signed int 12 12 ... to: 13 13 char … … 39 39 40 40 Cost ( 1, 0, 0, 0, 0, 0, 0 ): Explicit Cast of: 41 Variable Expression: FX64: signed int41 Variable Expression: FX64: double 42 42 ... with resolved type: 43 signed int43 double 44 44 ... to: 45 45 char -
tests/meta/.expect/archVast.oast.arm64.txt
raeb31b1 ra78c3ff 3 3 Name: FA64 4 4 ... to: 5 char6 with resolved type:7 5 char Alternatives are: 8 6 Cost ( 1, 0, 0, 0, 0, 0, 0 ): Explicit Cast of: … … 11 9 ... returning nothing 12 10 13 with resolved type:14 pointer to function15 accepting unspecified arguments16 ... returning nothing17 18 11 ... to: 19 char20 with resolved type:21 12 char 22 13 (types: … … 27 18 Cost ( 1, 0, 0, 0, 0, 0, 0 ): Explicit Cast of: 28 19 Variable Expression: FA64: double 29 with resolved type:30 double31 20 ... to: 32 char33 with resolved type:34 21 char 35 22 (types: … … 40 27 Cost ( 1, 0, 0, 0, 0, 0, 0 ): Explicit Cast of: 41 28 Variable Expression: FA64: signed int 42 with resolved type:43 signed int44 29 ... to: 45 char46 with resolved type:47 30 char 48 31 (types: -
tests/meta/.expect/archVast.oast.x64.txt
raeb31b1 ra78c3ff 7 7 char Alternatives are: 8 8 Cost ( 1, 0, 0, 0, 0, 0, 0 ): Explicit Cast of: 9 Variable Expression: FX64: double 9 Variable Expression: FX64: function 10 accepting unspecified arguments 11 ... returning nothing 12 10 13 with resolved type: 11 double 14 pointer to function 15 accepting unspecified arguments 16 ... returning nothing 17 12 18 ... to: 13 19 char … … 20 26 21 27 Cost ( 1, 0, 0, 0, 0, 0, 0 ): Explicit Cast of: 22 Variable Expression: FX64: function 23 accepting unspecified arguments 24 ... returning nothing 25 28 Variable Expression: FX64: double 26 29 with resolved type: 27 pointer to function 28 accepting unspecified arguments 29 ... returning nothing 30 30 double 31 31 ... to: 32 32 char
Note:
See TracChangeset
for help on using the changeset viewer.