DavidSpickett added inline comments.

================
Comment at: lldb/source/Target/Process.cpp:6108
+        range_callback) {
   Architecture *arch = GetTarget().GetArchitecturePlugin();
   const MemoryTagManager *tag_manager =
----------------
DavidSpickett wrote:
> omjavaid wrote:
> > The point I was trying to establish above is that GetMemoryTagManagerImpl 
> > function here may remain as it was i-e GetMemoryTagManager. It could only 
> > run once on Process object creation. We know our process architecture so we 
> > can host a pointer to relevent tag manager in Process class. All the tag 
> > ranges corresponding to the current process address space should be able to 
> > get a pointer to MemoryTagManager as was being done previously. 
> I see what you mean. I'm going to try this on top of main as a new change, 
> then I'll refactor this based on that if it works out.
> It could only run once on Process object creation.

Turns out that the arch object, where the plugin is stored, changes 2/3 times 
between process creation and loading the program file. So we could store the 
pointer but we'd have to invalidate it on all these events. Ultimately we'd 
spend the time saved doing invalidation.

Which is probably why things like Target::GetCallableLoadAddress just get a new 
pointer each time.

You gave me some good ideas about simplifying this whole process though so I'm 
still going to work on that.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D105181/new/

https://reviews.llvm.org/D105181

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

Reply via email to