From: Darryl Miles <[EMAIL PROTECTED]>
Date: Mon, 29 Oct 2007 04:53:49 +0000

> What are the issues with "speculative loads" ?

The conditional might be protecting whether the pointer is valid and
can be dereferenced at all.

int *counter;

void foo(int counter_is_valid)
{
        if (counter_is_valid)
                (*counter)++;
}

And in another module that GCC can't see when compiling foo():

extern int *counter;

int main(void)
{
        int a = 0;

        foo(0);
        counter = &a;
        foo(1);

        return 0;
}

Reply via email to