[llvm-branch-commits] Deleted Mips symbols in the 3.5 branch

Daniel Sanders Daniel.Sanders at imgtec.com
Tue Dec 2 08:46:30 PST 2014


> From: Tom Stellard [thomas.stellard at amd.com]
> Sent: 02 December 2014 16:27
> To: Daniel Sanders; Stellard, Thomas; llvm-branch-commits at cs.uiuc.edu
> Subject: Re: Deleted Mips symbols in the 3.5 branch
> 
> On 12/02/2014 11:25 AM, Daniel Sanders wrote:
> > I've re-added these functions in my working copy but it's had no effect on the symbol table for libLLVM-3.5.so.
> > It looks like the compiler (or perhaps the linker?) is deleting them because they are unused private members of
> > the MipsTargetLowering and MipsCC classes.
> >
> 
> I think they need to be public members to show up in the symbol table.
> Were they public before?
> 
> -Tom

On double-checking, I did have a small mistake here but fixing it hasn't helped.

The member functions of MipsTargetLowering were private before the patch series. MipsCC was a protected class inside MipsTargetLowering. The member functions of MipsCC were public.

After matching this, the symbol table is still unchanged between the a clean checkout of the release_35 branch and my current working copy that tries to bring these symbols back.

>> -----Original Message-----
>> From: Stellard, Thomas [mailto:Tom.Stellard at amd.com]
>> Sent: 02 December 2014 00:25
>> To: Daniel Sanders; llvm-branch-commits at cs.uiuc.edu
>> Subject: RE: Deleted Mips symbols in the 3.5 branch
>>
>> I don't think it maters whether the function bodies are empty, or if they have
>> llvm_unreachable().  Though, I think it would be easier to use
>> llvm_unreachable(), since you wouldn't have to worry about the return type.
>>
>>
>>
>> -Tom
>> ________________________________________
>> From: Daniel Sanders [Daniel.Sanders at imgtec.com]
>> Sent: Monday, December 01, 2014 6:39 PM
>> To: Stellard, Thomas; llvm-branch-commits at cs.uiuc.edu
>> Subject: RE: Deleted Mips symbols in the 3.5 branch
>>
>> Hi,
>>
>> Thanks for the list. Most of these seem to be related to the MipsCC class
>> which was removed during the refactoring portions of the patch series. IIRC,
>> MipsCC was only used for a local in a few functions such as
>> LowerFormalArguments() so it probably shouldn't have been public in the
>> first place, but I'll re-add them in the morning anyway. Just to double check,
>> when you say 'add them back as no-ops' do you mean with empty function
>> bodies, or with llvm_unreachable() inside them?
>>
>> ________________________________________
>> From: Tom Stellard [thomas.stellard at amd.com]
>> Sent: 01 December 2014 16:33
>> To: Daniel Sanders; llvm-branch-commits at cs.uiuc.edu
>> Subject: Deleted Mips symbols in the 3.5 branch
>>
>> Hi Daniel,
>>
>> r223008 to r223037 have deleted some public symbols, which will need to be
>> added back to maintain ABI compatibility. I'm not sure, but I think some of
>> these may be generated by TableGen.
>>
>> If these functions are no longer used, you can add them back as no-ops if
>> that is easier.  Sorry I overlooked this during my review.  Here are the
>> deleted symbols:
>>
>> _ZN4llvm18MipsTargetLowering6MipsCC12allocateRegsERNS0_12ByValArgIn
>> foEjj
>> _ZNK4llvm18MipsTargetLowering6MipsCC10fixedArgFnEv
>> _ZN4llvm18MipsTargetLowering6MipsCC14handleByValArgEjNS_3MVTES2_
>> NS_11CCValAssign7LocInfoENS_3ISD10ArgFlagsTyE
>> _ZNK4llvm18MipsTargetLowering6MipsCC10shadowRegsEv
>>
>> _ZNK4llvm18MipsTargetLowering12passByValArgENS_7SDValueENS_5SDLoc
>> ERSt5dequeISt4pairIjS1_ESaIS5_EERNS_15SmallVectorImplIS1_EES1_PNS_16
>> MachineFrameInfoERNS_12SelectionDAGES1_RKNS0_6MipsCCERKNS0_12By
>> ValArgInfoERKNS_3ISD10ArgFlagsTyEb
>> _ZNK4llvm18MipsTargetLowering6MipsCC13analyzeReturnERKNS_15SmallVe
>> ctorImplINS_3ISD9OutputArgEEEbPKNS_4TypeE
>> _ZNK4llvm18MipsTargetLowering6MipsCC8varArgFnEv
>>
>> _ZNK4llvm18MipsTargetLowering15LowerCallResultENS_7SDValueES1_NS_1
>> 1CallingConv2IDEbRKNS_15SmallVectorImplINS_3ISD8InputArgEEENS_5SDLo
>> cERNS_12SelectionDAGERNS4_IS1_EEPKNS_6SDNodeEPKNS_4TypeE
>>
>> _ZN4llvm18MipsTargetLowering6MipsCC19analyzeCallOperandsERKNS_15S
>> mallVectorImplINS_3ISD9OutputArgEEEbbPKNS_6SDNodeERSt6vectorINS_1
>> 4TargetLowering12ArgListEntryESaISD_EE
>>
>> _ZN4llvm18MipsTargetLowering6MipsCC22analyzeFormalArgumentsERKNS_
>> 15SmallVectorImplINS_3ISD8InputArgEEEbNS_14ilist_iteratorIKNS_8Argume
>> ntEEE
>>
>> _ZNK4llvm20MipsSETargetLowering33isEligibleForTailCallOptimizationERKNS_
>> 18MipsTargetLowering6MipsCCEjRKNS_16MipsFunctionInfoE
>> _ZN4llvm18MipsTargetLowering6MipsCCC2ENS_11CallingConv2IDEbbRNS_7
>> CCStateENS1_22SpecialCallingConvTypeE
>> _ZNK4llvm18MipsTargetLowering6MipsCC13numIntArgRegsEv
>>
>> _ZNK4llvm18MipsTargetLowering15writeVarArgRegsERSt6vectorINS_7SDVal
>> ueESaIS2_EERKNS0_6MipsCCES2_NS_5SDLocERNS_12SelectionDAGE
>> _ZNK4llvm18MipsTargetLowering21getSpecialCallingConvENS_7SDValueE
>>
>> _ZNK4llvm18MipsTargetLowering13copyByValRegsENS_7SDValueENS_5SDLo
>> cERSt6vectorIS1_SaIS1_EERNS_12SelectionDAGERKNS_3ISD10ArgFlagsTyERN
>> S_15SmallVectorImplIS1_EEPKNS_8ArgumentERKNS0_6MipsCCERKNS0_12B
>> yValArgInfoE
>> _ZNK4llvm18MipsTargetLowering6MipsCC17analyzeCallResultERKNS_15Small
>> VectorImplINS_3ISD8InputArgEEEbPKNS_6SDNodeEPKNS_4TypeE
>>
>> _ZNK4llvm20Mips16TargetLowering33isEligibleForTailCallOptimizationERKNS_
>> 18MipsTargetLowering6MipsCCEjRKNS_16MipsFunctionInfoE
>> _ZN4llvm18MipsTargetLowering6MipsCCC1ENS_11CallingConv2IDEbbRNS_7
>> CCStateENS1_22SpecialCallingConvTypeE
>>
>> -Tom





More information about the llvm-branch-commits mailing list