Page MenuHomePhabricator

Downstream SVE/SVE2 implementation (Clang)

Authored by sdesmalen on Dec 19 2019, 9:07 AM.



DO NOT REVIEW; For reference only.

This patch contains Arm's downstream changes to Clang for SVE/SVE2. This supports SVE/SVE2 CodeGen, scalable auto-vectorization and the ACLE (C/C++ intrinsics interface).

While the patches are still based on LLVM 7, it should be a good indication of the changes we've made to support scalable vectors. Note that these patches are meant for reference and are not intended to be committed. This patch may help clarify some of the design choices we've made when implementing scalable vectors for SVE, and it allows others to experiment with our scalable-vector implementation.

The patches apply cleanly to the LLVM 7 release branch.

Diff Detail

Event Timeline

sdesmalen created this revision.Dec 19 2019, 9:07 AM
sdesmalen planned changes to this revision.Dec 19 2019, 9:07 AM

The Download raw diff button seems to run into a Unhandled Exception page.
arc patch doesn't work either because the patches are missing the llvm/ and clang/ prefix to the file paths.

To download patch D71712 and D71713, you can use the following commands:

CONDUIT_TOKEN=<copy/paste an API Token from>

# Download D71712 (LLVM)
curl \
   -d api.token=$CONDUIT_TOKEN \
   -d diffID=234735 \
 | python -c 'import json,sys;obj=json.load(sys.stdin); print obj["result"].encode("utf8")' > llvm.diff

# Download D71713 (Clang)
curl \
   -d api.token=$CONDUIT_TOKEN \
   -d diffID=234737 \
 | python -c 'import json,sys;obj=json.load(sys.stdin); print obj["result"].encode("utf8")' > clang.diff
nhaehnle removed a subscriber: nhaehnle.Jan 22 2020, 5:04 AM
sdesmalen abandoned this revision.Sep 3 2020, 1:43 AM

Abandoning this revision because an updated version of this patch (based on LLVM 9) has been posted in D87056.