summaryrefslogtreecommitdiffstats
path: root/llvm/lib/MC/MCStreamer.cpp
diff options
context:
space:
mode:
authorRafael Espindola <rafael.espindola@gmail.com>2010-12-03 00:55:40 +0000
committerRafael Espindola <rafael.espindola@gmail.com>2010-12-03 00:55:40 +0000
commit57ab708bdd3231b23a8ef4978b11ff07616034a2 (patch)
treec50bb3ef0e4fc3a1d7e0531c0a92d3409dc06517 /llvm/lib/MC/MCStreamer.cpp
parentf0b36a3cfd1ae7f5e85f7c217698e3001b60b313 (diff)
downloadbcm5719-llvm-57ab708bdd3231b23a8ef4978b11ff07616034a2.tar.gz
bcm5719-llvm-57ab708bdd3231b23a8ef4978b11ff07616034a2.zip
Try to resolve symbol differences early, and if successful create a plain
data fragment. This reduces the time to assemble the test in 8711 from 60s to 54s. llvm-svn: 120767
Diffstat (limited to 'llvm/lib/MC/MCStreamer.cpp')
-rw-r--r--llvm/lib/MC/MCStreamer.cpp11
1 files changed, 11 insertions, 0 deletions
diff --git a/llvm/lib/MC/MCStreamer.cpp b/llvm/lib/MC/MCStreamer.cpp
index 7921957f542..9fe719a7fa7 100644
--- a/llvm/lib/MC/MCStreamer.cpp
+++ b/llvm/lib/MC/MCStreamer.cpp
@@ -30,6 +30,17 @@ raw_ostream &MCStreamer::GetCommentOS() {
return nulls();
}
+void MCStreamer::EmitDwarfSetLineAddr(int64_t LineDelta,
+ const MCSymbol *Label, int PointerSize) {
+ // emit the sequence to set the address
+ EmitIntValue(dwarf::DW_LNS_extended_op, 1);
+ EmitULEB128IntValue(PointerSize + 1);
+ EmitIntValue(dwarf::DW_LNE_set_address, 1);
+ EmitSymbolValue(Label, PointerSize);
+
+ // emit the sequence for the LineDelta (from 1) and a zero address delta.
+ MCDwarfLineAddr::Emit(this, LineDelta, 0);
+}
/// EmitIntValue - Special case of EmitValue that avoids the client having to
/// pass in a MCExpr for constant integers.
OpenPOWER on IntegriCloud