[PATCH] D65582: IR: accept and print numbered %N names for function args

Tim Northover via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Thu Aug 1 08:28:35 PDT 2019


t.p.northover created this revision.
t.p.northover added a reviewer: rnk.
Herald added subscribers: s.egerton, Jim, asbirlea, jocewei, PkmX, jfb, dexonsmith, the_o, brucehoult, MartinMosbeck, rogfer01, steven_wu, atanasyan, edward-jones, zzheng, jrtc27, niosHD, sabuasal, apazos, simoncook, johnrusso, rbar, asb, kbarton, aheejin, hiraditya, sbc100, javed.absar, nhaehnle, jvesely, nemanjai, mcrosier, mehdi_amini, dylanmckay.
Herald added a reviewer: jdoerfert.
Herald added a reviewer: jdoerfert.
Herald added projects: clang, LLVM.

Currently unnamed function arguments get assigned the first available numbers %0, %1, ... and developers are just expected to know that and count arguments if needed. It would be better to print out the numbers explicitly, like we do for instructions in the body.

It's worth noting that updating front-ends' tests will probably be a bit of work, but I've got a (embarrassingly bad) script that gets about 80-90% of the way there. I'll reply to any commit with it attached.


Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D65582

Files:
  clang/test/CXX/except/except.spec/p14-ir.cpp
  clang/test/CodeGen/64bit-swiftcall.c
  clang/test/CodeGen/arm-arguments.c
  clang/test/CodeGen/arm-swiftcall.c
  clang/test/CodeGen/arm64-arguments.c
  clang/test/CodeGen/attr-cpuspecific.c
  clang/test/CodeGen/attr-naked.c
  clang/test/CodeGen/attr-target-mv-va-args.c
  clang/test/CodeGen/attr-target-mv.c
  clang/test/CodeGen/blocks.c
  clang/test/CodeGen/cfi-check-fail.c
  clang/test/CodeGen/cfi-check-fail2.c
  clang/test/CodeGen/long_double_fp128.cpp
  clang/test/CodeGen/mingw-long-double.c
  clang/test/CodeGen/mips-vector-arg.c
  clang/test/CodeGen/mips64-padding-arg.c
  clang/test/CodeGen/pass-object-size.c
  clang/test/CodeGen/pch-dllexport.cpp
  clang/test/CodeGen/ppc64-align-struct.c
  clang/test/CodeGen/ppc64-qpx-vector.c
  clang/test/CodeGen/ppc64-vector.c
  clang/test/CodeGen/regcall.c
  clang/test/CodeGen/riscv32-ilp32-ilp32f-ilp32d-abi.c
  clang/test/CodeGen/riscv32-ilp32d-abi.c
  clang/test/CodeGen/riscv32-ilp32f-ilp32d-abi.c
  clang/test/CodeGen/riscv64-lp64-abi.c
  clang/test/CodeGen/riscv64-lp64-lp64f-abi.c
  clang/test/CodeGen/riscv64-lp64-lp64f-lp64d-abi.c
  clang/test/CodeGen/riscv64-lp64d-abi.c
  clang/test/CodeGen/riscv64-lp64f-lp64d-abi.c
  clang/test/CodeGen/sanitize-thread-no-checking-at-run-time.m
  clang/test/CodeGen/systemz-abi-vector.c
  clang/test/CodeGen/systemz-abi.c
  clang/test/CodeGen/systemz-inline-asm.c
  clang/test/CodeGen/vectorcall.c
  clang/test/CodeGen/win64-i128.c
  clang/test/CodeGen/windows-swiftcall.c
  clang/test/CodeGen/x86_32-arguments-darwin.c
  clang/test/CodeGen/x86_32-arguments-linux.c
  clang/test/CodeGen/x86_32-arguments-realign.c
  clang/test/CodeGenCUDA/usual-deallocators.cu
  clang/test/CodeGenCXX/arm-swiftcall.cpp
  clang/test/CodeGenCXX/attr-cpuspecific.cpp
  clang/test/CodeGenCXX/attr-target-mv-diff-ns.cpp
  clang/test/CodeGenCXX/attr-target-mv-inalloca.cpp
  clang/test/CodeGenCXX/attr-target-mv-member-funcs.cpp
  clang/test/CodeGenCXX/attr-target-mv-out-of-line-defs.cpp
  clang/test/CodeGenCXX/attr-target-mv-overloads.cpp
  clang/test/CodeGenCXX/copy-constructor-synthesis-2.cpp
  clang/test/CodeGenCXX/copy-constructor-synthesis.cpp
  clang/test/CodeGenCXX/cxx0x-delegating-ctors.cpp
  clang/test/CodeGenCXX/dllexport-members.cpp
  clang/test/CodeGenCXX/dllexport.cpp
  clang/test/CodeGenCXX/dllimport-members.cpp
  clang/test/CodeGenCXX/dllimport-runtime-fns.cpp
  clang/test/CodeGenCXX/exceptions.cpp
  clang/test/CodeGenCXX/implicit-copy-constructor.cpp
  clang/test/CodeGenCXX/mangle.cpp
  clang/test/CodeGenCXX/member-templates.cpp
  clang/test/CodeGenCXX/microsoft-abi-arg-order.cpp
  clang/test/CodeGenCXX/microsoft-abi-byval-sret.cpp
  clang/test/CodeGenCXX/microsoft-abi-byval-thunks.cpp
  clang/test/CodeGenCXX/microsoft-abi-byval-vararg.cpp
  clang/test/CodeGenCXX/microsoft-abi-member-pointers.cpp
  clang/test/CodeGenCXX/microsoft-abi-sret-and-byval.cpp
  clang/test/CodeGenCXX/microsoft-abi-vtables-multiple-nonvirtual-inheritance-this-adjustment.cpp
  clang/test/CodeGenCXX/noescape.cpp
  clang/test/CodeGenCXX/pod-member-memcpys.cpp
  clang/test/CodeGenCXX/regcall.cpp
  clang/test/CodeGenCXX/runtime-dllstorage.cpp
  clang/test/CodeGenCXX/static-destructor.cpp
  clang/test/CodeGenCXX/virtual-bases.cpp
  clang/test/CodeGenCXX/wasm-eh.cpp
  clang/test/CodeGenCXX/x86_32-arguments.cpp
  clang/test/CodeGenCXX/x86_64-arguments.cpp
  clang/test/CodeGenCoroutines/coro-await.cpp
  clang/test/CodeGenCoroutines/coro-gro-nrvo.cpp
  clang/test/CodeGenCoroutines/coro-params.cpp
  clang/test/CodeGenObjC/arc-blocks.m
  clang/test/CodeGenObjC/debug-info-blocks.m
  clang/test/CodeGenObjC/strong-in-c-struct.m
  clang/test/CodeGenObjC/weak-in-c-struct.m
  clang/test/CodeGenObjCXX/arc-indirect.mm
  clang/test/CodeGenObjCXX/arc-mangle.mm
  clang/test/CodeGenObjCXX/implicit-copy-constructor.mm
  clang/test/CodeGenObjCXX/microsoft-abi-arc-param-order.mm
  clang/test/CodeGenObjCXX/property-object-reference-2.mm
  clang/test/CodeGenOpenCL/amdgpu-enqueue-kernel.cl
  clang/test/CodeGenOpenCL/cl20-device-side-enqueue.cl
  clang/test/OpenMP/declare_reduction_codegen.c
  clang/test/OpenMP/declare_reduction_codegen.cpp
  clang/test/OpenMP/for_reduction_codegen.cpp
  clang/test/OpenMP/for_reduction_codegen_UDR.cpp
  clang/test/OpenMP/function-attr.cpp
  clang/test/OpenMP/nvptx_target_parallel_reduction_codegen.cpp
  clang/test/OpenMP/nvptx_teams_reduction_codegen.cpp
  clang/test/OpenMP/openmp_offload_registration.cpp
  clang/test/OpenMP/parallel_reduction_codegen.cpp
  clang/test/OpenMP/sections_reduction_codegen.cpp
  clang/test/OpenMP/single_codegen.cpp
  clang/test/OpenMP/target_codegen_registration.cpp
  clang/test/OpenMP/target_depend_codegen.cpp
  clang/test/OpenMP/target_enter_data_depend_codegen.cpp
  clang/test/OpenMP/target_exit_data_depend_codegen.cpp
  clang/test/OpenMP/target_parallel_codegen_registration.cpp
  clang/test/OpenMP/target_parallel_depend_codegen.cpp
  clang/test/OpenMP/target_parallel_for_codegen_registration.cpp
  clang/test/OpenMP/target_parallel_for_depend_codegen.cpp
  clang/test/OpenMP/target_parallel_for_simd_codegen_registration.cpp
  clang/test/OpenMP/target_parallel_for_simd_depend_codegen.cpp
  clang/test/OpenMP/target_simd_codegen_registration.cpp
  clang/test/OpenMP/target_simd_depend_codegen.cpp
  clang/test/OpenMP/target_teams_codegen_registration.cpp
  clang/test/OpenMP/target_teams_depend_codegen.cpp
  clang/test/OpenMP/target_teams_distribute_codegen_registration.cpp
  clang/test/OpenMP/target_teams_distribute_depend_codegen.cpp
  clang/test/OpenMP/target_teams_distribute_parallel_for_depend_codegen.cpp
  clang/test/OpenMP/target_teams_distribute_parallel_for_simd_codegen_registration.cpp
  clang/test/OpenMP/target_teams_distribute_parallel_for_simd_depend_codegen.cpp
  clang/test/OpenMP/target_teams_distribute_simd_codegen_registration.cpp
  clang/test/OpenMP/target_teams_distribute_simd_depend_codegen.cpp
  clang/test/OpenMP/target_update_depend_codegen.cpp
  clang/test/OpenMP/task_codegen.cpp
  clang/test/OpenMP/task_firstprivate_codegen.cpp
  clang/test/OpenMP/task_private_codegen.cpp
  clang/test/OpenMP/taskgroup_task_reduction_codegen.cpp
  clang/test/OpenMP/taskloop_firstprivate_codegen.cpp
  clang/test/OpenMP/taskloop_lastprivate_codegen.cpp
  clang/test/OpenMP/taskloop_private_codegen.cpp
  clang/test/OpenMP/taskloop_reduction_codegen.cpp
  clang/test/OpenMP/taskloop_simd_firstprivate_codegen.cpp
  clang/test/OpenMP/taskloop_simd_lastprivate_codegen.cpp
  clang/test/OpenMP/taskloop_simd_private_codegen.cpp
  clang/test/OpenMP/taskloop_simd_reduction_codegen.cpp
  clang/test/OpenMP/threadprivate_codegen.cpp
  llvm/lib/AsmParser/LLParser.cpp
  llvm/lib/IR/AsmWriter.cpp
  llvm/test/Assembler/block-labels.ll
  llvm/test/Assembler/byval-type-attr.ll
  llvm/test/Assembler/call-nonzero-program-addrspace-2.ll
  llvm/test/Assembler/incorrect-tdep-attrs-parsing.ll
  llvm/test/Assembler/invalid-arg-num-1.ll
  llvm/test/Assembler/invalid-arg-num-2.ll
  llvm/test/Assembler/invalid-arg-num-3.ll
  llvm/test/Bindings/llvm-c/debug_info.ll
  llvm/test/Bitcode/attributes-3.3.ll
  llvm/test/Bitcode/attributes.ll
  llvm/test/Bitcode/avr-calling-conventions.ll
  llvm/test/CodeGen/AMDGPU/rewrite-out-arguments-address-space.ll
  llvm/test/CodeGen/AMDGPU/rewrite-out-arguments.ll
  llvm/test/CodeGen/WinEH/wineh-comdat.ll
  llvm/test/CodeGen/X86/win32-eh-available-externally.ll
  llvm/test/Feature/strip_names.ll
  llvm/test/Instrumentation/DataFlowSanitizer/abilist.ll
  llvm/test/Instrumentation/DataFlowSanitizer/debug-nonzero-labels.ll
  llvm/test/Instrumentation/DataFlowSanitizer/memset.ll
  llvm/test/LTO/Resolution/X86/comdat.ll
  llvm/test/Linker/comdat16.ll
  llvm/test/ThinLTO/X86/linkonce_resolution_comdat.ll
  llvm/test/Transforms/ArgumentPromotion/X86/thiscall.ll
  llvm/test/Transforms/ArgumentPromotion/naked_functions.ll
  llvm/test/Transforms/Coroutines/coro-early.ll
  llvm/test/Transforms/FunctionAttrs/align.ll
  llvm/test/Transforms/FunctionAttrs/comdat-ipo.ll
  llvm/test/Transforms/FunctionAttrs/dereferenceable.ll
  llvm/test/Transforms/FunctionAttrs/naked_functions.ll
  llvm/test/Transforms/FunctionAttrs/noalias_returned.ll
  llvm/test/Transforms/FunctionAttrs/nofree-attributor.ll
  llvm/test/Transforms/FunctionAttrs/nosync.ll
  llvm/test/Transforms/FunctionAttrs/nounwind.ll
  llvm/test/Transforms/FunctionAttrs/readnone.ll
  llvm/test/Transforms/FunctionAttrs/willreturn.ll
  llvm/test/Transforms/GlobalOpt/naked_functions.ll
  llvm/test/Transforms/JumpThreading/thread-loads.ll
  llvm/test/Transforms/LICM/hoisting.ll
  llvm/test/Transforms/MergeFunc/comdat.ll
  llvm/test/Transforms/MergeFunc/phi-check-blocks.ll
  llvm/test/Transforms/MergeFunc/weak-small.ll
  llvm/test/Transforms/WholeProgramDevirt/branch-funnel.ll
  llvm/test/Transforms/WholeProgramDevirt/export-single-impl.ll
  llvm/unittests/IR/AsmWriterTest.cpp

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D65582.212824.patch
Type: text/x-patch
Size: 471493 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20190801/9840625c/attachment-0001.bin>


More information about the cfe-commits mailing list