diff options
author | Rafael Espindola <rafael.espindola@gmail.com> | 2014-06-25 15:45:33 +0000 |
---|---|---|
committer | Rafael Espindola <rafael.espindola@gmail.com> | 2014-06-25 15:45:33 +0000 |
commit | e2c66244758578d1ed83c0c56b65bdfa9f3bf6b3 (patch) | |
tree | 8a1dcafa9ef58e7d49ae902b8fff65aa0adcb1fd /llvm/lib/LTO | |
parent | b1b8231c8b4d549440ce8fc2e11303341399c0e0 (diff) | |
download | bcm5719-llvm-e2c66244758578d1ed83c0c56b65bdfa9f3bf6b3.tar.gz bcm5719-llvm-e2c66244758578d1ed83c0c56b65bdfa9f3bf6b3.zip |
Move expression visitation logic up to MCStreamer.
Remove the duplicate from MCRecordStreamer. No functionality change.
llvm-svn: 211714
Diffstat (limited to 'llvm/lib/LTO')
-rw-r--r-- | llvm/lib/LTO/LTOModule.cpp | 31 |
1 files changed, 4 insertions, 27 deletions
diff --git a/llvm/lib/LTO/LTOModule.cpp b/llvm/lib/LTO/LTOModule.cpp index 20faa97cf45..22ccff3dda7 100644 --- a/llvm/lib/LTO/LTOModule.cpp +++ b/llvm/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 { |