]> granicus.if.org Git - llvm/commit
[AVR] Add an 'relax memory operation' pass
authorDylan McKay <dylanmckay34@gmail.com>
Tue, 13 Dec 2016 05:53:14 +0000 (05:53 +0000)
committerDylan McKay <dylanmckay34@gmail.com>
Tue, 13 Dec 2016 05:53:14 +0000 (05:53 +0000)
commit590fc8edc98a3805897fbbfa37a00c0b2eb7186c
tree0184ce93e2d2f5d188a77a0b52692a815fd88552
parent8037f016311322727cbaf5796ee99e708c307c60
[AVR] Add an 'relax memory operation' pass

Summary:
This pass will be used to relax instructions which use out of bounds
memory accesses to equivalent operations that can work with the
addresses.

The pass currently implements relaxation for the STDWPtrQRr instruction.

Without this pass, an assertion error would be hit in the pseudo expansion pass.

In the future, we will need to add more instructions to this pass. We can do
that on a case-by-case basic.

Reviewers: arsenm, kparzysz

Subscribers: wdng, llvm-commits, mgorny

Differential Revision: https://reviews.llvm.org/D27650

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@289517 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Target/AVR/AVR.h
lib/Target/AVR/AVRFrameLowering.cpp
lib/Target/AVR/AVRRelaxMemOperations.cpp [new file with mode: 0644]
lib/Target/AVR/AVRTargetMachine.cpp
lib/Target/AVR/CMakeLists.txt
test/CodeGen/AVR/relax-mem/STDWPtrQRr.mir [new file with mode: 0644]