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
On 03.12.2014 09:19, Adam Nemet wrote:> 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?I normally run 'clang -O3 -mllvm -disable-llvm-optzns' followed by 'opt -O3'. Tobias
----- Original Message -----> From: "Adam Nemet" <anemet at apple.com> > To: "LLVM Dev" <llvmdev at 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> > Thanks, > Adam > > > _______________________________________________ > LLVM Developers mailing list > LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu > http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev >-- Hal Finkel Assistant Computational Scientist Leadership Computing Facility Argonne National Laboratory
Great, thanks!> On Dec 3, 2014, at 12:37 AM, Tobias Grosser <tobias at grosser.es> wrote: > >> On 03.12.2014 09:19, Adam Nemet wrote: >> 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? > > I normally run 'clang -O3 -mllvm -disable-llvm-optzns' followed by 'opt -O3'. > > Tobias