OSDN Git Service

[Atomic] Remove IsStore/IsLoad in the interface, and pass the instruction instead...
authorTim Shen <timshen91@gmail.com>
Tue, 9 May 2017 15:27:17 +0000 (15:27 +0000)
committerTim Shen <timshen91@gmail.com>
Tue, 9 May 2017 15:27:17 +0000 (15:27 +0000)
commitf52671da9b4ff405b9e2917eaa88a749c2124216
treeaaa82b87f94a47f651651a76fc452c22089211b0
parent25e22520d545333e5584f225a94e9d56d7c40735
[Atomic] Remove IsStore/IsLoad in the interface, and pass the instruction instead. NFC.

Now both emitLeadingFence and emitTrailingFence take the instruction
itself, instead of taking IsLoad/IsStore pairs.
Instruction::mayReadFromMemory and Instrucion::mayWriteToMemory are used
for determining those two booleans.

The instruction argument is also useful for later D32763, in
emitTrailingFence. For emitLeadingFence, it seems to have cleaner
interface with the proposed change.

Differential Revision: https://reviews.llvm.org/D32762

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@302539 91177308-0d34-0410-b5e6-96231b3b80d8
include/llvm/IR/Instruction.h
include/llvm/Target/TargetLowering.h
lib/CodeGen/AtomicExpandPass.cpp
lib/IR/Instruction.cpp
lib/Target/ARM/ARMISelLowering.cpp
lib/Target/ARM/ARMISelLowering.h
lib/Target/PowerPC/PPCISelLowering.cpp
lib/Target/PowerPC/PPCISelLowering.h