C Optimization

Memory Barrier

asm volatile(“”:::”memory”) compiler-gcc.h 파일을 보면 barrier()는 다음과 같이 구현되어 있습니다. #define barrier() asm volatile(“”: : :”memory”) 특별히 어떤 명령어를 수행하는 것은 아닙니다. 보통 리눅스 커널에서는 barrier() 매크로를 이용하는데, 이것이 위와 같이 asm volatile(“”:::”memory”)로 정의되어 있습니다....

volatile 키워드의 역할

volatile 키워드의 역할을 정의해보면 다음과 같습니다. C/C++가 정의하는 volatile 키워드는 이 값이 언제든지 변할 수 있기에 컴파일러는 최적화하지 말 것을 지시한다. 최적화하지 말 것을 지시한다 ? 이 말의 의미가 중요한 것 같습니다.코드를 컴파일할 때 옵션으로...