dbgllvm: rename hastable for staticvarsym declarations

This commit is contained in:
Jonas Maebe 2022-06-04 21:49:27 +02:00
parent a76038e1d1
commit e7ec91eca8

View File

@ -75,8 +75,8 @@ interface
flocationmeta: THashSet;
{ lookup table for scope,file -> LLVMMeta info (DILexicalBlockFile, for include files) }
flexicalblockfilemeta: THashSet;
{ lookup table for tsym -> taillvmdecl }
fsymdecl: THashSet;
{ lookup table for tstaticvarsym -> taillvmdecl }
fstaticvarsymdecl: THashSet;
fcunode: tai_llvmspecialisedmetadatanode;
fenums: tai_llvmunnamedmetadatanode;
@ -101,8 +101,8 @@ interface
function filepos_getmetanode(const filepos: tfileposinfo; const functionfileinfo: tfileposinfo; const functionscope: tai_llvmspecialisedmetadatanode; nolineinfo: boolean): tai_llvmspecialisedmetadatanode;
function get_def_metatai(def:tdef): PLLVMMetaDefHashSetItem;
procedure sym_set_decl(sym: tsym; decl: tai);
function sym_get_decl(sym: tsym): taillvmdecl;
procedure staticvarsym_set_decl(sym: tsym; decl: taillvmdecl);
function staticvarsym_get_decl(sym: tsym): taillvmdecl;
procedure appenddef_array_internal(list: TAsmList; fordef: tdef; eledef: tdef; lowrange, highrange: asizeint);
function getabstractprocdeftypes(list: TAsmList; def:tabstractprocdef): tai_llvmbasemetadatanode;
@ -310,22 +310,22 @@ implementation
end;
end;
procedure TDebugInfoLLVM.sym_set_decl(sym: tsym; decl: tai);
procedure TDebugInfoLLVM.staticvarsym_set_decl(sym: tsym; decl: taillvmdecl);
var
entry: PHashSetItem;
begin
entry:=fsymdecl.FindOrAdd(@sym,sizeof(sym));
entry:=fstaticvarsymdecl.FindOrAdd(@sym,sizeof(sym));
if assigned(entry^.Data) then
internalerror(2022051701);
entry^.Data:=decl;
end;
function TDebugInfoLLVM.sym_get_decl(sym: tsym): taillvmdecl;
function TDebugInfoLLVM.staticvarsym_get_decl(sym: tsym): taillvmdecl;
var
entry: PHashSetItem;
begin
result:=nil;
entry:=fsymdecl.Find(@sym,sizeof(sym));
entry:=fstaticvarsymdecl.Find(@sym,sizeof(sym));
if assigned(entry) then
result:=taillvmdecl(entry^.Data);
end;
@ -423,7 +423,7 @@ implementation
flocationmeta:=thashset.Create(10000,true,false);
flexicalblockfilemeta:=thashset.Create(100,true,false);
fdefmeta:=TLLVMMetaDefHashSet.Create(10000,true,false);
fsymdecl:=thashset.create(10000,true,false);
fstaticvarsymdecl:=thashset.create(10000,true,false);
defnumberlist:=TFPObjectList.create(false);
deftowritelist:=TFPObjectList.create(false);
@ -443,8 +443,8 @@ implementation
flexicalblockfilemeta:=nil;
fdefmeta.free;
fdefmeta:=nil;
fsymdecl.free;
fsymdecl:=nil;
fstaticvarsymdecl.free;
fstaticvarsymdecl:=nil;
defnumberlist.free;
defnumberlist:=nil;
deftowritelist.free;
@ -500,7 +500,7 @@ implementation
flocationmeta.Clear;
flexicalblockfilemeta.Clear;
fdefmeta.free;
fsymdecl.Clear;
fstaticvarsymdecl.Clear;
{ one item per def, plus some extra space in case of nested types,
externally used types etc (it will grow further if necessary) }
i:=current_module.localsymtable.DefList.count*4;
@ -531,7 +531,7 @@ implementation
begin
if (hp.typ=ait_llvmdecl) and
assigned(taillvmdecl(hp).sym) then
sym_set_decl(taillvmdecl(hp).sym,hp);
staticvarsym_set_decl(taillvmdecl(hp).sym,taillvmdecl(hp));
hp:=tai(hp.next);
end;
end;
@ -1832,7 +1832,7 @@ implementation
dispflags: tsymstr;
islocal: boolean;
begin
decl:=sym_get_decl(sym);
decl:=staticvarsym_get_decl(sym);
if not assigned(decl) then
begin
list.concat(tai_comment.create(strpnew('no declaration found for '+sym.mangledname)));