aboutsummaryrefslogtreecommitdiffstats
path: root/lib/CodeGen/SelectionDAG
diff options
context:
space:
mode:
authorDale Johannesen <dalej@apple.com>2009-03-25 17:36:08 +0000
committerDale Johannesen <dalej@apple.com>2009-03-25 17:36:08 +0000
commitbeaec4cbf6cfd756084eff1ee2ad18ee17c33284 (patch)
treed3c6504386f907c152535870e420e57cf791aeb2 /lib/CodeGen/SelectionDAG
parentea4753e3700d16e7ae35afd533faba0ec564c566 (diff)
downloadexternal_llvm-beaec4cbf6cfd756084eff1ee2ad18ee17c33284.zip
external_llvm-beaec4cbf6cfd756084eff1ee2ad18ee17c33284.tar.gz
external_llvm-beaec4cbf6cfd756084eff1ee2ad18ee17c33284.tar.bz2
When optimizing with debug info, don't keep the
stoppoint nodes around until Legalize; doing this imposed an ordering on a sequence of loads that came from different lines, interfering with scheduling. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@67692 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/CodeGen/SelectionDAG')
-rw-r--r--lib/CodeGen/SelectionDAG/SelectionDAGBuild.cpp9
1 files changed, 5 insertions, 4 deletions
diff --git a/lib/CodeGen/SelectionDAG/SelectionDAGBuild.cpp b/lib/CodeGen/SelectionDAG/SelectionDAGBuild.cpp
index 8457bc3..a5d4caf 100644
--- a/lib/CodeGen/SelectionDAG/SelectionDAGBuild.cpp
+++ b/lib/CodeGen/SelectionDAG/SelectionDAGBuild.cpp
@@ -3895,10 +3895,11 @@ SelectionDAGLowering::visitIntrinsicCall(CallInst &I, unsigned Intrinsic) {
DbgStopPointInst &SPI = cast<DbgStopPointInst>(I);
if (DW && DW->ValidDebugInfo(SPI.getContext())) {
MachineFunction &MF = DAG.getMachineFunction();
- DAG.setRoot(DAG.getDbgStopPoint(getRoot(),
- SPI.getLine(),
- SPI.getColumn(),
- SPI.getContext()));
+ if (Fast)
+ DAG.setRoot(DAG.getDbgStopPoint(getRoot(),
+ SPI.getLine(),
+ SPI.getColumn(),
+ SPI.getContext()));
DICompileUnit CU(cast<GlobalVariable>(SPI.getContext()));
std::string Dir, FN;
unsigned SrcFile = DW->getOrCreateSourceID(CU.getDirectory(Dir),