dblaikie added a comment.

In D91734#2431247 <https://reviews.llvm.org/D91734#2431247>, @probinson wrote:

>> Sometihng like this seems plausible to me:
>
> Yes, I was playing with essentially that exact patch last night.  It has no 
> effect on the final assembly on its own, but combined with my patch it does.

It might have effects on assembly in other test cases, though. Could be worth 
running it through a self-host or something to see what other changes it causes 
and whether they're desirable.

>> (a more general fix (that would cover cases where the instruction really has 
>> no location) might be to propagate locations from the first instruction in a 
>> basic block with a location back up to the start of the basic block - I 
>> forget if we've considered/tried that before)
>
> We have, but that without flushing the map on every instruction, so it caught 
> materialization instructions that didn't actually belong to that IR 
> instruction.  The tactic would likely be more reasonable in conjunction with 
> my patch.

(oh, when I was saying that I didn't really think - the materialization in this 
case wasn't necessarily on a BB boundary - so I guess my suggestion amounts to 
possibly never using line 0 (unless it's the only location in a whole BB), 
instead back or forward propagating surrounding locations over any line 0 - and 
that doesn't sound right when I put it that way)

But yeah, maybe some amount of it could be done around the flushing thing.

(FWIW, about this patch in general, I do worry a bit about this being a 
debug-info motivated optimization decision (even if that decision is applied 
uniformly/not just when debug info is enabled) - you mention this might have 
positive performance features due to smaller register live ranges, but also 
possibly negative ones rematerializing the same constant (" however, only about 
5% of those values
were reused in an experimental self-build of clang.") - do you have performance 
measurements/benchmarks related to this change? I guess it didn't show up in 
the perf bot profiles upstream at least)


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D91734

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

Reply via email to