[llvm] r258362 - Simplify the logic. NFC.

Rafael Espíndola via llvm-commits llvm-commits at lists.llvm.org
Mon Feb 1 10:03:56 PST 2016


Thanks a lot for catching it. I will double check and add your testcase.

Cheers,
Rafael


On 29 January 2016 at 17:00, Mehdi Amini <mehdi.amini at apple.com> wrote:
> Hi Rafael,
>
> You mentioned “NFC" in you commit message but I have a test case where it is actually not. Before you patch the definition of foo in the destination module was (incorrectly) changed to external_weak.
>
>
>
>
> llvm-as  -function-summary to.ll  ;
> llvm-as  -function-summary from.ll ;
> llvm-lto -thinlto -o summary from.bc to.bc  ;
> opt -function-import to.bc -summary-file=summary.thinlto.bc -S
>
>
> While this actually fixes a bug I had, you may want to double check the logic here to make sure it won’t break other cases.
>
>> Mehdi
>
>
>
>
>
>
>> On Jan 20, 2016, at 2:38 PM, Rafael Espindola via llvm-commits <llvm-commits at lists.llvm.org> wrote:
>>
>> Author: rafael
>> Date: Wed Jan 20 16:38:23 2016
>> New Revision: 258362
>>
>> URL: http://llvm.org/viewvc/llvm-project?rev=258362&view=rev
>> Log:
>> Simplify the logic. NFC.
>>
>> Found while reviewing the change for PR26152.
>>
>> Modified:
>>    llvm/trunk/lib/Linker/IRMover.cpp
>>
>> Modified: llvm/trunk/lib/Linker/IRMover.cpp
>> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Linker/IRMover.cpp?rev=258362&r1=258361&r2=258362&view=diff
>> ==============================================================================
>> --- llvm/trunk/lib/Linker/IRMover.cpp (original)
>> +++ llvm/trunk/lib/Linker/IRMover.cpp Wed Jan 20 16:38:23 2016
>> @@ -1005,23 +1005,6 @@ Constant *IRLinker::linkAppendingVarProt
>>   return Ret;
>> }
>>
>> -static bool useExistingDest(GlobalValue &SGV, GlobalValue *DGV,
>> -                            bool ShouldLink) {
>> -  if (!DGV)
>> -    return false;
>> -
>> -  if (SGV.isDeclaration())
>> -    return true;
>> -
>> -  if (DGV->isDeclarationForLinker() && !SGV.isDeclarationForLinker())
>> -    return false;
>> -
>> -  if (ShouldLink)
>> -    return false;
>> -
>> -  return true;
>> -}
>> -
>> bool IRLinker::shouldLink(GlobalValue *DGV, GlobalValue &SGV) {
>>   // Already imported all the values. Just map to the Dest value
>>   // in case it is referenced in the metadata.
>> @@ -1037,7 +1020,7 @@ bool IRLinker::shouldLink(GlobalValue *D
>>   if (SGV.hasLocalLinkage())
>>     return true;
>>
>> -  if (DGV && !DGV->isDeclaration())
>> +  if (DGV && !DGV->isDeclarationForLinker())
>>     return false;
>>
>>   if (SGV.hasAvailableExternallyLinkage())
>> @@ -1077,7 +1060,7 @@ Constant *IRLinker::linkGlobalValueProto
>>                                  cast<GlobalVariable>(SGV));
>>
>>   GlobalValue *NewGV;
>> -  if (useExistingDest(*SGV, DGV, ShouldLink)) {
>> +  if (DGV && !ShouldLink) {
>>     NewGV = DGV;
>>   } else {
>>     // If we are done linking global value bodies (i.e. we are performing
>>
>>
>> _______________________________________________
>> llvm-commits mailing list
>> llvm-commits at lists.llvm.org
>> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits
>
>


More information about the llvm-commits mailing list