hoy added a comment.

In D94019#2478284 <https://reviews.llvm.org/D94019#2478284>, @dblaikie wrote:

> In D94019#2478277 <https://reviews.llvm.org/D94019#2478277>, @hoy wrote:
>
>> In D94019#2478253 <https://reviews.llvm.org/D94019#2478253>, @dblaikie wrote:
>>
>>> In D94019#2478206 <https://reviews.llvm.org/D94019#2478206>, @hoy wrote:
>>>
>>>> In D94019#2478048 <https://reviews.llvm.org/D94019#2478048>, @dblaikie 
>>>> wrote:
>>>>
>>>>> In D94019#2478047 <https://reviews.llvm.org/D94019#2478047>, @hoy wrote:
>>>>>
>>>>>> In D94019#2478045 <https://reviews.llvm.org/D94019#2478045>, @dblaikie 
>>>>>> wrote:
>>>>>>
>>>>>>> Please add a clang test for this.
>>>>>>
>>>>>> There is the original clang test `unique-internal-linkage-names.cpp` 
>>>>>> that still works with the change here. What kind of new test would you 
>>>>>> like?
>>>>>
>>>>> Something that tests this change (something that would fail before this 
>>>>> patch is applied, and passes afterwards - demonstrating the change in 
>>>>> behavior). Either something like the LLVM test, testing the pass 
>>>>> sequence, or something with very simple IR (something that can robustly 
>>>>> demonstrate the change in optimization behavior due to this patch and 
>>>>> will be resilient to as many other changes to LLVM as possible (ie: 
>>>>> something that captures the essence of this change)).
>>>>
>>>> I'm not sure how to test this change if LLVM is treated as a black box to 
>>>> clang. This patch doesn't seem to change anything fundamental from the 
>>>> Clang point of view. My understanding is that the previous placement of 
>>>> the unique name pass in the pipeline didn't seem particularly important to 
>>>> Clang, therefore we ended up just testing the whole Clang output. If 
>>>> that's the case, I don't think we need to test the pass order here with 
>>>> this change.
>>>
>>> My understanding was that the change in pass ordering has some observable 
>>> change in the total behavior of LLVM? So an end-to-end test could be used 
>>> here (I tend towards preferring the checking the pass ordering, but 
>>> understand @aeubanks contrasting position)  - that's what I was trying to 
>>> describe in the "or something with very simple IR (... )" part of my 
>>> suggestion. If the change in pass order can be observed in terms of 
>>> different final IR, that's what an end-to-end Clang test could validate.
>>
>> The change on the LLVM side is observable on the IR level when pseudo probe 
>> is enabled. I think that LLVM change is transparent to Clang. In other 
>> words, Clang doesn't need to know that the LLVM change is to favor pseudo 
>> probe.
>
> Clang's overall, user-facing behavior changed (otherwise why make this 
> change, right?) due to a change to Clang's source code, so it should be 
> tested to demonstrate that the source change had the desired effect and 
> doesn't regress. These particular changes are awkward because things like 
> CodeGenOpts aren't serialized, unlike LLVM IR, but that doesn't mean they 
> shouldn't be tested - it means the testing isn't as elegant as it is for 
> serialized IR.

Yes, the user-facing behavior changed and it is tested by an LLVM test. I think 
that's transparent to clang and Clang doesn't know why that change is made in 
LLVM. A possible clang test could be to enable pseudo probe and check the 
output of pseudo probe metadata where unique linkage names are encoded. But we 
don't even has such a test in the LLVM part either.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D94019

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

Reply via email to