This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: RFC: #pragma optimization_level


Georg Bauhaus <bauhaus@futureapps.de> writes:
> | A busy-loop function is used to effect a delay, not too precise,
> | but portably. Like
> | 
> | #define COUNT 1000
> | 
> | void f() {
> |    /*volatile*/ /*register*/ int i;
> | 
> |    for (i = 0; i < COUNT; ++i)
> |           ;

On Sat, Apr 02, 2005 at 01:48:56AM +0200, Gabriel Dos Reis wrote:
> This must be an FAQ.  The above is no way of (no matter how popular
> the urban legend makes it) implementing delay.  Adding a #pragma just
> makes teh situation worse.

Unfortunately, where there is a good argument for not using empty loops
as busy-waits, at one time it was documented GCC behavior that it would
work, so we can't really blame the users for trusting the doc.

That's not to say that it was ever a good idea, because of the lack of
control.  If you need a precisely timed busy-wait, an inline assembly
construct is the best bet.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]