ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/cvsroot/libecb/ecb.pod
(Generate patch)

Comparing cvsroot/libecb/ecb.pod (file contents):
Revision 1.64 by root, Wed Feb 18 20:48:59 2015 UTC vs.
Revision 1.66 by sf-exg, Fri Feb 20 11:28:08 2015 UTC

242Similar to C<ecb_unused>, but marks a function, variable or type as 242Similar to C<ecb_unused>, but marks a function, variable or type as
243deprecated. This makes some compilers warn when the type is used. 243deprecated. This makes some compilers warn when the type is used.
244 244
245=item ecb_deprecated_message (message) 245=item ecb_deprecated_message (message)
246 246
247Same as C<ecb_deprecated>, but if possible, supply a diagnostic that is 247Same as C<ecb_deprecated>, but if possible, supplies a diagnostic that is
248used instead of a generic depreciation message when the object is being 248used instead of a generic depreciation message when the object is being
249used. 249used.
250 250
251=item ecb_inline 251=item ecb_inline
252 252
262 return - (a * b); 262 return - (a * b);
263 } 263 }
264 264
265=item ecb_noinline 265=item ecb_noinline
266 266
267Prevent a function from being inlined - it might be optimised away, but 267Prevents a function from being inlined - it might be optimised away, but
268not inlined into other functions. This is useful if you know your function 268not inlined into other functions. This is useful if you know your function
269is rarely called and large enough for inlining not to be helpful. 269is rarely called and large enough for inlining not to be helpful.
270 270
271=item ecb_noreturn 271=item ecb_noreturn
272 272
489 real_reserve_method (size); /* presumably noinline */ 489 real_reserve_method (size); /* presumably noinline */
490 } 490 }
491 491
492=item ecb_assume (cond) 492=item ecb_assume (cond)
493 493
494Try to tell the compiler that some condition is true, even if it's not 494Tries to tell the compiler that some condition is true, even if it's not
495obvious. 495obvious. This is not a function, but a statement: it cannot be used in
496another expression.
496 497
497This can be used to teach the compiler about invariants or other 498This can be used to teach the compiler about invariants or other
498conditions that might improve code generation, but which are impossible to 499conditions that might improve code generation, but which are impossible to
499deduce form the code itself. 500deduce form the code itself.
500 501
521 522
522=item ecb_unreachable () 523=item ecb_unreachable ()
523 524
524This function does nothing itself, except tell the compiler that it will 525This function does nothing itself, except tell the compiler that it will
525never be executed. Apart from suppressing a warning in some cases, this 526never be executed. Apart from suppressing a warning in some cases, this
526function can be used to implement C<ecb_assume> or similar functions. 527function can be used to implement C<ecb_assume> or similar functionality.
527 528
528=item ecb_prefetch (addr, rw, locality) 529=item ecb_prefetch (addr, rw, locality)
529 530
530Tells the compiler to try to prefetch memory at the given C<addr>ess 531Tells the compiler to try to prefetch memory at the given C<addr>ess
531for either reading (C<rw> = 0) or writing (C<rw> = 1). A C<locality> of 532for either reading (C<rw> = 0) or writing (C<rw> = 1). A C<locality> of
533the data will likely be accessed very often, and values in between mean 534the data will likely be accessed very often, and values in between mean
534something... in between. The memory pointed to by the address does not 535something... in between. The memory pointed to by the address does not
535need to be accessible (it could be a null pointer for example), but C<rw> 536need to be accessible (it could be a null pointer for example), but C<rw>
536and C<locality> must be compile-time constants. 537and C<locality> must be compile-time constants.
537 538
539This is a statement, not a function: you cannot use it as part of an
540expression.
541
538An obvious way to use this is to prefetch some data far away, in a big 542An obvious way to use this is to prefetch some data far away, in a big
539array you loop over. This prefetches memory some 128 array elements later, 543array you loop over. This prefetches memory some 128 array elements later,
540in the hope that it will be ready when the CPU arrives at that location. 544in the hope that it will be ready when the CPU arrives at that location.
541 545
542 int sum = 0; 546 int sum = 0;
594 598
595=item bool ecb_is_pot32 (uint32_t x) 599=item bool ecb_is_pot32 (uint32_t x)
596 600
597=item bool ecb_is_pot64 (uint32_t x) 601=item bool ecb_is_pot64 (uint32_t x)
598 602
599Return true iff C<x> is a power of two or C<x == 0>. 603Returns true iff C<x> is a power of two or C<x == 0>.
600 604
601For smaller types then C<uint32_t> you can safely use C<ecb_is_pot32>. 605For smaller types than C<uint32_t> you can safely use C<ecb_is_pot32>.
602 606
603=item int ecb_ld32 (uint32_t x) 607=item int ecb_ld32 (uint32_t x)
604 608
605=item int ecb_ld64 (uint64_t x) 609=item int ecb_ld64 (uint64_t x)
606 610

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines