[all-commits] [llvm/llvm-project] 8266d4: [Attributor] Improve AAUnderlyingObjects (#104835)

Johannes Doerfert via All-commits all-commits at lists.llvm.org
Tue Aug 20 12:05:42 PDT 2024


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 8266d47cd18eaf8755fba2a496c799c931f3bf6c
      https://github.com/llvm/llvm-project/commit/8266d47cd18eaf8755fba2a496c799c931f3bf6c
  Author: Johannes Doerfert <johannes at jdoerfert.de>
  Date:   2024-08-20 (Tue, 20 Aug 2024)

  Changed paths:
    M llvm/lib/Transforms/IPO/AttributorAttributes.cpp
    M llvm/test/Transforms/Attributor/call-simplify-pointer-info.ll
    M llvm/test/Transforms/Attributor/multiple-offsets-pointer-info.ll
    M llvm/test/Transforms/Attributor/value-simplify-pointer-info.ll

  Log Message:
  -----------
  [Attributor] Improve AAUnderlyingObjects (#104835)

- Allocas and GlobalValues cannot be simplified, so we should not try.
- If we never used any assumed state, the AAUnderlyingObjects doesn't
require an additional update.
- If we have seen an object (or it's underlying object) before, we do
not need to inspect it anymore.

The original logic for "SeenObjects" was flawed and caused us to add
intermediate values to the underlying object list if a PHI or select
instruction referenced the same underlying object twice. The test
changes are all instances of this situation and we now correctly derive
`memory(none)` for the functions that only access stack memory.

---------

Co-authored-by: Shilei Tian <i at tianshilei.me>



To unsubscribe from these emails, change your notification settings at https://github.com/llvm/llvm-project/settings/notifications


More information about the All-commits mailing list