FailedChanges

Summary

  1. Merging r314891: ------------------------------------------------------------------------ r314891 | dylanmckay | 2017-10-04 22:51:28 +1300 (Wed, 04 Oct 2017) | 8 lines [AVR] Insert JMP for long branches Previously, on long branches (relative jumps of >4 kB), an assertion failure was hit, as AVRInstrInfo::insertIndirectBranch was not implemented. Despite its name, it is called by the branch relaxator for *all* unconditional jumps. Patch by Thomas Backman. ------------------------------------------------------------------------
  2. Merging r314890: ------------------------------------------------------------------------ r314890 | dylanmckay | 2017-10-04 22:51:21 +1300 (Wed, 04 Oct 2017) | 16 lines [AVR] Fix displacement overflow for LDDW/STDW In some cases, the code generator attempts to generate instructions such as: lddw r24, Y+63 which expands to: ldd r24, Y+63 ldd r25, Y+64 # Oops! This is actually ld r25, Y in the binary This commit limits the first offset to 62, and thus the second to 63. It also updates some asserts in AVRExpandPseudoInsts.cpp, including for INW and OUTW, which appear to be unused. Patch by Thomas Backman. ------------------------------------------------------------------------
Revision 315833 by dylanmckay:
Merging r314891:
------------------------------------------------------------------------
r314891 | dylanmckay | 2017-10-04 22:51:28 +1300 (Wed, 04 Oct 2017) | 8 lines

[AVR] Insert JMP for long branches

Previously, on long branches (relative jumps of >4 kB), an assertion
failure was hit, as AVRInstrInfo::insertIndirectBranch was not
implemented. Despite its name, it is called by the branch relaxator
for *all* unconditional jumps.

Patch by Thomas Backman.
------------------------------------------------------------------------
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/branches/release_50/lib/Target/AVR/AVRInstrInfo.cppllvm.src/lib/Target/AVR/AVRInstrInfo.cpp
The file was modified/llvm/branches/release_50/lib/Target/AVR/AVRInstrInfo.hllvm.src/lib/Target/AVR/AVRInstrInfo.h
The file was added/llvm/branches/release_50/test/CodeGen/AVR/branch-relaxation-long.llllvm.src/test/CodeGen/AVR/branch-relaxation-long.ll
Revision 315832 by dylanmckay:
Merging r314890:
------------------------------------------------------------------------
r314890 | dylanmckay | 2017-10-04 22:51:21 +1300 (Wed, 04 Oct 2017) | 16 lines

[AVR] Fix displacement overflow for LDDW/STDW

In some cases, the code generator attempts to generate instructions such as:

lddw r24, Y+63

which expands to:

ldd r24, Y+63
ldd r25, Y+64 # Oops! This is actually ld r25, Y in the binary

This commit limits the first offset to 62, and thus the second to 63.
It also updates some asserts in AVRExpandPseudoInsts.cpp, including for
INW and OUTW, which appear to be unused.

Patch by Thomas Backman.
------------------------------------------------------------------------
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/branches/release_50/lib/Target/AVR/AVRExpandPseudoInsts.cppllvm.src/lib/Target/AVR/AVRExpandPseudoInsts.cpp
The file was modified/llvm/branches/release_50/lib/Target/AVR/AVRRegisterInfo.cppllvm.src/lib/Target/AVR/AVRRegisterInfo.cpp
The file was added/llvm/branches/release_50/test/CodeGen/AVR/std-ldd-immediate-overflow.llllvm.src/test/CodeGen/AVR/std-ldd-immediate-overflow.ll