Messages in this thread | | | Date | Wed, 31 Oct 2007 18:10:20 -0400 | From | Phillip Susi <> | Subject | Re: Is gcc thread-unsafe? |
| |
> pushl %ebp > movl %esp, %ebp > cmpl $0, 8(%ebp) > movl $1, %eax > cmove v, %eax ; load (maybe) > movl %eax, v ; store (always) > popl %ebp > ret
How is this even an optimization? It looks SLOWER to me. The conditional read wastes memory bandwidth sometimes, if the condition is true, and v isn't already in the cache. The unconditional write wastes memory bandwidth ALL the time, and dirties/flushes caches, in addition to not being thread safe.
This SHOULD be using a conditional write instead of a conditional read and an unconditional write.
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |