omjavaid marked 10 inline comments as done.
omjavaid added inline comments.


================
Comment at: lldb/source/Plugins/Process/FreeBSD/FreeBSDThread.cpp:167
     assert(target_arch.GetTriple().getOS() == llvm::Triple::FreeBSD);
     switch (target_arch.GetMachine()) {
     case llvm::Triple::aarch64:
----------------
labath wrote:
> It would be good to merge these two switches. Then the reg(set)_interface 
> variables would be local to each case label and it would not be so weird that 
> we sometimes use one and sometimes the other.
I have tried a couple of options but the no of different combinations involved 
I feel current implementation should stay untill we incrementally move 
remaining architectures to user RegisterInfosAndSet interface.


================
Comment at: 
lldb/source/Plugins/Process/FreeBSD/RegisterContextPOSIXProcessMonitor_arm64.h:21
       lldb_private::Thread &thread, uint32_t concrete_frame_idx,
-      lldb_private::RegisterInfoInterface *register_info);
+      lldb_private::RegisterInfoAndSetInterface *register_info);
 
----------------
labath wrote:
> While we're changing interfaces, let's also make this 
> unique_ptr<RegisterInfoAndSetInterface> to document the ownership transfer. 
> (I might also drop the concrete_frame_idx argument, as that is always zero.)
Agreed. I will update this in updated revision.


================
Comment at: 
lldb/source/Plugins/Process/Linux/NativeRegisterContextLinux_arm64.cpp:71-72
+
+  m_regset_interface_up = 
std::static_pointer_cast<RegisterInfoAndSetInterface>(
+      m_register_info_interface_up);
 }
----------------
labath wrote:
> The way I'd recommend dealing with this is to have a 
> `RegisterInfoPOSIX_arm64& GetRegisterInfo() const` method which performs a 
> cast on the `m_register_info_interface_up` pointer, and then have everything 
> call that. If you place that method in close proximity to this constructor, 
> then it should be clear that this operation is always safe. There's already 
> something similar being done in e.g. `NativeThreadLinux::GetProcess`.
yes this would be a lot cleaner than what I am doing currently. I am going to 
update this in next revision.


================
Comment at: lldb/source/Plugins/Process/elf-core/ThreadElfCore.cpp:82
 
     switch (arch.GetTriple().getOS()) {
     case llvm::Triple::FreeBSD: {
----------------
labath wrote:
> The reg(set)_interface and register_context switches could be merged here too 
> in a similar way...
Here also incremental merger will be a better approach IMO.


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

https://reviews.llvm.org/D80105



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

Reply via email to