[ARM] Improve codegen of volatile load/store of i64
authorVictor Campos <Victor.Campos@arm.com>
Thu, 2 Jan 2020 11:00:14 +0000 (11:00 +0000)
committerVictor Campos <Victor.Campos@arm.com>
Tue, 7 Jan 2020 13:16:18 +0000 (13:16 +0000)
commit60e0120c913dd1d4bfe33769e1f000a076249a42
tree215eedacfa5fd327c7c36056512f7cf0a89cc4b6
parent6ff1ea3244c543ad24fc99c7f4979db2f2078593
[ARM] Improve codegen of volatile load/store of i64

Summary:
Instead of generating two i32 instructions for each load or store of a volatile
i64 value (two LDRs or STRs), now emit LDRD/STRD.

These improvements cover architectures implementing ARMv5TE or Thumb-2.

Reviewers: dmgreen, efriedma, john.brawn, nickdesaulniers

Reviewed By: efriedma, nickdesaulniers

Subscribers: nickdesaulniers, vvereschaka, kristof.beyls, hiraditya, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D70072
llvm/lib/Target/ARM/ARMExpandPseudoInsts.cpp
llvm/lib/Target/ARM/ARMISelDAGToDAG.cpp
llvm/lib/Target/ARM/ARMISelLowering.cpp
llvm/lib/Target/ARM/ARMISelLowering.h
llvm/lib/Target/ARM/ARMInstrInfo.td
llvm/lib/Target/ARM/ARMInstrThumb2.td
llvm/test/CodeGen/ARM/i64_volatile_load_store.ll [new file with mode: 0644]