[all-commits] [llvm/llvm-project] beee09: [CGBlocks] Don't assume presence of bitcast

Nikita Popov via All-commits all-commits at lists.llvm.org
Wed Mar 23 07:40:03 PDT 2022


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: beee09687f4602dba82a378bad94ed9657c97339
      https://github.com/llvm/llvm-project/commit/beee09687f4602dba82a378bad94ed9657c97339
  Author: Nikita Popov <npopov at redhat.com>
  Date:   2022-03-23 (Wed, 23 Mar 2022)

  Changed paths:
    M clang/lib/CodeGen/CGBlocks.cpp

  Log Message:
  -----------
  [CGBlocks] Don't assume presence of bitcast

With opaque pointers, the bitcast constexpr will not be present.


  Commit: 5c6752d4ade99ecdaca391cf14b7d7e5c9a75fc1
      https://github.com/llvm/llvm-project/commit/5c6752d4ade99ecdaca391cf14b7d7e5c9a75fc1
  Author: Nikita Popov <npopov at redhat.com>
  Date:   2022-03-23 (Wed, 23 Mar 2022)

  Changed paths:
    M clang/lib/CodeGen/CGObjCMac.cpp

  Log Message:
  -----------
  [CGObjCMac] Check global value type instead of poitner type

As we're going to reassign the initializer, we actually need the
value types to match, not just the pointer types. This is only
relevant with opaque pointers.


  Commit: ba365561455e467664df8c656f111b26fd1f81de
      https://github.com/llvm/llvm-project/commit/ba365561455e467664df8c656f111b26fd1f81de
  Author: Nikita Popov <npopov at redhat.com>
  Date:   2022-03-23 (Wed, 23 Mar 2022)

  Changed paths:
    M clang/test/CoverageMapping/ir.c
    M llvm/lib/Transforms/Instrumentation/InstrProfiling.cpp

  Log Message:
  -----------
  [InstrProfiling] Account for missing bitcast/GEP

This code is supposed to clean up a constexpr bitcast/GEP, but
with opaque pointers this ends up dropping references to the
global.


  Commit: 40d7d2ed66c20ccdd1a5e5a4c76879ca0bb40918
      https://github.com/llvm/llvm-project/commit/40d7d2ed66c20ccdd1a5e5a4c76879ca0bb40918
  Author: Nikita Popov <npopov at redhat.com>
  Date:   2022-03-23 (Wed, 23 Mar 2022)

  Changed paths:
    M llvm/lib/Bitcode/Writer/BitcodeWriter.cpp

  Log Message:
  -----------
  [Bitcode] Check for live uses of llvm.cmdline/embedded.module

The one use check here is very misleading: At this point we should
actually have no uses, because the only possible use in llvm.used
was already dropped. But because the use in llvm.used is generally
bitcasted, we end up still having one dead use here.

What we actually want to check is that there are no live uses, for
which a helper has recently been added.


  Commit: a8690ba9d0147bbca8d9031ef1596c4de025e6ed
      https://github.com/llvm/llvm-project/commit/a8690ba9d0147bbca8d9031ef1596c4de025e6ed
  Author: Nikita Popov <npopov at redhat.com>
  Date:   2022-03-23 (Wed, 23 Mar 2022)

  Changed paths:
    M clang/lib/CodeGen/CGExpr.cpp

  Log Message:
  -----------
  [CGExpr] Perform bitcast unconditionally

The way the check is written is not compatible with opaque
pointers -- while we don't need to change the IR pointer type,
we do need to change the element type stored in the Address.


Compare: https://github.com/llvm/llvm-project/compare/9f63cd763ec8...a8690ba9d014


More information about the All-commits mailing list