[PATCH] D27560: Always run GlobalDCE at O0

Robinson, Paul via llvm-commits llvm-commits at lists.llvm.org
Wed Dec 14 09:12:58 PST 2016



> -----Original Message-----
> From: Hal Finkel [mailto:hfinkel at anl.gov]
> Sent: Tuesday, December 13, 2016 10:43 PM
> To: Robinson, Paul
> Cc: llvm-commits at lists.llvm.org; Joerg Sonnenberger
> Subject: Re: [PATCH] D27560: Always run GlobalDCE at O0
> 
> ----- Original Message -----
> > From: "Paul Robinson" <paul.robinson at sony.com>
> > To: "Hal Finkel" <hfinkel at anl.gov>
> > Cc: llvm-commits at lists.llvm.org, "Joerg Sonnenberger" <joerg at bec.de>
> > Sent: Wednesday, December 14, 2016 12:30:26 AM
> > Subject: RE: [PATCH] D27560: Always run GlobalDCE at O0
> >
> >
> >
> > > -----Original Message-----
> > > From: Hal Finkel [mailto:hfinkel at anl.gov]
> > > Sent: Tuesday, December 13, 2016 7:01 PM
> > > To: Robinson, Paul
> > > Cc: llvm-commits at lists.llvm.org; Joerg Sonnenberger
> > > Subject: Re: [PATCH] D27560: Always run GlobalDCE at O0
> > >
> > > ----- Original Message -----
> > > > From: "Paul via llvm-commits Robinson"
> > > > <llvm-commits at lists.llvm.org>
> > > > To: "Joerg Sonnenberger" <joerg at bec.de>
> > > > Cc: llvm-commits at lists.llvm.org
> > > > Sent: Tuesday, December 13, 2016 8:39:09 PM
> > > > Subject: RE: [PATCH] D27560: Always run GlobalDCE at O0
> > > >
> > > >
> > > >
> > > > > -----Original Message-----
> > > > > From: llvm-commits [mailto:llvm-commits-bounces at lists.llvm.org]
> > > > > On
> > > > > Behalf
> > > > > Of Joerg Sonnenberger via llvm-commits
> > > > > Sent: Tuesday, December 13, 2016 6:24 PM
> > > > > To: llvm-commits at lists.llvm.org
> > > > > Subject: Re: [PATCH] D27560: Always run GlobalDCE at O0
> > > > >
> > > > > On Tue, Dec 13, 2016 at 05:55:55PM -0800, Mehdi Amini via
> > > > > llvm-commits
> > > > > wrote:
> > > > > > Also, if always_inline is “required” for correctness it
> > > > > > should
> > > > > > process
> > > > > all the calligraph.
> > > > >
> > > > > always_inline is required for correctness. One example is a
> > > > > wrapper
> > > > > function around vfork or setjmp.
> > > >
> > > > Correctness of C/C++, or correctness of LLVM IR?  The difference
> > > > is
> > > > in
> > > > whether Clang sets up the always-inliner to run at O0, versus
> > > > whether
> > > > opt (and LLVM's default pass pipeline) set it up to run at O0.
> > > > Remember that Clang does not use LLVM's pipeline, it generates
> > > > its
> > > > own.
> > >
> > > What do you mean? Clang uses the pipelines built by LLVM's
> > > PassManagerBuilder. It also adds its own things (e.g. for the
> > > sanitizers).
> > > Which inliner to use is something the frontend controls via a
> > > dedicated
> > > option in the PassManagerBuilder, but this is definitely a special
> > > case.
> >
> > Clang's lib/CodeGen/BackendUtil.cpp sure looks to me like it's
> > building
> > its own pipeline, but maybe I'm just confused about how that all
> > works.
> > Wouldn't be the first time.'
> 
> It does build its own mini-pipelines for specific things, such as when it
> adds transformation passes for the sanitizers. In general, however, it is
> just using LLVM's default pipelines by calling:
> 
>   PMBuilder.populateFunctionPassManager(FPM);
>   PMBuilder.populateModulePassManager(MPM);
> 
> near the end of EmitAssemblyHelper::CreatePasses.

OK, thanks.  And the inliner selection is a super-special case.
"Never mind" and back to the original discussion, sorry for the distraction.
--paulr

> 
>  -Hal
> 
> > --paulr
> >
> > >
> > >  -Hal
> > >
> > > > --paulr
> > > >
> > > > >
> > > > > Joerg
> > > > > _______________________________________________
> > > > > llvm-commits mailing list
> > > > > llvm-commits at lists.llvm.org
> > > > > http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits
> > > > _______________________________________________
> > > > llvm-commits mailing list
> > > > llvm-commits at lists.llvm.org
> > > > http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits
> > > >
> > >
> > > --
> > > Hal Finkel
> > > Lead, Compiler Technology and Programming Languages
> > > Leadership Computing Facility
> > > Argonne National Laboratory
> >
> 
> --
> Hal Finkel
> Lead, Compiler Technology and Programming Languages
> Leadership Computing Facility
> Argonne National Laboratory


More information about the llvm-commits mailing list