summaryrefslogtreecommitdiff
path: root/lib/LTO
diff options
context:
space:
mode:
authorRafael Espindola <rafael.espindola@gmail.com>2014-06-25 15:45:33 +0000
committerRafael Espindola <rafael.espindola@gmail.com>2014-06-25 15:45:33 +0000
commitc7abd2729433a10a9c5bc1a68a2711b05236931d (patch)
tree200d979daaeca224a48b60688948f6801aa9f986 /lib/LTO
parent1ca9d7610d87d62db9b7baad3100085030668795 (diff)
downloadllvm-c7abd2729433a10a9c5bc1a68a2711b05236931d.tar.gz
llvm-c7abd2729433a10a9c5bc1a68a2711b05236931d.tar.bz2
llvm-c7abd2729433a10a9c5bc1a68a2711b05236931d.tar.xz
Move expression visitation logic up to MCStreamer.
Remove the duplicate from MCRecordStreamer. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@211714 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/LTO')
-rw-r--r--lib/LTO/LTOModule.cpp31
1 files changed, 4 insertions, 27 deletions
diff --git a/lib/LTO/LTOModule.cpp b/lib/LTO/LTOModule.cpp
index 20faa97cf4..22ccff3dda 100644
--- a/lib/LTO/LTOModule.cpp
+++ b/lib/LTO/LTOModule.cpp
@@ -605,31 +605,8 @@ namespace {
}
}
- // FIXME: mostly copied for the obj streamer.
- void AddValueSymbols(const MCExpr *Value) {
- switch (Value->getKind()) {
- case MCExpr::Target:
- // FIXME: What should we do in here?
- break;
-
- case MCExpr::Constant:
- break;
-
- case MCExpr::Binary: {
- const MCBinaryExpr *BE = cast<MCBinaryExpr>(Value);
- AddValueSymbols(BE->getLHS());
- AddValueSymbols(BE->getRHS());
- break;
- }
-
- case MCExpr::SymbolRef:
- markUsed(cast<MCSymbolRefExpr>(Value)->getSymbol());
- break;
-
- case MCExpr::Unary:
- AddValueSymbols(cast<MCUnaryExpr>(Value)->getSubExpr());
- break;
- }
+ void visitUsedSymbol(const MCSymbol &Sym) override {
+ markUsed(Sym);
}
public:
@@ -650,7 +627,7 @@ namespace {
// Scan for values.
for (unsigned i = Inst.getNumOperands(); i--; )
if (Inst.getOperand(i).isExpr())
- AddValueSymbols(Inst.getOperand(i).getExpr());
+ visitUsedExpr(*Inst.getOperand(i).getExpr());
}
void EmitLabel(MCSymbol *Symbol) override {
MCStreamer::EmitLabel(Symbol);
@@ -659,7 +636,7 @@ namespace {
void EmitAssignment(MCSymbol *Symbol, const MCExpr *Value) override {
// FIXME: should we handle aliases?
markDefined(*Symbol);
- AddValueSymbols(Value);
+ visitUsedExpr(*Value);
}
bool EmitSymbolAttribute(MCSymbol *Symbol,
MCSymbolAttr Attribute) override {