[llvm-commits] [dragonegg] r141778 - /dragonegg/trunk/src/Convert.cpp
Duncan Sands
baldrick at free.fr
Wed Oct 12 08:55:36 PDT 2011
Author: baldrick
Date: Wed Oct 12 10:55:36 2011
New Revision: 141778
URL: http://llvm.org/viewvc/llvm-project?rev=141778&view=rev
Log:
There is usually a location already at this point (the
source location for the function definition). Restore
it after outputting the basic block.
Modified:
dragonegg/trunk/src/Convert.cpp
Modified: dragonegg/trunk/src/Convert.cpp
URL: http://llvm.org/viewvc/llvm-project/dragonegg/trunk/src/Convert.cpp?rev=141778&r1=141777&r2=141778&view=diff
==============================================================================
--- dragonegg/trunk/src/Convert.cpp (original)
+++ dragonegg/trunk/src/Convert.cpp Wed Oct 12 10:55:36 2011
@@ -1034,6 +1034,7 @@
}
void TreeToLLVM::EmitBasicBlock(basic_block bb) {
+ location_t saved_loc = input_location;
++NumBasicBlocks;
// Avoid outputting a pointless branch at the end of the entry block.
@@ -1070,9 +1071,9 @@
for (gimple_stmt_iterator gsi = gsi_start_bb(bb); !gsi_end_p(gsi);
gsi_next(&gsi)) {
gimple stmt = gsi_stmt(gsi);
+ input_location = gimple_location(stmt);
++NumStatements;
- input_location = gimple_location(stmt);
if (EmitDebugInfo()) {
if (gimple_has_location(stmt)) {
TheDebugInfo->setLocationFile(gimple_filename(stmt));
@@ -1135,7 +1136,6 @@
}
}
- input_location = UNKNOWN_LOCATION;
if (EmitDebugInfo()) {
TheDebugInfo->setLocationFile("");
TheDebugInfo->setLocationLine(0);
@@ -1147,9 +1147,13 @@
edge_iterator ei;
FOR_EACH_EDGE (e, ei, bb->succs)
if (e->flags & EDGE_FALLTHRU) {
+ input_location = e->goto_locus;
+ // TODO: set the debug info location.
Builder.CreateBr(getBasicBlock(e->dest));
break;
}
+
+ input_location = saved_loc;
}
Function *TreeToLLVM::EmitFunction() {
More information about the llvm-commits
mailing list