Files
clang-p2996/llvm/test/CodeGen/AVR/store-undef.ll
Ayke van Laethem 116ab78694 [AVR] Make use of the constant value 0 in R1
The register R1 is defined to have the constant value 0 in the avr-gcc
calling convention (which we follow). Unfortunately, we don't really
make use of it. This patch replaces `LDI 0` instructions with a copy
from R1.

This reduces code size: my AVR build of compiler-rt goes from 50660 to
50240 bytes of code size, which is a 0.8% reduction. Presumably it will
also improve execution speed, although I didn't measure this.

Differential Revision: https://reviews.llvm.org/D117425
2022-01-23 17:08:01 +01:00

13 lines
251 B
LLVM

; RUN: llc < %s -march=avr | FileCheck %s
; This test checks that we can successfully lower a store
; to an undefined pointer.
; CHECK-LABEL: foo
define void @foo() {
; CHECK: st [[PTRREG:X|Y|Z]], r1
store i8 0, i8* undef, align 4
ret void
}