Reproducing clang -O3 with opt

This is probably a trivial question but the way I used to do this turns out to be flawed.

I used run clang with -O0 -emit-llvm and then use the resulting IR with opt -O3. The problem is that clang at -O0 does not generate TBAA metadata so the passes run by opt behave differently.

What’s the recommended way of doing this?

Thanks,
Adam

I normally run 'clang -O3 -mllvm -disable-llvm-optzns' followed by 'opt -O3'.

Tobias

From: "Adam Nemet" <anemet@apple.com>
To: "LLVM Dev" <llvmdev@cs.uiuc.edu>
Sent: Wednesday, December 3, 2014 2:19:04 AM
Subject: [LLVMdev] Reproducing clang -O3 with opt

This is probably a trivial question but the way I used to do this
turns out to be flawed.

I used run clang with -O0 -emit-llvm and then use the resulting IR
with opt -O3. The problem is that clang at -O0 does not generate
TBAA metadata so the passes run by opt behave differently.

What’s the recommended way of doing this?

Run clang -O3 -mllvm -disable-llvm-optzns -emit-llvm

-Hal

Great, thanks!