[PATCH] D38851: [Hexagon] New HVX target features.

Sumanth Gundapaneni via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Thu Oct 12 09:25:58 PDT 2017


sgundapa created this revision.
Herald added subscribers: eraman, qcolombet, MatzeB.

This patch lets the llvm tools handle the new HVX target features that
are added by frontend (clang). The target-features are of the form
"hvx-length64b" for 64 Byte HVX mode, "hvx-length128b" for 128 Byte mode HVX.
"hvx-double" is an alias to "hvx-length128b" and is soon will be deprecated.
The hvx version target feature is upgated form "+hvx" to "+hvxv{version_number}.
Eg: "+hvxv62"

For the correct HVX code generation, the user must use the following
target features.
For 64B mode: "+hvxv62" "+hvx-length64b"
For 128B mode: "+hvxv62" "+hvx-length128b"

Clang picks a default length if none is specified. If for some reason,
no hvx-length is specified to llvm, the compilation will bail out.
There is a corresponding clang patch.


Repository:
  rL LLVM

https://reviews.llvm.org/D38851

Files:
  lib/Target/Hexagon/Hexagon.td
  lib/Target/Hexagon/HexagonISelLowering.cpp
  lib/Target/Hexagon/HexagonPseudo.td
  lib/Target/Hexagon/HexagonRegisterInfo.td
  lib/Target/Hexagon/HexagonSubtarget.cpp
  lib/Target/Hexagon/HexagonSubtarget.h
  lib/Target/Hexagon/MCTargetDesc/HexagonMCTargetDesc.cpp
  test/CodeGen/Hexagon/SUnit-boundary-prob.ll
  test/CodeGen/Hexagon/bit-bitsplit-at.ll
  test/CodeGen/Hexagon/bit-bitsplit-src.ll
  test/CodeGen/Hexagon/bit-bitsplit.ll
  test/CodeGen/Hexagon/bit-ext-sat.ll
  test/CodeGen/Hexagon/bit-extract-off.ll
  test/CodeGen/Hexagon/bit-extract.ll
  test/CodeGen/Hexagon/bit-has.ll
  test/CodeGen/Hexagon/bit-loop-rc-mismatch.ll
  test/CodeGen/Hexagon/bit-rie.ll
  test/CodeGen/Hexagon/bitconvert-vector.ll
  test/CodeGen/Hexagon/build-vector-shuffle.ll
  test/CodeGen/Hexagon/builtin-expect.ll
  test/CodeGen/Hexagon/cfgopt-fall-through.ll
  test/CodeGen/Hexagon/cfi-offset.ll
  test/CodeGen/Hexagon/common-gep-inbounds.ll
  test/CodeGen/Hexagon/const-pool-tf.ll
  test/CodeGen/Hexagon/convert-to-dot-old.ll
  test/CodeGen/Hexagon/convert_const_i1_to_i8.ll
  test/CodeGen/Hexagon/dead-store-stack.ll
  test/CodeGen/Hexagon/early-if-merge-loop.ll
  test/CodeGen/Hexagon/early-if-vecpi.ll
  test/CodeGen/Hexagon/early-if-vecpred.ll
  test/CodeGen/Hexagon/eliminate-pred-spill.ll
  test/CodeGen/Hexagon/expand-condsets-dead-bad.ll
  test/CodeGen/Hexagon/expand-condsets-dead-pred.ll
  test/CodeGen/Hexagon/expand-vselect-kill.ll
  test/CodeGen/Hexagon/expand-vstorerw-undef.ll
  test/CodeGen/Hexagon/expand-vstorerw-undef2.ll
  test/CodeGen/Hexagon/find-loop-instr.ll
  test/CodeGen/Hexagon/fminmax.ll
  test/CodeGen/Hexagon/frame-offset-overflow.ll
  test/CodeGen/Hexagon/hasfp-crash1.ll
  test/CodeGen/Hexagon/hasfp-crash2.ll
  test/CodeGen/Hexagon/hexagon_vector_loop_carried_reuse.ll
  test/CodeGen/Hexagon/hexagon_vector_loop_carried_reuse_constant.ll
  test/CodeGen/Hexagon/hvx-nontemporal.ll
  test/CodeGen/Hexagon/hwloop-noreturn-call.ll
  test/CodeGen/Hexagon/hwloop-preh.ll
  test/CodeGen/Hexagon/inline-asm-qv.ll
  test/CodeGen/Hexagon/inline-asm-vecpred128.ll
  test/CodeGen/Hexagon/intrinsics/byte-store-double.ll
  test/CodeGen/Hexagon/intrinsics/byte-store.ll
  test/CodeGen/Hexagon/intrinsics/system_user.ll
  test/CodeGen/Hexagon/jt-in-text.ll
  test/CodeGen/Hexagon/loop-idiom/pmpy-infinite-loop.ll
  test/CodeGen/Hexagon/loop-idiom/pmpy-mod.ll
  test/CodeGen/Hexagon/loop-prefetch.ll
  test/CodeGen/Hexagon/lower-extract-subvector.ll
  test/CodeGen/Hexagon/memops-stack.ll
  test/CodeGen/Hexagon/misaligned_double_vector_store_not_fast.ll
  test/CodeGen/Hexagon/multi-cycle.ll
  test/CodeGen/Hexagon/newify-crash.ll
  test/CodeGen/Hexagon/newvaluejump3.ll
  test/CodeGen/Hexagon/peephole-kill-flags.ll
  test/CodeGen/Hexagon/plt-rel.ll
  test/CodeGen/Hexagon/post-inc-aa-metadata.ll
  test/CodeGen/Hexagon/propagate-vcombine.ll
  test/CodeGen/Hexagon/rdf-def-mask.ll
  test/CodeGen/Hexagon/rdf-inline-asm-fixed.ll
  test/CodeGen/Hexagon/rdf-inline-asm.ll
  test/CodeGen/Hexagon/reg-scavengebug-3.ll
  test/CodeGen/Hexagon/reg-scavenger-valid-slot.ll
  test/CodeGen/Hexagon/regalloc-bad-undef.mir
  test/CodeGen/Hexagon/regalloc-block-overlap.ll
  test/CodeGen/Hexagon/select-instr-align.ll
  test/CodeGen/Hexagon/stack-align-reset.ll
  test/CodeGen/Hexagon/store-shift.ll
  test/CodeGen/Hexagon/switch-lut-explicit-section.ll
  test/CodeGen/Hexagon/switch-lut-function-section.ll
  test/CodeGen/Hexagon/switch-lut-multiple-functions.ll
  test/CodeGen/Hexagon/switch-lut-text-section.ll
  test/CodeGen/Hexagon/undo-dag-shift.ll
  test/CodeGen/Hexagon/v60-cur.ll
  test/CodeGen/Hexagon/v60-vsel1.ll
  test/CodeGen/Hexagon/v60Intrins.ll
  test/CodeGen/Hexagon/v60Vasr.ll
  test/CodeGen/Hexagon/v60small.ll
  test/CodeGen/Hexagon/v6vec-vprint.ll
  test/CodeGen/Hexagon/vassign-to-combine.ll
  test/CodeGen/Hexagon/vdmpy-halide-test.ll
  test/CodeGen/Hexagon/vec-pred-spill1.ll
  test/CodeGen/Hexagon/vec-vararg-align.ll
  test/CodeGen/Hexagon/vector-align.ll
  test/CodeGen/Hexagon/vload-postinc-sel.ll
  test/CodeGen/Hexagon/vmpa-halide-test.ll
  test/CodeGen/Hexagon/vpack_eo.ll
  test/CodeGen/Hexagon/vselect-pseudo.ll
  test/MC/Hexagon/align.s
  test/MC/Hexagon/double-vector-producer.s
  test/MC/Hexagon/test.s
  test/MC/Hexagon/v60-alu.s
  test/MC/Hexagon/v60-misc.s
  test/MC/Hexagon/v60-permute.s
  test/MC/Hexagon/v60-shift.s
  test/MC/Hexagon/v60-vcmp.s
  test/MC/Hexagon/v60-vmem.s
  test/MC/Hexagon/v60-vmpy-acc.s
  test/MC/Hexagon/v60-vmpy1.s
  test/MC/Hexagon/v60lookup.s
  test/MC/Hexagon/v62_all.s
  test/Transforms/SimplifyCFG/Hexagon/switch-to-lookup-table.ll
  test/tools/llvm-objdump/Hexagon/source-interleave-hexagon.ll

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D38851.118801.patch
Type: text/x-patch
Size: 93628 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20171012/8f764977/attachment.bin>


More information about the llvm-commits mailing list