diff options
| author | Chad Rosier <mcrosier@codeaurora.org> | 2016-03-09 16:00:35 +0000 |
|---|---|---|
| committer | Chad Rosier <mcrosier@codeaurora.org> | 2016-03-09 16:00:35 +0000 |
| commit | c27a18f39fa155583a5a124549137016cb8c7712 (patch) | |
| tree | f316fd4a7f4422f6817d9472287c4011b9a083a9 /llvm/lib/CodeGen | |
| parent | 069b432bf7357b680384f4a90b596c8b9cb2c343 (diff) | |
| download | bcm5719-llvm-c27a18f39fa155583a5a124549137016cb8c7712.tar.gz bcm5719-llvm-c27a18f39fa155583a5a124549137016cb8c7712.zip | |
[TII] Allow getMemOpBaseRegImmOfs() to accept negative offsets. NFC.
http://reviews.llvm.org/D17967
llvm-svn: 263021
Diffstat (limited to 'llvm/lib/CodeGen')
| -rw-r--r-- | llvm/lib/CodeGen/ImplicitNullChecks.cpp | 10 | ||||
| -rw-r--r-- | llvm/lib/CodeGen/MachineScheduler.cpp | 4 | ||||
| -rw-r--r-- | llvm/lib/CodeGen/MachineSink.cpp | 3 |
3 files changed, 9 insertions, 8 deletions
diff --git a/llvm/lib/CodeGen/ImplicitNullChecks.cpp b/llvm/lib/CodeGen/ImplicitNullChecks.cpp index 39c1b9fb9a6..a413aebac23 100644 --- a/llvm/lib/CodeGen/ImplicitNullChecks.cpp +++ b/llvm/lib/CodeGen/ImplicitNullChecks.cpp @@ -46,10 +46,9 @@ using namespace llvm; -static cl::opt<unsigned> PageSize("imp-null-check-page-size", - cl::desc("The page size of the target in " - "bytes"), - cl::init(4096)); +static cl::opt<int> PageSize("imp-null-check-page-size", + cl::desc("The page size of the target in bytes"), + cl::init(4096)); #define DEBUG_TYPE "implicit-null-checks" @@ -324,7 +323,8 @@ bool ImplicitNullChecks::analyzeBlockForNullChecks( for (auto MII = NotNullSucc->begin(), MIE = NotNullSucc->end(); MII != MIE; ++MII) { MachineInstr *MI = &*MII; - unsigned BaseReg, Offset; + unsigned BaseReg; + int64_t Offset; if (TII->getMemOpBaseRegImmOfs(MI, BaseReg, Offset, TRI)) if (MI->mayLoad() && !MI->isPredicable() && BaseReg == PointerReg && Offset < PageSize && MI->getDesc().getNumDefs() <= 1 && diff --git a/llvm/lib/CodeGen/MachineScheduler.cpp b/llvm/lib/CodeGen/MachineScheduler.cpp index 604d8219794..7547ae3342b 100644 --- a/llvm/lib/CodeGen/MachineScheduler.cpp +++ b/llvm/lib/CodeGen/MachineScheduler.cpp @@ -1361,7 +1361,7 @@ class LoadClusterMutation : public ScheduleDAGMutation { struct LoadInfo { SUnit *SU; unsigned BaseReg; - unsigned Offset; + int64_t Offset; LoadInfo(SUnit *su, unsigned reg, unsigned ofs) : SU(su), BaseReg(reg), Offset(ofs) {} @@ -1389,7 +1389,7 @@ void LoadClusterMutation::clusterNeighboringLoads(ArrayRef<SUnit*> Loads, for (unsigned Idx = 0, End = Loads.size(); Idx != End; ++Idx) { SUnit *SU = Loads[Idx]; unsigned BaseReg; - unsigned Offset; + int64_t Offset; if (TII->getMemOpBaseRegImmOfs(SU->getInstr(), BaseReg, Offset, TRI)) LoadRecords.push_back(LoadInfo(SU, BaseReg, Offset)); } diff --git a/llvm/lib/CodeGen/MachineSink.cpp b/llvm/lib/CodeGen/MachineSink.cpp index b1f3875880b..18aecdaba84 100644 --- a/llvm/lib/CodeGen/MachineSink.cpp +++ b/llvm/lib/CodeGen/MachineSink.cpp @@ -702,7 +702,8 @@ static bool SinkingPreventsImplicitNullCheck(MachineInstr *MI, !PredBB->getTerminator()->getMetadata(LLVMContext::MD_make_implicit)) return false; - unsigned BaseReg, Offset; + unsigned BaseReg; + int64_t Offset; if (!TII->getMemOpBaseRegImmOfs(MI, BaseReg, Offset, TRI)) return false; |

