[all-commits] [llvm/llvm-project] be5af5: [BPF] Use elementtype attribute for preserve.array...

Nikita Popov via All-commits all-commits at lists.llvm.org
Sat Jul 17 02:11:50 PDT 2021


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: be5af50e7d028849bf2fab5f4b0f2ad36ae56e11
      https://github.com/llvm/llvm-project/commit/be5af50e7d028849bf2fab5f4b0f2ad36ae56e11
  Author: Nikita Popov <nikita.ppv at gmail.com>
  Date:   2021-07-17 (Sat, 17 Jul 2021)

  Changed paths:
    M clang/test/CodeGen/bpf-attr-preserve-access-index-1.c
    M clang/test/CodeGen/bpf-attr-preserve-access-index-2.c
    M clang/test/CodeGen/bpf-attr-preserve-access-index-3.c
    M clang/test/CodeGen/bpf-attr-preserve-access-index-4.c
    M clang/test/CodeGen/bpf-attr-preserve-access-index-5.c
    M clang/test/CodeGen/bpf-attr-preserve-access-index-6.c
    M clang/test/CodeGen/bpf-attr-preserve-access-index-7.c
    M clang/test/CodeGen/bpf-attr-preserve-access-index-8.c
    M clang/test/CodeGen/builtin-preserve-access-index-array.c
    M clang/test/CodeGen/builtin-preserve-access-index-nonptr.c
    M clang/test/CodeGen/builtin-preserve-access-index-typedef.c
    M clang/test/CodeGen/builtin-preserve-access-index.c
    M clang/test/CodeGen/builtins-bpf-preserve-field-info-1.c
    M clang/test/CodeGen/builtins-bpf-preserve-field-info-2.c
    M llvm/docs/LangRef.rst
    M llvm/include/llvm/IR/Attributes.h
    M llvm/lib/Bitcode/Reader/BitcodeReader.cpp
    M llvm/lib/IR/Attributes.cpp
    M llvm/lib/IR/IRBuilder.cpp
    M llvm/lib/IR/Verifier.cpp
    M llvm/lib/Target/BPF/BPFAbstractMemberAccess.cpp
    A llvm/test/Bitcode/upgrade-elementtype.ll
    A llvm/test/Bitcode/upgrade-elementtype.ll.bc
    M llvm/test/CodeGen/BPF/CORE/field-reloc-alu32.ll
    M llvm/test/CodeGen/BPF/CORE/field-reloc-bitfield-1-bpfeb.ll
    M llvm/test/CodeGen/BPF/CORE/field-reloc-bitfield-1.ll
    M llvm/test/CodeGen/BPF/CORE/field-reloc-bitfield-2-bpfeb.ll
    M llvm/test/CodeGen/BPF/CORE/field-reloc-bitfield-2.ll
    M llvm/test/CodeGen/BPF/CORE/field-reloc-duplicate.ll
    M llvm/test/CodeGen/BPF/CORE/intrinsic-array-2.ll
    M llvm/test/CodeGen/BPF/CORE/intrinsic-array.ll
    M llvm/test/CodeGen/BPF/CORE/intrinsic-fieldinfo-byte-size-1.ll
    M llvm/test/CodeGen/BPF/CORE/intrinsic-fieldinfo-byte-size-2.ll
    M llvm/test/CodeGen/BPF/CORE/intrinsic-fieldinfo-byte-size-3.ll
    M llvm/test/CodeGen/BPF/CORE/intrinsic-fieldinfo-byte-size-4.ll
    M llvm/test/CodeGen/BPF/CORE/intrinsic-fieldinfo-existence-1.ll
    M llvm/test/CodeGen/BPF/CORE/intrinsic-fieldinfo-existence-2.ll
    M llvm/test/CodeGen/BPF/CORE/intrinsic-fieldinfo-existence-3.ll
    M llvm/test/CodeGen/BPF/CORE/intrinsic-fieldinfo-existence-4.ll
    M llvm/test/CodeGen/BPF/CORE/intrinsic-fieldinfo-lshift-1-bpfeb.ll
    M llvm/test/CodeGen/BPF/CORE/intrinsic-fieldinfo-lshift-1.ll
    M llvm/test/CodeGen/BPF/CORE/intrinsic-fieldinfo-lshift-2.ll
    M llvm/test/CodeGen/BPF/CORE/intrinsic-fieldinfo-rshift-1.ll
    M llvm/test/CodeGen/BPF/CORE/intrinsic-fieldinfo-rshift-2.ll
    M llvm/test/CodeGen/BPF/CORE/intrinsic-fieldinfo-rshift-3.ll
    M llvm/test/CodeGen/BPF/CORE/intrinsic-fieldinfo-signedness-1.ll
    M llvm/test/CodeGen/BPF/CORE/intrinsic-fieldinfo-signedness-2.ll
    M llvm/test/CodeGen/BPF/CORE/intrinsic-fieldinfo-signedness-3.ll
    M llvm/test/CodeGen/BPF/CORE/intrinsic-struct.ll
    M llvm/test/CodeGen/BPF/CORE/no-elf-ama-symbol.ll
    M llvm/test/CodeGen/BPF/CORE/no-narrow-load.ll
    M llvm/test/CodeGen/BPF/CORE/offset-reloc-access-str.ll
    M llvm/test/CodeGen/BPF/CORE/offset-reloc-basic.ll
    M llvm/test/CodeGen/BPF/CORE/offset-reloc-cast-array-1.ll
    M llvm/test/CodeGen/BPF/CORE/offset-reloc-cast-array-2.ll
    M llvm/test/CodeGen/BPF/CORE/offset-reloc-cast-struct-1.ll
    M llvm/test/CodeGen/BPF/CORE/offset-reloc-cast-struct-2.ll
    M llvm/test/CodeGen/BPF/CORE/offset-reloc-cast-struct-3.ll
    M llvm/test/CodeGen/BPF/CORE/offset-reloc-cast-union-2.ll
    M llvm/test/CodeGen/BPF/CORE/offset-reloc-end-load.ll
    M llvm/test/CodeGen/BPF/CORE/offset-reloc-end-ret.ll
    M llvm/test/CodeGen/BPF/CORE/offset-reloc-fieldinfo-1.ll
    M llvm/test/CodeGen/BPF/CORE/offset-reloc-fieldinfo-2-bpfeb.ll
    M llvm/test/CodeGen/BPF/CORE/offset-reloc-fieldinfo-2.ll
    M llvm/test/CodeGen/BPF/CORE/offset-reloc-global-1.ll
    M llvm/test/CodeGen/BPF/CORE/offset-reloc-global-2.ll
    M llvm/test/CodeGen/BPF/CORE/offset-reloc-global-3.ll
    M llvm/test/CodeGen/BPF/CORE/offset-reloc-ignore.ll
    M llvm/test/CodeGen/BPF/CORE/offset-reloc-middle-chain.ll
    M llvm/test/CodeGen/BPF/CORE/offset-reloc-multi-array-1.ll
    M llvm/test/CodeGen/BPF/CORE/offset-reloc-multi-array-2.ll
    M llvm/test/CodeGen/BPF/CORE/offset-reloc-multilevel.ll
    M llvm/test/CodeGen/BPF/CORE/offset-reloc-pointer-1.ll
    M llvm/test/CodeGen/BPF/CORE/offset-reloc-pointer-2.ll
    M llvm/test/CodeGen/BPF/CORE/offset-reloc-struct-anonymous.ll
    M llvm/test/CodeGen/BPF/CORE/offset-reloc-struct-array.ll
    M llvm/test/CodeGen/BPF/CORE/offset-reloc-typedef-array.ll
    M llvm/test/CodeGen/BPF/CORE/offset-reloc-typedef-struct-2.ll
    M llvm/test/CodeGen/BPF/CORE/offset-reloc-typedef-struct.ll
    M llvm/test/CodeGen/BPF/CORE/offset-reloc-typedef.ll
    M llvm/test/CodeGen/BPF/CORE/offset-reloc-union.ll
    M llvm/test/CodeGen/BPF/CORE/store-addr.ll
    M llvm/test/Verifier/elementtype.ll

  Log Message:
  -----------
  [BPF] Use elementtype attribute for preserve.array/struct.index intrinsics

Use the elementtype attribute introduced in D105407 for the
llvm.preserve.array/struct.index intrinsics. It carries the
element type of the GEP these intrinsics effectively encode.

This patch:

 * Adds a verifier check that the attribute is required.
 * Adds it in the IRBuilder methods for these intrinsics.
 * Autoupgrades old bitcode without the attribute.
 * Updates the lowering code to use the attribute rather than
   the pointer element type.
 * Updates lots of tests to specify the attribute.
 * Adds -force-opaque-pointers to the intrinsic-array.ll test
   to demonstrate they work now.

https://reviews.llvm.org/D106184




More information about the All-commits mailing list