This is an archive of the discontinued LLVM Phabricator instance.

[ARM NEON] Avoid duplicated decarations
ClosedPublic

Authored by dnsampaio on Aug 22 2019, 6:25 AM.

Details

Summary

The declaration of arm neon intrinsics that are
"big endian safe" print the same code for big
and small endian targets.
This patch avoids duplicates by checking if an
intrinsic is safe to have a single definition.
(decreases header 11k lines out of 73k).

Diff Detail

Repository
rL LLVM

Event Timeline

dnsampaio created this revision.Aug 22 2019, 6:25 AM
dnsampaio updated this revision to Diff 216801.Aug 23 2019, 4:05 AM
  • Consider BigEndianSafe intrinsics that all inputs and outputs are scalar or single element vectors
dnsampaio edited the summary of this revision. (Show Details)Aug 23 2019, 4:07 AM
dnsampaio planned changes to this revision.Aug 27 2019, 5:15 AM

Breaks the header. Needs to avoid generating calls to functions with predicated __noswap when it is BigEndianSafe.

dnsampaio updated this revision to Diff 217594.Aug 28 2019, 3:12 AM

Fix / Update / Rebase

  • Avoid appending __noswap_ to intrinsics that are BigEndianSafe
  • Moved to monorepo
dnsampaio removed a subscriber: javed.absar.

LGTM with one small nit.

clang/utils/TableGen/NeonEmitter.cpp
1906 ↗(On Diff #217594)

s/small endians/little endian/

ostannard accepted this revision.Sep 2 2019, 8:46 AM
This revision is now accepted and ready to land.Sep 2 2019, 8:46 AM
dnsampaio updated this revision to Diff 218412.Sep 3 2019, 2:06 AM
  • Fix comment
dnsampaio marked an inline comment as done.Sep 3 2019, 2:07 AM
This revision was automatically updated to reflect the committed changes.
Herald added a project: Restricted Project. · View Herald TranscriptSep 3 2019, 2:16 AM