summaryrefslogtreecommitdiffstats
path: root/llvm/lib/MC/MCStreamer.cpp
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
commite2c66244758578d1ed83c0c56b65bdfa9f3bf6b3 (patch)
tree8a1dcafa9ef58e7d49ae902b8fff65aa0adcb1fd /llvm/lib/MC/MCStreamer.cpp
parentb1b8231c8b4d549440ce8fc2e11303341399c0e0 (diff)
downloadbcm5719-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/MC/MCStreamer.cpp')
-rw-r--r--llvm/lib/MC/MCStreamer.cpp29
1 files changed, 29 insertions, 0 deletions
diff --git a/llvm/lib/MC/MCStreamer.cpp b/llvm/lib/MC/MCStreamer.cpp
index 8e675e5f4ea..6b4bb6f432f 100644
--- a/llvm/lib/MC/MCStreamer.cpp
+++ b/llvm/lib/MC/MCStreamer.cpp
@@ -614,6 +614,35 @@ void MCStreamer::EmitAssignment(MCSymbol *Symbol, const MCExpr *Value) {
TS->emitAssignment(Symbol, Value);
}
+void MCStreamer::visitUsedSymbol(const MCSymbol &Sym) {
+}
+
+void MCStreamer::visitUsedExpr(const MCExpr &Expr) {
+ switch (Expr.getKind()) {
+ case MCExpr::Target:
+ cast<MCTargetExpr>(Expr).visitUsedExpr(*this);
+ break;
+
+ case MCExpr::Constant:
+ break;
+
+ case MCExpr::Binary: {
+ const MCBinaryExpr &BE = cast<MCBinaryExpr>(Expr);
+ visitUsedExpr(*BE.getLHS());
+ visitUsedExpr(*BE.getRHS());
+ break;
+ }
+
+ case MCExpr::SymbolRef:
+ visitUsedSymbol(cast<MCSymbolRefExpr>(Expr).getSymbol());
+ break;
+
+ case MCExpr::Unary:
+ visitUsedExpr(*cast<MCUnaryExpr>(Expr).getSubExpr());
+ break;
+ }
+}
+
void MCStreamer::EmitAssemblerFlag(MCAssemblerFlag Flag) {}
void MCStreamer::EmitThumbFunc(MCSymbol *Func) {}
void MCStreamer::EmitSymbolDesc(MCSymbol *Symbol, unsigned DescValue) {}
OpenPOWER on IntegriCloud