[llvm-dev] How to prevent optimizing away a call + its arguments

Joerg Sonnenberger via llvm-dev llvm-dev at lists.llvm.org
Thu Jun 22 07:35:19 PDT 2017


On Wed, Jun 21, 2017 at 05:25:04PM -0700, Mehdi AMINI via llvm-dev wrote:
> Hi Kuba,
> 
> Try:
> 
> __attribute__(optnone)
> 
> See
> https://clang.llvm.org/docs/AttributeReference.html#optnone-clang-optnone

Actually, it should be enough to use:

__attribute__((noinline))
void please_do_not_optimize_me_away(int arg1, void *arg2) {
  asm volatile("":::"memory");
}

Creating a real barrier is important.

Joerg


More information about the llvm-dev mailing list