[LLVMdev] [RFC] Stripping unusable intrinsics

Eric Christopher echristo at gmail.com
Wed Dec 10 16:22:25 PST 2014


On Wed Dec 10 2014 at 3:57:25 PM Chris Bieneman <beanz at apple.com> wrote:

> llvm-dev,
>
> In my ongoing saga to improve LLVM for embedded use, we would like to
> support stripping out unused intrinsics based on the LLVM targets actually
> being built.
>
> I’ve attached two patches.
>
> The first is a new flag for tablegen to take a list of targets. If passed
> tablegen will only emit intrinsics that either have empty target prefixes,
> or target prefixes matching one of the targets in the list. If the flag is
> not passed the behavior is unchanged. This patch can land today (subject to
> review).
>
> The second patch is a WIP, and adds support to the CMake build system for
> using the new tablegen flag, and for generating a new
> llvm/Config/llvm-targets.h header which contains defines for each target
> specified with LLVM_TARGETS_TO_BUILD.
>
> This new header will allow us to #ifdef code using target-specific
> intrinsics outside the targets, thus allowing us to strip out all the
> unused intrinsics.
>
>
I like the general idea and, as you asked on irc, will happily help with
the autoconf changes. Do you have a small (even pseudo) code example of
what the changes to the middle end machinery will look like?

-eric


> -Chris
>
> _______________________________________________
> LLVM Developers mailing list
> LLVMdev at cs.uiuc.edu         http://llvm.cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20141211/00e42810/attachment.html>


More information about the llvm-dev mailing list