llvm-project/llvm/lib/Target/AVR
Dylan McKay 04b418f246 [AVR] Expand 16-bit rotations during the legalization stage
In r356860, the legalization logic for BSWAP was modified to ISD::ROTL,
rather than the old ISD::{SHL, SRL, OR} nodes.

This works fine on AVR for 8-bit rotations, but 16-bit rotations are
currently unimplemented - they always trigger an assertion error in the
AVRExpandPseudoInsts pass ("RORW unimplemented").

This patch instructions the legalizer to expand 16-bit rotations into
the previous SHL, SRL, OR pattern it did previously.

This fixes the 'issue-cannot-select-bswap.ll' test. Interestingly, this
test failure seems flaky - it passes successfully on the avr-build-01
buildbot, but fails locally on my Arch Linux install.

llvm-svn: 362773
2019-06-07 06:55:00 +00:00
..
AsmParser [AVR] Create a TargetInfo header. NFC 2019-05-14 22:41:58 +00:00
Disassembler [AVR] Create a TargetInfo header. NFC 2019-05-14 22:41:58 +00:00
MCTargetDesc [AVR] Create a TargetInfo header. NFC 2019-05-14 22:41:58 +00:00
TargetInfo [AVR] Create a TargetInfo header. NFC 2019-05-14 22:41:58 +00:00
AVR.h Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
AVR.td Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
AVRAsmPrinter.cpp [AVR] Create a TargetInfo header. NFC 2019-05-14 22:41:58 +00:00
AVRCallingConv.td Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
AVRDevices.td
AVRExpandPseudoInsts.cpp [AVR] Fix codegen bug in 16-bit loads 2019-01-20 03:41:08 +00:00
AVRFrameLowering.cpp Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
AVRFrameLowering.h Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
AVRISelDAGToDAG.cpp Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
AVRISelLowering.cpp [AVR] Expand 16-bit rotations during the legalization stage 2019-06-07 06:55:00 +00:00
AVRISelLowering.h Add TargetLoweringInfo hook for explicitly setting the ABI calling convention endianess 2019-05-21 06:38:02 +00:00
AVRInstrFormats.td Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
AVRInstrInfo.cpp Implementation of asm-goto support in LLVM 2019-02-08 20:48:56 +00:00
AVRInstrInfo.h Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
AVRInstrInfo.td [AVR] Fix incorrect source regclass of LDWRdPtr 2019-06-03 02:31:07 +00:00
AVRMCInstLower.cpp Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
AVRMCInstLower.h Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
AVRMachineFunctionInfo.h Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
AVRRegisterInfo.cpp [AVR] Disable register coalescing to the PTRDISPREGS class 2019-06-01 12:38:56 +00:00
AVRRegisterInfo.h [AVR] Disable register coalescing to the PTRDISPREGS class 2019-06-01 12:38:56 +00:00
AVRRegisterInfo.td [AVR] Fix incorrect source regclass of LDWRdPtr 2019-06-03 02:31:07 +00:00
AVRRelaxMemOperations.cpp Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
AVRSelectionDAGInfo.h Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
AVRSubtarget.cpp Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
AVRSubtarget.h Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
AVRTargetMachine.cpp [AVR] Create a TargetInfo header. NFC 2019-05-14 22:41:58 +00:00
AVRTargetMachine.h Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
AVRTargetObjectFile.cpp Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
AVRTargetObjectFile.h Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
CMakeLists.txt [AVR] Move InstPrinter files to MCTargetDesc. NFC 2019-05-11 01:03:03 +00:00
LLVMBuild.txt [AVR] Move InstPrinter files to MCTargetDesc. NFC 2019-05-11 01:03:03 +00:00
README.md
TODO.md

README.md

AVR backend

This experimental backend is for the 8-bit Atmel AVR microcontroller.