aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/Transforms/Utils/BasicBlockUtils.cpp
diff options
context:
space:
mode:
authorDylan McKay <me@dylanmckay.io>2019-06-12 08:31:07 +0000
committerDylan McKay <me@dylanmckay.io>2019-06-12 08:31:07 +0000
commitf8b4e60c7f514d70e9b603673fbc351c5df141e1 (patch)
tree0aced6f2195241625cf17696973c956b1f509ae2 /llvm/lib/Transforms/Utils/BasicBlockUtils.cpp
parentde73404b8c4332190750537eb93ce0d5b6451300 (diff)
downloadllvm-f8b4e60c7f514d70e9b603673fbc351c5df141e1.zip
llvm-f8b4e60c7f514d70e9b603673fbc351c5df141e1.tar.gz
llvm-f8b4e60c7f514d70e9b603673fbc351c5df141e1.tar.bz2
[AVR] Fix the 'avr-tiny.ll' and 'avr25.ll' subtarget feature tests
When these tests were originally written, the middle end would introduce an unnecessary copy from r24:r23->GPR16->r24:r23, and these tests mistakenly relied on it. The most optimal codegen for the functions in the test cases before this patch would be NOPs. This is because the first i16 argument always gets the same register allocation as an i16 return value in the AVR calling convention. These tests broke in r362963 when the codegen was improved and the redundant copy was eliminated. After this, the test functions were lowered to their optimal form - a 'ret' and nothing else. This patch prepends an extra i16 operand to each of the test functions so that a 16-bit copy must be inserted for the program to be correct. llvm-svn: 363131
Diffstat (limited to 'llvm/lib/Transforms/Utils/BasicBlockUtils.cpp')
0 files changed, 0 insertions, 0 deletions