[all-commits] [llvm/llvm-project] b4bae3: [clang][CodeGen] Fix global variables initialized ...

Maurice Heumann via All-commits all-commits at lists.llvm.org
Sun Jul 2 14:25:44 PDT 2023


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: b4bae3fd8ede10026a6f6e1caaec476125f5ac67
      https://github.com/llvm/llvm-project/commit/b4bae3fd8ede10026a6f6e1caaec476125f5ac67
  Author: Eli Friedman <efriedma at quicinc.com>
  Date:   2023-07-02 (Sun, 02 Jul 2023)

  Changed paths:
    M clang/lib/CodeGen/CGDecl.cpp
    M clang/test/CodeGenCXX/inheriting-constructor.cpp

  Log Message:
  -----------
  [clang][CodeGen] Fix global variables initialized with an inheriting constructor.

For inheriting constructors which have to be emitted inline, we use
CodeGenFunction::EmitInlinedInheritingCXXConstructorCall to emit the
required code.  This code uses EmitParmDecl to emit the "this" argument
of the call.  EmitParmDecl then helpfully calls llvm::Value::setName to
name the parameter... which renames the global variable to "this".

To fix the issue, skip the setName call on globals.

The renaming still has slightly weird results in other cases (it renames
all local variables initialized with an inlined inheriting constructor
to "this"), but the result isn't actually wrong in those cases, so I'm
just going to leave it for now.

Fixes https://github.com/llvm/llvm-project/issues/63618

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


  Commit: 92a9c30c61da7f973d55cd84fade424159b9cac9
      https://github.com/llvm/llvm-project/commit/92a9c30c61da7f973d55cd84fade424159b9cac9
  Author: Maurice Heumann <MauriceHeumann at gmail.com>
  Date:   2023-07-02 (Sun, 02 Jul 2023)

  Changed paths:
    M llvm/lib/Target/ARM/ARMLoadStoreOptimizer.cpp
    M llvm/test/CodeGen/ARM/copy-by-struct-i32.ll
    M llvm/test/CodeGen/ARM/ha-alignstack-call.ll
    M llvm/test/CodeGen/ARM/indexed-mem.ll
    M llvm/test/CodeGen/ARM/prera-ldst-aliasing.mir
    M llvm/test/CodeGen/ARM/prera-ldst-insertpt.mir
    M llvm/test/CodeGen/ARM/vector-DAGCombine.ll
    M llvm/test/CodeGen/Thumb2/LowOverheadLoops/while-loops.ll
    M llvm/test/CodeGen/Thumb2/mve-float16regloops.ll
    M llvm/test/CodeGen/Thumb2/mve-float32regloops.ll
    M llvm/test/CodeGen/Thumb2/mve-gather-ptrs.ll
    M llvm/test/CodeGen/Thumb2/mve-masked-ldst.ll
    M llvm/test/CodeGen/Thumb2/mve-satmul-loops.ll
    M llvm/test/CodeGen/Thumb2/mve-scatter-ptrs.ll
    M llvm/test/CodeGen/Thumb2/mve-vecreduce-slp.ll
    M llvm/test/CodeGen/Thumb2/mve-vld3.ll
    M llvm/test/CodeGen/Thumb2/mve-vst2.ll
    M llvm/test/CodeGen/Thumb2/postinc-distribute.mir

  Log Message:
  -----------
  [ARM] Adjust strd/ldrd codegen alignment requirements

In change https://reviews.llvm.org/D152790, it was discovered that the
alignment requirement calculation for LDRD/STRD codegen was suboptimal
and the calculation for volatile loads and stores was adjusted.

This change here adopts the calculation for the remaining non-volatile
occurances.

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


Compare: https://github.com/llvm/llvm-project/compare/6954cb54252b...92a9c30c61da


More information about the All-commits mailing list