[PATCH] D57825: IR: Add immarg attribute

Matt Arsenault via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Wed Feb 6 08:49:19 PST 2019


arsenm created this revision.
arsenm added reviewers: efriedma, hfinkel, spatel.
Herald added subscribers: jfb, dexonsmith, steven_wu, tpr, nhaehnle, wdng, jvesely, mehdi_amini, qcolombet.

This indicates an intrinsic parameter is required to be a constant,
and should not be replaced with a non-constant value.

      

Add the attribute to all AMDGPU and generic intrinsics that comments
indicate it should apply to. I scanned other target intrinsics, but I
don't see any obvious comments indicating which arguments are intended
to be only immediates.

      

This breaks one questionable testcase for the autoupgrade. I'm unclear
on whether the autoupgrade is supposed to really handle declarations 
which were never valid. The verifier fails because the attributes now refer
to a parameter past the end of the argument list.


https://reviews.llvm.org/D57825

Files:
  docs/LangRef.rst
  include/llvm/Bitcode/LLVMBitCodes.h
  include/llvm/IR/Attributes.td
  include/llvm/IR/Intrinsics.td
  include/llvm/IR/IntrinsicsAMDGPU.td
  lib/AsmParser/LLLexer.cpp
  lib/AsmParser/LLParser.cpp
  lib/AsmParser/LLToken.h
  lib/Bitcode/Reader/BitcodeReader.cpp
  lib/Bitcode/Writer/BitcodeWriter.cpp
  lib/IR/Attributes.cpp
  lib/IR/Verifier.cpp
  lib/Target/AMDGPU/SIISelLowering.cpp
  lib/Transforms/InstCombine/InstCombineCalls.cpp
  lib/Transforms/InstCombine/InstCombineSimplifyDemanded.cpp
  lib/Transforms/Utils/CodeExtractor.cpp
  test/Assembler/autoupgrade-invalid-mem-intrinsics.ll
  test/Assembler/immarg-param-attribute.ll
  test/Assembler/invalid-immarg.ll
  test/Assembler/invalid-immarg2.ll
  test/Assembler/invalid-immarg3.ll
  test/Bitcode/compatibility.ll
  test/Bitcode/upgrade-memory-intrinsics.ll
  test/CodeGen/AMDGPU/bitcast-vector-extract.ll
  test/CodeGen/AMDGPU/llvm.amdgcn.atomic.dec.ll
  test/CodeGen/AMDGPU/llvm.amdgcn.div.scale.ll
  test/CodeGen/AMDGPU/llvm.amdgcn.fcmp.ll
  test/CodeGen/AMDGPU/llvm.amdgcn.icmp.ll
  test/CodeGen/AMDGPU/llvm.amdgcn.raw.tbuffer.store.ll
  test/DebugInfo/MIR/X86/kill-after-spill.mir
  test/LTO/X86/remangle_intrinsics.ll
  test/Transforms/InferAddressSpaces/AMDGPU/intrinsics.ll
  test/Transforms/InstCombine/AMDGPU/amdgcn-demanded-vector-elts.ll
  test/Transforms/InstCombine/AMDGPU/amdgcn-intrinsics.ll
  test/Transforms/LowerExpectIntrinsic/PR33346.ll
  test/Verifier/AMDGPU/intrinsic-immarg.ll
  test/Verifier/AMDGPU/lit.local.cfg
  test/Verifier/cttz-undef-arg.ll
  test/Verifier/element-wise-atomic-memory-intrinsics.ll
  test/Verifier/immarg-param-attribute-invalid.ll
  test/Verifier/intrinsic-immarg.ll
  utils/TableGen/CodeGenIntrinsics.h
  utils/TableGen/CodeGenTarget.cpp
  utils/TableGen/IntrinsicEmitter.cpp
  utils/emacs/llvm-mode.el

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D57825.185569.patch
Type: text/x-patch
Size: 205731 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20190206/382dec82/attachment-0001.bin>


More information about the llvm-commits mailing list