aprantl added inline comments.

================
Comment at: source/API/SBTarget.cpp:1467
+  }
+  const ConstString csFrom(from), csTo(to);
+  if (csFrom && csTo) {
----------------
apolyakov wrote:
> aprantl wrote:
> > apolyakov wrote:
> > > aprantl wrote:
> > > > personally I would write this as:
> > > > ```
> > > > if (!csFrom)
> > > >   return error.SetErrorString("<from> path is empty");
> > > > if (!csTo)
> > > >   return error.SetErrorString("<to> path is empty");
> > > > Log *log(lldb_private::GetLogIfAllCategoriesSet(LIBLLDB_LOG_API));
> > > > if (log)
> > > >   log->Printf("SBTarget(%p)::%s: '%s' -> '%s'",
> > > >               static_cast<void *>(target_sp.get()),  __FUNCTION__,
> > > >               from, to);
> > > > target_sp->GetImageSearchPathList().Append(csFrom, csTo, true);
> > > > ```
> > > in my opinion, the branch `if (csFrom && csTo)` will be executed in most 
> > > cases, so it is reasonable to make it executed first, as this will 
> > > benefit the branch prediction of the processor. Is this a worthwhile 
> > > argument?
> > Not really. First, you don't actually control the order in which the code 
> > is emitted by the compiler by rearranging the source code. Second, it 
> > doesn't make sense to think about branch prediction outside of a tight loop 
> > as the effect would not even be measurable. We should optimize for 
> > readability and compact code here.
> Yes, I should agree that thinking about branch prediction isn't so effective 
> in our case. But the readability of our approaches is almost equal. At the 
> same time, taking into consideration that in most cases we will have not 
> empty string arguments, your approach will check 2 conditions and mine 
> approach will check 1 condition.
It's the LLVM style to prefer early exits:

http://llvm.org/docs/CodingStandards.html#use-early-exits-and-continue-to-simplify-code


https://reviews.llvm.org/D49739



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

Reply via email to