tejohnson added a comment.

In https://reviews.llvm.org/D42995#1000155, @vitalybuka wrote:

> In https://reviews.llvm.org/D42995#1000025, @tejohnson wrote:
>
> > > Empty ThinLTOIndexFile signals that we don't need this module during
> > >  linking.
> >
> > Not the only case actually. We now also pass an empty index file when we 
> > want to compile the bitcode down to object without applying any LTO 
> > optimization (there are a few cases where we decide we want to turn off LTO 
> > optimizations for some links), and this is currently relying on being able 
> > to pass /dev/null for the index file that would be broken by this change.
>
>
> I'd expect this should be done by indexing and content is already in the 
> merged object file.
>  Not sure how to reproduce this. I've build some large targets and I never 
> seen this.


This is done in bazel, not in gold.  See below.

> 
> 
>> 
>> 
>>> So we should not run ThinLTO backend even if it contains the
>>>  ThinLTO module. Backend may fail because of lack of necessary
>>>  information which should be provided by ThinLTOIndex.
>> 
>> This shouldn't happen - are you seeing cases where we fail? After 
>> loadModule() is called, EmitBackendOutput() is called which passes 
>> /*IgnoreEmptyThinLTOIndexFile*/true to  getModuleSummaryIndexForFile, which 
>> would cause it to return nullptr if the index file is empty.  Back in 
>> EmitBackendOutput(), if the combined index is null we will skip ThinLTO 
>> compilation and fall back to normal compilation.
> 
> I don't see for regular compilation, but I see for  for CFI. Backend will not 
> be able to process llvm.type.test without TypeIdMap from index and it will 
> crash in "Instruction Select"

@pcc and I already discussed this a little bit in the context of bazel. I will 
point you to that discussion separately.


https://reviews.llvm.org/D42995



_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to