[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