summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/AVR/AVR.h
diff options
context:
space:
mode:
authorDylan McKay <dylanmckay34@gmail.com>2016-12-13 05:53:14 +0000
committerDylan McKay <dylanmckay34@gmail.com>2016-12-13 05:53:14 +0000
commit1e57fa487b4db5ddbee35ea1da62a3b5f29f16e5 (patch)
treef85df039e4b69999f290152807abf81afb2a4988 /llvm/lib/Target/AVR/AVR.h
parentf72381197205b73028eb01f3a73e4df871af3ec6 (diff)
downloadbcm5719-llvm-1e57fa487b4db5ddbee35ea1da62a3b5f29f16e5.tar.gz
bcm5719-llvm-1e57fa487b4db5ddbee35ea1da62a3b5f29f16e5.zip
[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 llvm-svn: 289517
Diffstat (limited to 'llvm/lib/Target/AVR/AVR.h')
-rw-r--r--llvm/lib/Target/AVR/AVR.h2
1 files changed, 2 insertions, 0 deletions
diff --git a/llvm/lib/Target/AVR/AVR.h b/llvm/lib/Target/AVR/AVR.h
index 0b4ba45262f..45119adb553 100644
--- a/llvm/lib/Target/AVR/AVR.h
+++ b/llvm/lib/Target/AVR/AVR.h
@@ -27,10 +27,12 @@ FunctionPass *createAVRISelDag(AVRTargetMachine &TM,
CodeGenOpt::Level OptLevel);
FunctionPass *createAVRExpandPseudoPass();
FunctionPass *createAVRFrameAnalyzerPass();
+FunctionPass *createAVRRelaxMemPass();
FunctionPass *createAVRDynAllocaSRPass();
FunctionPass *createAVRBranchSelectionPass();
void initializeAVRExpandPseudoPass(PassRegistry&);
+void initializeAVRRelaxMemPass(PassRegistry&);
/// Contains the AVR backend.
namespace AVR {
OpenPOWER on IntegriCloud