[all-commits] [llvm/llvm-project] e37d73: Recommit: [llvm][ARM][GlobalOpt]Add widen global a...

Nashe Mncube via All-commits all-commits at lists.llvm.org
Thu Oct 24 02:12:23 PDT 2024


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: e37d736def5b95a2710f92881b5fc8b0494d8a05
      https://github.com/llvm/llvm-project/commit/e37d736def5b95a2710f92881b5fc8b0494d8a05
  Author: Nashe Mncube <nashe.mncube at arm.com>
  Date:   2024-10-24 (Thu, 24 Oct 2024)

  Changed paths:
    M llvm/include/llvm/Analysis/TargetTransformInfo.h
    M llvm/include/llvm/Analysis/TargetTransformInfoImpl.h
    M llvm/lib/Analysis/TargetTransformInfo.cpp
    M llvm/lib/Target/ARM/ARMTargetTransformInfo.cpp
    M llvm/lib/Target/ARM/ARMTargetTransformInfo.h
    M llvm/lib/Transforms/IPO/GlobalOpt.cpp
    A llvm/test/Transforms/GlobalOpt/ARM/arm-widen-dest-non-array.ll
    A llvm/test/Transforms/GlobalOpt/ARM/arm-widen-global-dest.ll
    A llvm/test/Transforms/GlobalOpt/ARM/arm-widen-non-byte-array.ll
    A llvm/test/Transforms/GlobalOpt/ARM/arm-widen-non-const-global.ll
    A llvm/test/Transforms/GlobalOpt/ARM/arm-widen-string-multi-use.ll
    A llvm/test/Transforms/GlobalOpt/ARM/arm-widen-strings-1.ll
    A llvm/test/Transforms/GlobalOpt/ARM/arm-widen-strings-2.ll
    A llvm/test/Transforms/GlobalOpt/ARM/arm-widen-strings-lengths-dont-match.ll
    A llvm/test/Transforms/GlobalOpt/ARM/arm-widen-strings-more-than-64-bytes.ll
    A llvm/test/Transforms/GlobalOpt/ARM/arm-widen-strings-ptrtoint.ll
    A llvm/test/Transforms/GlobalOpt/ARM/arm-widen-strings-struct-test.ll
    A llvm/test/Transforms/GlobalOpt/ARM/arm-widen-strings-volatile.ll
    A llvm/test/Transforms/GlobalOpt/ARM/lit.local.cfg

  Log Message:
  -----------
  Recommit: [llvm][ARM][GlobalOpt]Add widen global arrays pass  (#113289)

This is a recommit of #107120 . The original PR was approved but failed
buildbot. The newly added tests should only be run for compilers that
support the ARM target. This has been resolved by adding a config file
for these tests.

- Pass optimizes memcpy's by padding out destinations and sources to a
  full word to make ARM backend generate full word loads instead of
  loading a single byte (ldrb) and/or half word (ldrh). Only pads
  destination when it's a stack allocated constant size array and source
  when it's constant string. Heuristic to decide whether to pad or not
  is very basic and could be improved to allow more examples to be
  padded.
- Pass works at the midend level



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