[llvm] fb1e0f3 - [SafeStack,NFC] Add BlockLifetimeInfo constructor
Vitaly Buka via llvm-commits
llvm-commits at lists.llvm.org
Sun Jun 14 23:15:04 PDT 2020
Author: Vitaly Buka
Date: 2020-06-14T23:05:42-07:00
New Revision: fb1e0f324fe6db518ae1ad64df55aea52ed372d7
URL: https://github.com/llvm/llvm-project/commit/fb1e0f324fe6db518ae1ad64df55aea52ed372d7
DIFF: https://github.com/llvm/llvm-project/commit/fb1e0f324fe6db518ae1ad64df55aea52ed372d7.diff
LOG: [SafeStack,NFC] Add BlockLifetimeInfo constructor
Added:
Modified:
llvm/lib/CodeGen/SafeStackColoring.cpp
llvm/lib/CodeGen/SafeStackColoring.h
Removed:
################################################################################
diff --git a/llvm/lib/CodeGen/SafeStackColoring.cpp b/llvm/lib/CodeGen/SafeStackColoring.cpp
index d5ef92ff7499..ee7dec789a2d 100644
--- a/llvm/lib/CodeGen/SafeStackColoring.cpp
+++ b/llvm/lib/CodeGen/SafeStackColoring.cpp
@@ -94,11 +94,8 @@ void StackColoring::collectMarkers() {
LLVM_DEBUG(dbgs() << " " << InstNo << ": BB " << BB->getName() << "\n");
unsigned BBStart = InstNo++;
- BlockLifetimeInfo &BlockInfo = BlockLiveness[BB];
- BlockInfo.Begin.resize(NumAllocas);
- BlockInfo.End.resize(NumAllocas);
- BlockInfo.LiveIn.resize(NumAllocas);
- BlockInfo.LiveOut.resize(NumAllocas);
+ BlockLifetimeInfo &BlockInfo =
+ BlockLiveness.try_emplace(BB, NumAllocas).first->getSecond();
auto &BlockMarkerSet = BBMarkerSet[BB];
if (BlockMarkerSet.empty()) {
@@ -155,7 +152,7 @@ void StackColoring::calculateLocalLiveness() {
changed = false;
for (BasicBlock *BB : depth_first(&F)) {
- BlockLifetimeInfo &BlockInfo = BlockLiveness[BB];
+ BlockLifetimeInfo &BlockInfo = BlockLiveness.find(BB)->getSecond();
// Compute LiveIn by unioning together the LiveOut sets of all preds.
BitVector LocalLiveIn;
@@ -253,7 +250,7 @@ LLVM_DUMP_METHOD void StackColoring::dumpBlockLiveness() {
dbgs() << "Block liveness:\n";
for (auto IT : BlockLiveness) {
BasicBlock *BB = IT.getFirst();
- BlockLifetimeInfo &BlockInfo = BlockLiveness[BB];
+ const BlockLifetimeInfo &BlockInfo = BlockLiveness.find(BB)->getSecond();
auto BlockRange = BlockInstRange[BB];
dbgs() << " BB [" << BlockRange.first << ", " << BlockRange.second
<< "): begin " << BlockInfo.Begin << ", end " << BlockInfo.End
diff --git a/llvm/lib/CodeGen/SafeStackColoring.h b/llvm/lib/CodeGen/SafeStackColoring.h
index 926756d6a1d7..79141d9c8054 100644
--- a/llvm/lib/CodeGen/SafeStackColoring.h
+++ b/llvm/lib/CodeGen/SafeStackColoring.h
@@ -40,6 +40,9 @@ class StackColoring {
/// Each bit in the BitVector represents the liveness property
/// for a
diff erent stack slot.
struct BlockLifetimeInfo {
+ explicit BlockLifetimeInfo(unsigned Size)
+ : Begin(Size), End(Size), LiveIn(Size), LiveOut(Size) {}
+
/// Which slots BEGINs in each basic block.
BitVector Begin;
More information about the llvm-commits
mailing list