[all-commits] [llvm/llvm-project] 41d503: [IR] Enable opaque pointers by default

Nikita Popov via All-commits all-commits at lists.llvm.org
Thu Jun 2 00:41:26 PDT 2022


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 41d5033eb162cb92b684855166cabfa3983b74c6
      https://github.com/llvm/llvm-project/commit/41d5033eb162cb92b684855166cabfa3983b74c6
  Author: Nikita Popov <npopov at redhat.com>
  Date:   2022-06-02 (Thu, 02 Jun 2022)

  Changed paths:
    M clang/test/CodeGen/thinlto_backend.ll
    M clang/test/CodeGenCUDA/amdgpu-asan.cu
    M clang/test/Driver/clang-offload-wrapper.c
    M clang/test/Driver/linker-wrapper-image.c
    M llvm/docs/OpaquePointers.rst
    M llvm/lib/IR/LLVMContextImpl.cpp
    M llvm/test/Assembler/comment.ll
    M llvm/test/Assembler/invalid-vecreduce.ll
    M llvm/test/Bindings/llvm-c/globals.ll
    M llvm/test/CodeGen/AArch64/GlobalISel/combine-shift-immed-mismatch-crash.mir
    M llvm/test/CodeGen/AArch64/GlobalISel/preselect-process-phis.mir
    M llvm/test/CodeGen/AArch64/stp-opt-with-renaming-undef-assert.mir
    M llvm/test/CodeGen/AArch64/taildup-inst-dup-loc.mir
    M llvm/test/CodeGen/AMDGPU/GlobalISel/prelegalizer-combiner-divrem.mir
    M llvm/test/CodeGen/AMDGPU/merge-flat-load-store.mir
    M llvm/test/CodeGen/AMDGPU/merge-flat-with-global-load-store.mir
    M llvm/test/CodeGen/AMDGPU/merge-global-load-store.mir
    M llvm/test/CodeGen/ARM/GlobalISel/arm-select-globals-ropi-rwpi.mir
    M llvm/test/CodeGen/ARM/GlobalISel/arm-select-globals-static.mir
    M llvm/test/CodeGen/ARM/GlobalISel/thumb-select-globals-ropi-rwpi.mir
    M llvm/test/CodeGen/ARM/GlobalISel/thumb-select-globals-static.mir
    M llvm/test/CodeGen/MIR/Generic/aligned-memoperands.mir
    M llvm/test/CodeGen/Mips/cstmaterialization/isel-materialization.ll
    M llvm/test/CodeGen/PowerPC/fmf-propagation.ll
    M llvm/test/CodeGen/SystemZ/regcoal-undef-lane-4-rm-cp-commuting-def.mir
    M llvm/test/CodeGen/X86/bug47278.mir
    M llvm/test/Instrumentation/AddressSanitizer/no-globals.ll
    M llvm/test/Instrumentation/AddressSanitizer/odr-check-ignore.ll
    M llvm/test/Instrumentation/DataFlowSanitizer/arith.ll
    M llvm/test/Instrumentation/DataFlowSanitizer/origin_call.ll
    M llvm/test/Instrumentation/DataFlowSanitizer/origin_phi.ll
    M llvm/test/Instrumentation/DataFlowSanitizer/origin_select.ll
    M llvm/test/Instrumentation/DataFlowSanitizer/phi.ll
    M llvm/test/Instrumentation/DataFlowSanitizer/select.ll
    M llvm/test/Instrumentation/DataFlowSanitizer/shadow-args-zext.ll
    M llvm/test/Instrumentation/HWAddressSanitizer/X86/globals.ll
    M llvm/test/Instrumentation/InstrOrderFile/basic.ll
    M llvm/test/Instrumentation/JustMyCode/jmc-instrument-elf.ll
    M llvm/test/Instrumentation/JustMyCode/jmc-instrument-x86.ll
    M llvm/test/Instrumentation/JustMyCode/jmc-instrument.ll
    M llvm/test/Instrumentation/MemorySanitizer/SystemZ/vararg-kernel.ll
    M llvm/test/Instrumentation/MemorySanitizer/X86/vararg-too-large.ll
    M llvm/test/Instrumentation/MemorySanitizer/abs-vector.ll
    M llvm/test/Instrumentation/MemorySanitizer/array_types.ll
    M llvm/test/Instrumentation/MemorySanitizer/bmi.ll
    M llvm/test/Instrumentation/MemorySanitizer/clmul.ll
    M llvm/test/Instrumentation/MemorySanitizer/funnel_shift.ll
    M llvm/test/Instrumentation/MemorySanitizer/missing_origin.ll
    M llvm/test/Instrumentation/SanitizerCoverage/cmp-tracing-api-x86_32.ll
    M llvm/test/Instrumentation/SanitizerCoverage/cmp-tracing-api-x86_64.ll
    M llvm/test/Instrumentation/SanitizerCoverage/coff-comdat.ll
    M llvm/test/Instrumentation/SanitizerCoverage/inline-8bit-counters.ll
    M llvm/test/Instrumentation/SanitizerCoverage/inline-bool-flag.ll
    M llvm/test/Instrumentation/SanitizerCoverage/switch-tracing.ll
    M llvm/test/Linker/2003-01-30-LinkerRename.ll
    M llvm/test/Linker/2008-07-06-AliasFnDecl.ll
    M llvm/test/Linker/2008-07-06-AliasWeakDest.ll
    M llvm/test/Linker/AppendingLinkage.ll
    M llvm/test/Linker/Inputs/2003-01-30-LinkerRename.ll
    M llvm/test/Linker/Inputs/only-needed-debug-metadata.ll
    M llvm/test/Linker/Inputs/pr26037.ll
    M llvm/test/Linker/alias-2.ll
    M llvm/test/Linker/alias-threadlocal.ll
    M llvm/test/Linker/comdat-any.ll
    M llvm/test/Linker/ctors2.ll
    M llvm/test/Linker/ctors3.ll
    M llvm/test/Linker/funcimport.ll
    M llvm/test/Linker/ifunc.ll
    M llvm/test/Linker/wrong-addrspace-gv-declaration.ll
    M llvm/test/ThinLTO/X86/Inputs/import-ro-constant-bar.ll
    M llvm/test/ThinLTO/X86/Inputs/module_asm.ll
    M llvm/test/ThinLTO/X86/autoupgrade.ll
    M llvm/test/ThinLTO/X86/deadstrip.ll
    M llvm/test/ThinLTO/X86/dot-dumper2.ll
    M llvm/test/ThinLTO/X86/funcimport-debug.ll
    M llvm/test/ThinLTO/X86/globals-import-const-fold.ll
    M llvm/test/ThinLTO/X86/import-dsolocal.ll
    M llvm/test/ThinLTO/X86/import-ro-constant.ll
    M llvm/test/ThinLTO/X86/index-const-prop-comdat.ll
    M llvm/test/ThinLTO/X86/index-const-prop-full-lto.ll
    M llvm/test/ThinLTO/X86/index-const-prop-ldst.ll
    M llvm/test/ThinLTO/X86/personality-local.ll
    M llvm/test/ThinLTO/X86/referenced_by_constant.ll
    M llvm/test/ThinLTO/X86/weak_globals_import.ll
    M llvm/test/Transforms/BlockExtractor/extract-blocks-with-groups.ll
    M llvm/test/Transforms/CodeExtractor/PartialInlineAttributes.ll
    M llvm/test/Transforms/CodeExtractor/PartialInlineDebug.ll
    M llvm/test/Transforms/CodeExtractor/PartialInlineVarArgsDebug.ll
    M llvm/test/Transforms/FunctionImport/Inputs/funcimport.ll
    M llvm/test/Transforms/FunctionImport/funcimport.ll
    M llvm/test/Transforms/FunctionImport/funcimport_alias.ll
    M llvm/test/Transforms/GCOVProfiling/atomic-counter.ll
    M llvm/test/Transforms/GCOVProfiling/function-numbering.ll
    M llvm/test/Transforms/GCOVProfiling/noprofile.ll
    M llvm/test/Transforms/GCOVProfiling/reset.ll
    M llvm/test/Transforms/HotColdSplit/phi-with-distinct-outlined-values.ll
    M llvm/test/Transforms/HotColdSplit/split-phis-in-exit-blocks.ll
    M llvm/test/Transforms/IROutliner/different-order-phi-merges.ll
    M llvm/test/Transforms/IROutliner/duplicate-merging-phis.ll
    M llvm/test/Transforms/IROutliner/exit-block-phi-node-value-attribution.ll
    M llvm/test/Transforms/IROutliner/exit-phi-nodes-incoming-value-constant-argument.ll
    M llvm/test/Transforms/IROutliner/no-external-block-entries.ll
    M llvm/test/Transforms/IROutliner/one-external-incoming-block-phi-node.ll
    M llvm/test/Transforms/IROutliner/phi-node-exit-path-order.ll
    M llvm/test/Transforms/LowerTypeTests/export-alias.ll
    M llvm/test/Transforms/LowerTypeTests/export-allones.ll
    M llvm/test/Transforms/LowerTypeTests/export-bytearray.ll
    M llvm/test/Transforms/LowerTypeTests/export-icall.ll
    M llvm/test/Transforms/LowerTypeTests/export-inline.ll
    M llvm/test/Transforms/LowerTypeTests/export-single.ll
    M llvm/test/Transforms/LowerTypeTests/pr37625.ll
    M llvm/test/Transforms/NewGVN/phi-of-ops-simplified-to-existing-value-then-changes-again.ll
    M llvm/test/Transforms/NewGVN/pr42422-phi-of-ops.ll
    M llvm/test/Transforms/PGOProfile/branch1.ll
    M llvm/test/Transforms/PGOProfile/branch2.ll
    M llvm/test/Transforms/PGOProfile/counter_promo.ll
    M llvm/test/Transforms/PGOProfile/criticaledge.ll
    M llvm/test/Transforms/PGOProfile/instr_entry_bb.ll
    M llvm/test/Transforms/PGOProfile/loop1.ll
    M llvm/test/Transforms/PGOProfile/loop2.ll
    M llvm/test/Transforms/PGOProfile/preinline.ll
    M llvm/test/Transforms/PGOProfile/single_bb.ll
    M llvm/test/Transforms/PGOProfile/switch.ll
    M llvm/test/Transforms/PGOProfile/thinlto_indirect_call_promotion.ll
    M llvm/test/Transforms/PGOProfile/thinlto_samplepgo_icp2.ll
    M llvm/test/Transforms/PhaseOrdering/X86/simplifycfg-late.ll
    M llvm/test/Transforms/RewriteStatepointsForGC/call-gc-result.ll
    M llvm/test/Transforms/RewriteStatepointsForGC/deopt-intrinsic-cconv.ll
    M llvm/test/Transforms/RewriteStatepointsForGC/deopt-lowering-attrs.ll
    M llvm/test/Transforms/SimplifyCFG/X86/disable-lookup-table.ll
    M llvm/test/Transforms/SimplifyCFG/X86/switch-covered-bug.ll
    M llvm/test/Transforms/SimplifyCFG/X86/switch-table-bug.ll
    M llvm/test/Transforms/SimplifyCFG/X86/switch-to-lookup-large-types.ll
    M llvm/test/Transforms/SimplifyCFG/rangereduce.ll
    M llvm/test/Transforms/Util/add-TLI-mappings.ll
    M llvm/test/Verifier/byval-1.ll
    M llvm/test/Verifier/get-active-lane-mask.ll
    M llvm/test/Verifier/jumptable.ll
    M llvm/test/Verifier/llvm.compiler_used-invalid-type.ll
    M llvm/test/Verifier/llvm.used-invalid-type.ll
    M llvm/test/Verifier/llvm.used-invalid-type2.ll
    M llvm/test/Verifier/metadata-function-dbg.ll
    M llvm/test/tools/llvm-extract/extract-blocks-with-groups.ll
    M llvm/test/tools/llvm-link/archive-only-needed.ll
    M llvm/unittests/Frontend/OpenMPIRBuilderTest.cpp
    M llvm/unittests/IR/ConstantsTest.cpp
    M llvm/unittests/IR/IRBuilderTest.cpp
    M llvm/unittests/IR/PatternMatch.cpp
    M llvm/unittests/IR/TypesTest.cpp
    M llvm/unittests/IR/ValueTest.cpp
    M llvm/unittests/IR/VerifierTest.cpp
    M mlir/test/Target/LLVMIR/amx.mlir
    M mlir/test/Target/LLVMIR/arm-sve.mlir
    M mlir/test/Target/LLVMIR/llvmir-intrinsics.mlir
    M mlir/test/Target/LLVMIR/llvmir-types.mlir
    M mlir/test/Target/LLVMIR/llvmir.mlir
    M mlir/test/Target/LLVMIR/nvvmir.mlir
    M mlir/test/Target/LLVMIR/openacc-llvm.mlir
    M mlir/test/Target/LLVMIR/openmp-llvm.mlir
    M mlir/test/Target/LLVMIR/openmp-nested.mlir
    M mlir/test/Target/LLVMIR/openmp-reduction.mlir
    M polly/test/CodeGen/non-affine-exit-node-dominance.ll
    M polly/test/CodeGen/non-affine-region-implicit-store.ll
    M polly/test/CodeGen/out-of-scop-phi-node-use.ll
    M polly/test/CodeGen/synthesizable_phi_write_after_loop.ll
    M polly/test/ScopInfo/out-of-scop-use-in-region-entry-phi-node-nonaffine-subregion.ll

  Log Message:
  -----------
  [IR] Enable opaque pointers by default

This enabled opaque pointers by default in LLVM. The effect of this
is twofold:

* If IR that contains *neither* explicit ptr nor %T* types is passed
  to tools, we will now use opaque pointer mode, unless
  -opaque-pointers=0 has been explicitly passed.
* Users of LLVM as a library will now default to opaque pointers.
  It is possible to opt-out by calling setOpaquePointers(false) on
  LLVMContext.

A cmake option to toggle this default will not be provided. Frontends
or other tools that want to (temporarily) keep using typed pointers
should disable opaque pointers via LLVMContext.

Differential Revision: https://reviews.llvm.org/D126689




More information about the All-commits mailing list