]> granicus.if.org Git - clang/commit
ARM NEON: use more flexible TableGen field for defs.
authorTim Northover <tnorthover@apple.com>
Wed, 19 Feb 2014 10:37:09 +0000 (10:37 +0000)
committerTim Northover <tnorthover@apple.com>
Wed, 19 Feb 2014 10:37:09 +0000 (10:37 +0000)
commit54d5cf233f642de02a63868519cb48dc5cd47ae0
treeeb1fa65c6e88ac50b5b01355ff03b14dae990ecd
parent45de76ea91e590f63496f49468fa51dcf4b2ba2a
ARM NEON: use more flexible TableGen field for defs.

We used to have special handling for isCrypto and isA64 bits in the
NeonEmitter.cpp file (it knew the former was predicated on __ARM_FEATURE_CRYPTO
and the latter on __aarch64__ and went through various contortions to make sure
the correct intrinsics were emitted under the correct guard.

This is ugly and has obvious scalability problems (e.g. vcvtX intrinsics are
needed, which are ARMv8 only but available on both, yet another category). This
patch moves the #if predicate into the arm_neon.td file directly and makes
NeonEmitter.cpp agnostic about what goes in there.

It also deduplicates arm_neon.td so that each desired intrinsic is mentioned in
just one place (necessary because of the new mechanism for creating
arm_neon.h).

rdar://problem/16035743

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@201660 91177308-0d34-0410-b5e6-96231b3b80d8
include/clang/Basic/arm_neon.td
utils/TableGen/NeonEmitter.cpp