llvm-project/llvm/test/CodeGen/AVR
Ayke van Laethem 5527b21516
[AVR] Do not use R0/R1 on avrtiny
This patch makes sure the compiler uses R16/R17 on avrtiny (attiny10
etc) instead of R0/R1.

Some notes:

  * For the NEGW and ROLB instructions, it adds an explicit zero
    register. This is necessary because the zero register is different
    on avrtiny (and InstrInfo Uses lines need a fixed register).
  * Not entirely sure about putting all tests in features/avr-tiny.ll,
    but it doesn't seem like the "target-cpu"="attiny10" attribute
    works.

Updates: https://github.com/llvm/llvm-project/issues/53459

Differential Revision: https://reviews.llvm.org/D138582
2022-11-28 18:05:55 +01:00
..
atomics [FileCheck] Catch missspelled directives. 2022-05-26 11:37:19 +01:00
calling-conv/c [AVR] Reject/Reserve R0~R15 on AVRTiny. 2022-03-24 02:33:51 +00:00
features [AVR] Do not use R0/R1 on avrtiny 2022-11-28 18:05:55 +01:00
inline-asm [Tests] Add elementtype attribute to indirect inline asm operands (NFC) 2022-01-06 14:23:51 +01:00
integration
intrinsics
pseudo [AVR] Do not use R0/R1 on avrtiny 2022-11-28 18:05:55 +01:00
PR31344.ll
PR31345.ll
PR37143.ll
add.ll
alloca.ll
and.ll
avr-rust-issue-123.ll
block-address-is-in-progmem-space.ll
branch-relaxation-long.ll
branch-relaxation.ll
brind.ll
call.ll [AVR] Generate 'rcall' instead of 'call' on avr2 and avr25 2022-03-23 02:00:15 +00:00
clear-bss.ll
cmp.ll
com.ll
copy-data-to-ram.ll
ctlz.ll
ctors.ll
ctpop.ll
cttz.ll
directmem.ll
div.ll
dynalloca.ll [AVR] Remove redundant dynalloca SP save/restore pass 2022-01-19 14:22:13 +01:00
elpm.ll [AVR] Remove unused register scavenger 2022-11-27 15:31:12 +01:00
eor.ll
expand-integer-failure.ll
frame.ll
frmidx-iterator-bug.ll
global-aliases.ll [AVR][MC] Emit some aliases for GPRs and IO registers 2022-03-24 02:08:22 +00:00
hardware-mul.ll
high-pressure-on-ptrregs.ll
icall-func-pointer-correct-addr-space.ll
impossible-reg-to-reg-copy.ll
interrupts.ll [AVR] Only push and clear R1 in interrupts when necessary 2022-08-15 14:29:38 +02:00
io.ll
issue-cannot-select-bswap.ll
issue-regalloc-stackframe-folding-earlyclobber.ll
jmp-long.ll
large-return-size.ll
lit.local.cfg
load.ll
lower-formal-args-struct-return.ll
lower-formal-arguments-assertion.ll
lpmx.ll [AVR] Remove regalloc workaround for LDDWRdPtrQ 2022-01-23 17:08:00 +01:00
neg.ll
no-print-operand-twice.ll
or.ll
pr43443-ctor-alias.ll [AVR] Fix a potential assert failure 2022-02-11 02:25:58 +00:00
pre-schedule.ll
progmem-extended.ll
progmem.ll
rem.ll
return.ll [AVR] Do not use R0/R1 on avrtiny 2022-11-28 18:05:55 +01:00
rot.ll
runtime-trig.ll
rust-avr-bug-37.ll
rust-avr-bug-95.ll
rust-avr-bug-99.ll
rust-avr-bug-112.ll
rust-bug-98167.ll [AVR] Fix expanding MOVW for overlapping registers 2022-06-26 17:20:07 +08:00
rust-trait-object.ll
sections.ll [AVR][MC] Generate section '.progmemX.data' for extended flash banks 2022-01-20 02:53:10 +00:00
select-must-add-unconditional-jump.ll
sext.ll
shift-expand.ll
shift.ll [AVR] Optimize int16 airthmetic right shift for shift amount 7/14/15 2022-03-26 06:53:27 +00:00
sign-extension.ll [AVR] Optimize int16 airthmetic right shift for shift amount 7/14/15 2022-03-26 06:53:27 +00:00
smul-with-overflow.ll [AVR] Make use of the constant value 0 in R1 2022-01-23 17:08:01 +01:00
software-mul.ll
std-ldd-immediate-overflow.ll
stdwstk.ll [AVR] Always expand STDSPQRr & STDWSPQRr 2022-05-05 03:10:59 +00:00
store-undef.ll [AVR] Make use of the constant value 0 in R1 2022-01-23 17:08:01 +01:00
store.ll
struct.ll
sub.ll
trunc.ll
umul-with-overflow.ll [AVR] Make use of the constant value 0 in R1 2022-01-23 17:08:01 +01:00
umul.with.overflow.i16-bug.ll
unaligned-atomic-ops.ll [AVR] Support unaligned store 2022-08-15 14:29:37 +02:00
varargs.ll
xor.ll
zeroreg.ll [AVR] Only push and clear R1 in interrupts when necessary 2022-08-15 14:29:38 +02:00
zext.ll