Florian Hahn
7954a0514b
[Clang] Enable -fpointer-tbaa by default. ( #117244 )
...
Support for more precise TBAA metadata has been added a while ago
(behind the -fpointer-tbaa flag). The more precise TBAA metadata allows
treating accesses of different pointer types as no-alias.
This helps to remove more redundant loads and stores in a number of
workloads.
Some highlights on the impact across llvm-test-suite's MultiSource,
SPEC2006 & SPEC2017 include:
* +2% more NoAlias results for memory accesses
* +3% more stores removed by DSE,
* +4% more loops vectorized.
This closes a relatively big gap to GCC, which has been supporting
disambiguating based on pointer types for a long time.
(https://clang.godbolt.org/z/K7Wbhrz4q )
Pointer-TBAA support for pointers to builtin types has been added in
https://github.com/llvm/llvm-project/pull/76612 .
Support for user-defined types has been added in
https://github.com/llvm/llvm-project/pull/110569 .
There are 2 recent PRs with bug fixes for special cases uncovered during
testing:
* https://github.com/llvm/llvm-project/pull/116991
* https://github.com/llvm/llvm-project/pull/116596
PR: https://github.com/llvm/llvm-project/pull/117244
2024-12-04 20:55:18 +00:00
Florian Hahn
4334f317e7
[TBAA] Extend pointer TBAA to pointers of non-builtin types. ( #110569 )
...
Extend the logic added in 123c036bd361d
(https://github.com/llvm/llvm-project/pull/76612 ) to support pointers to
non-builtin types by using the mangled name of the canonical type.
PR: https://github.com/llvm/llvm-project/pull/110569
2024-10-22 16:23:34 -07:00
Florian Hahn
df3f291d2a
[TBAA] Add tests with pointers to structs to tbaa-pointers.c.
...
Precommit tests for follow-up improvements to Clang's TBAA emission.
Also add variants with -pointer-tbaa to tbaa-reference.cpp.
2024-09-30 19:54:05 +01:00
Nikita Popov
39db5e1ed8
[CodeGen] Convert tests to opaque pointers (NFC)
...
Conversion performed using the script at:
https://gist.github.com/nikic/98357b71fd67756b0f064c9517b62a34
These are only tests where no manual fixup was required.
2022-10-07 14:22:00 +02:00
Nikita Popov
532dc62b90
[OpaquePtrs][Clang] Add -no-opaque-pointers to tests (NFC)
...
This adds -no-opaque-pointers to clang tests whose output will
change when opaque pointers are enabled by default. This is
intended to be part of the migration approach described in
https://discourse.llvm.org/t/enabling-opaque-pointers-by-default/61322/9 .
The patch has been produced by replacing %clang_cc1 with
%clang_cc1 -no-opaque-pointers for tests that fail with opaque
pointers enabled. Worth noting that this doesn't cover all tests,
there's a remaining ~40 tests not using %clang_cc1 that will need
a followup change.
Differential Revision: https://reviews.llvm.org/D123115
2022-04-07 12:09:47 +02:00
Danil Malyshev
cd3fd82da3
Update existed CodeGen TBAA tests
...
Reviewers: hfinkel, kosarev, rjmccall
Reviewed By: rjmccall
Differential Revision: https://reviews.llvm.org/D44616
llvm-svn: 331292
2018-05-01 18:14:36 +00:00
Ivan A. Kosarev
9f9d157517
[CodeGen] Generate TBAA info for reference loads
...
Differential Revision: https://reviews.llvm.org/D39177
llvm-svn: 316896
2017-10-30 11:49:31 +00:00
Ivan A. Kosarev
b75a50b121
Fix TBAA information for reference accesses
...
This patch fixes clang to decorate reference accesses as pointers
and not as "omnipotent chars".
Differential Revision: https://reviews.llvm.org/D38074
llvm-svn: 314209
2017-09-26 14:22:48 +00:00