[llvm-dev] Aliasing rules difference between GCC and Clang
Ivan Kosarev via llvm-dev
llvm-dev at lists.llvm.org
Mon Jan 28 02:34:07 PST 2019
Hi, Jonas,
I see. In that case I think you could just give the new TBAA a try by
adding the cc1's -new-struct-path-tbaa option and seeing if it does
what you need. The support for member arrays is already there, see
/tools/clang/test/CodeGen/tbaa-array.cpp . That would also give us some
more testing (which we need very much), and then resolve issues as we
go. The previously mentioned local patches pending publishing are
actually supposed to just fix some special cases. IIRC, the only major
part we are still missing is the proper support for unions. An attempt
to support them can be seen at <https://reviews.llvm.org/D39455>, but
turned out it doesn't implement exactly what we are after with TBAA and
unions, so this needs some more work.
Regards,
On 25/01/2019 17:44, Jonas Paulsson wrote:
> Hi Ivan,
>
>
>> As to my own patches pending publication, they are all for the new
>> TBAA format, which you said would be of no help in your case.
>>
> I actually thought they would help, but merely suggested an
> intermediate step while waiting for those further improvements you are
> working on. I would be happy to try your patches and evaluate if it
> helps my test case...
>
> thanks
>
> /Jonas
>
>
>> Regards,
>>
>>
>> On 22/01/2019 16:02, Jonas Paulsson wrote:
>>> CAUTION: This email originated from outside of the organization. Do
>>> not click links or open attachments unless you recognize the sender
>>> and know the content is safe. If you suspect potential phishing or
>>> spam email, report it to ReportSpam at accesssoftek.com
>>>
>>> Hi Ivan,
>>>
>>>
>>> On 2019-01-18 10:15, Ivan Kosarev wrote:
>>>> IIRC, there were proposals/attempts to represent accesses to array
>>>> elements as accesses to their first elements, which can technically be
>>>> encoded with the current TBAA format and thus may work as an
>>>> incremental improvement on top of the existing TBAA machinery you are
>>>> looking for. But this may need making sure there will be no
>>>> regressions for some tricky cases like those that involve GCC's type
>>>> punning and changing effective types within unions and in dynamic
>>>> memory.
>>>>
>>> It would be interesting for me to apply such a patch and evaluate if it
>>> really helps my test case. I would much appreciate any links to (or
>>> files of) your patches and the attempts you mentioned above.
>>>
>>> Thanks,
>>>
>>> Jonas
>>>
>>>
>>
>
More information about the llvm-dev
mailing list