> On Jul 13, 2015, at 5:49 PM, Richard Smith <rich...@metafoo.co.uk> wrote:
> 
> On Mon, Jul 13, 2015 at 5:44 PM, Adrian Prantl <apra...@apple.com> wrote:
> 
> > On Jul 13, 2015, at 1:48 PM, Richard Smith <rich...@metafoo.co.uk> wrote:
> >
> > On Mon, Jul 13, 2015 at 9:37 AM, Adrian Prantl <apra...@apple.com> wrote:
> > I actually removed the initialization from ObjectFilePCHContainerOperations 
> > in r241653. Is this still reproducing for you?
> >
> > Yes. To reproduce, delete your module cache and build anything that will 
> > trigger an implicit module build with -ftime-report.
> 
> I could reproduce this now!
> 
> Since we’re explicitly initializing CodeGenOpts, the other options are safe 
> from being parsed twice.
> However, -time-passes is special:
> 
> In BackendUtil, we are doing this:
> 
> >   if (llvm::TimePassesIsEnabled)
> >     BackendArgs.push_back("-time-passes”);
> >   BackendArgs.push_back(nullptr);
> >   llvm::cl::ParseCommandLineOptions(BackendArgs.size() - 1,
> >                                     BackendArgs.data());
> 
> but looking at the definition of the -time-passes options, it looks to me as 
> if this is actually a noop because all it would do is set the flag that was 
> already set. (TimePassesIsEnabled is being initialized in CodeGenAction).
> 
> > /===----------------------------------------------------------------------===//
> > // TimingInfo implementation
> >
> > bool llvm::TimePassesIsEnabled = false;
> > static cl::opt<bool,true>
> > EnableTiming("time-passes", cl::location(TimePassesIsEnabled),
> >             cl::desc("Time each pass, printing elapsed time for each on 
> > exit"));
> 
> So my suggestion is to just remove the handling of TimePassesIsEnabled from 
> BackendUtil. I’m quite unfamiliar with the command line handling so I may be 
> missing something. Do you agree with either of the last two sentences?
> 
> Yes, I'd dug into this and reached the same conclusion myself. I'm not sure 
> whether LLVM expects us to be poking at its global directly, but it doesn't 
> make sense to both do that *and* specify the flag.

Alright, committed in r242099. Thanks!

> 
> I also looked into reorganizing BackendUtil to cache the TargetMachine 
> instead, but this turned out to be much more difficult than expected because 
> clang modules actually want different codegen options than the main 
> compilation unit, so I’d like to avoid this for now.
> 
> -- adrian


_______________________________________________
cfe-commits mailing list
cfe-commits@cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits

Reply via email to