mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-02-04 07:32:13 +00:00
Don't return std::vector by value, but pass it in by reference to be filled.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53123 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
10fff6078a
commit
c04f46567c
@ -1152,16 +1152,17 @@ public:
|
||||
|
||||
/// getGlobalVariablesUsing - Return all of the GlobalVariables that use the
|
||||
/// named GlobalVariable.
|
||||
std::vector<GlobalVariable*>
|
||||
getGlobalVariablesUsing(Module &M, const std::string &RootName);
|
||||
void getGlobalVariablesUsing(Module &M, const std::string &RootName,
|
||||
std::vector<GlobalVariable*> &Result);
|
||||
|
||||
/// getAnchoredDescriptors - Return a vector of anchored debug descriptors.
|
||||
///
|
||||
template <class T>std::vector<T *> getAnchoredDescriptors(Module &M) {
|
||||
template <class T>
|
||||
void getAnchoredDescriptors(Module &M, std::vector<T*> &AnchoredDescs) {
|
||||
T Desc;
|
||||
std::vector<GlobalVariable *> Globals =
|
||||
getGlobalVariablesUsing(M, Desc.getAnchorString());
|
||||
std::vector<T *> AnchoredDescs;
|
||||
std::vector<GlobalVariable *> Globals;
|
||||
getGlobalVariablesUsing(M, Desc.getAnchorString(), Globals);
|
||||
|
||||
for (unsigned i = 0, N = Globals.size(); i < N; ++i) {
|
||||
GlobalVariable *GV = Globals[i];
|
||||
|
||||
@ -1171,8 +1172,6 @@ public:
|
||||
AnchoredDescs.push_back(cast<T>(DR.Deserialize(GV)));
|
||||
}
|
||||
}
|
||||
|
||||
return AnchoredDescs;
|
||||
}
|
||||
|
||||
/// RecordRegionStart - Indicate the start of a region.
|
||||
|
@ -2630,8 +2630,8 @@ private:
|
||||
/// ConstructGlobalDIEs - Create DIEs for each of the externally visible
|
||||
/// global variables.
|
||||
void ConstructGlobalDIEs() {
|
||||
std::vector<GlobalVariableDesc *> GlobalVariables =
|
||||
MMI->getAnchoredDescriptors<GlobalVariableDesc>(*M);
|
||||
std::vector<GlobalVariableDesc *> GlobalVariables;
|
||||
MMI->getAnchoredDescriptors<GlobalVariableDesc>(*M, GlobalVariables);
|
||||
|
||||
for (unsigned i = 0, N = GlobalVariables.size(); i < N; ++i) {
|
||||
GlobalVariableDesc *GVD = GlobalVariables[i];
|
||||
@ -2642,8 +2642,8 @@ private:
|
||||
/// ConstructSubprogramDIEs - Create DIEs for each of the externally visible
|
||||
/// subprograms.
|
||||
void ConstructSubprogramDIEs() {
|
||||
std::vector<SubprogramDesc *> Subprograms =
|
||||
MMI->getAnchoredDescriptors<SubprogramDesc>(*M);
|
||||
std::vector<SubprogramDesc *> Subprograms;
|
||||
MMI->getAnchoredDescriptors<SubprogramDesc>(*M, Subprograms);
|
||||
|
||||
for (unsigned i = 0, N = Subprograms.size(); i < N; ++i) {
|
||||
SubprogramDesc *SPD = Subprograms[i];
|
||||
|
@ -52,10 +52,9 @@ getGlobalVariablesUsing(Value *V, std::vector<GlobalVariable*> &Result) {
|
||||
|
||||
/// getGlobalVariablesUsing - Return all of the GlobalVariables that use the
|
||||
/// named GlobalVariable.
|
||||
static std::vector<GlobalVariable*>
|
||||
getGlobalVariablesUsing(Module &M, const std::string &RootName) {
|
||||
std::vector<GlobalVariable*> Result; // GlobalVariables matching criteria.
|
||||
|
||||
static void
|
||||
getGlobalVariablesUsing(Module &M, const std::string &RootName,
|
||||
std::vector<GlobalVariable*> &Result) {
|
||||
std::vector<const Type*> FieldTypes;
|
||||
FieldTypes.push_back(Type::Int32Ty);
|
||||
FieldTypes.push_back(Type::Int32Ty);
|
||||
@ -65,11 +64,8 @@ getGlobalVariablesUsing(Module &M, const std::string &RootName) {
|
||||
StructType::get(FieldTypes));
|
||||
|
||||
// If present and linkonce then scan for users.
|
||||
if (UseRoot && UseRoot->hasLinkOnceLinkage()) {
|
||||
if (UseRoot && UseRoot->hasLinkOnceLinkage())
|
||||
getGlobalVariablesUsing(UseRoot, Result);
|
||||
}
|
||||
|
||||
return Result;
|
||||
}
|
||||
|
||||
/// isStringValue - Return true if the given value can be coerced to a string.
|
||||
@ -1593,7 +1589,8 @@ void MachineModuleInfo::AnalyzeModule(Module &M) {
|
||||
/// SetupCompileUnits - Set up the unique vector of compile units.
|
||||
///
|
||||
void MachineModuleInfo::SetupCompileUnits(Module &M) {
|
||||
std::vector<CompileUnitDesc *>CU = getAnchoredDescriptors<CompileUnitDesc>(M);
|
||||
std::vector<CompileUnitDesc *> CU;
|
||||
getAnchoredDescriptors<CompileUnitDesc>(M, CU);
|
||||
|
||||
for (unsigned i = 0, N = CU.size(); i < N; i++) {
|
||||
CompileUnits.insert(CU[i]);
|
||||
@ -1608,10 +1605,11 @@ const UniqueVector<CompileUnitDesc *> MachineModuleInfo::getCompileUnits()const{
|
||||
|
||||
/// getGlobalVariablesUsing - Return all of the GlobalVariables that use the
|
||||
/// named GlobalVariable.
|
||||
std::vector<GlobalVariable*>
|
||||
void
|
||||
MachineModuleInfo::getGlobalVariablesUsing(Module &M,
|
||||
const std::string &RootName) {
|
||||
return ::getGlobalVariablesUsing(M, RootName);
|
||||
const std::string &RootName,
|
||||
std::vector<GlobalVariable*>&Result){
|
||||
return ::getGlobalVariablesUsing(M, RootName, Result);
|
||||
}
|
||||
|
||||
/// RecordSourceLine - Records location information and associates it with a
|
||||
|
Loading…
x
Reference in New Issue
Block a user