Sorry, I can't replicate this now. Either it was user error on my part or it's been fixed!<div><br></div><div>Nick<br><br><div class="gmail_quote">On 13 October 2011 10:37, Devang Patel <span dir="ltr"><<a href="mailto:dpatel@apple.com">dpatel@apple.com</a>></span> wrote:<br>

<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;"><div class="im"><br>
On Oct 12, 2011, at 7:24 PM, Nick Lewycky wrote:<br>
<br>
</div><div class="im">> Note that two instructions were removed. A build with clang -O1 produces this valgrind error on the same testcase:<br>
><br>
> ==12757== Conditional jump or move depends on uninitialised value(s)<br>
> ==12757==    at 0x80BAB6: (anonymous namespace)::PeepholeOptimizer::runOnMachineFunction(llvm::MachineFunction&) (third_party/llvm/llvm/lib/CodeGen/PeepholeOptimizer.cpp:138)<br>
> ==12757==    by 0x80D482: llvm::MachineFunctionPass::runOnFunction(llvm::Function&) (third_party/llvm/llvm/lib/CodeGen/MachineFunctionPass.cpp:33)<br>
> ==12757==    by 0x9C0549: llvm::FPPassManager::runOnFunction(llvm::Function&) (third_party/llvm/llvm/lib/VMCore/PassManager.cpp:1512)<br>
> ==12757==    by 0x9C07FA: llvm::FPPassManager::runOnModule(llvm::Module&) (third_party/llvm/llvm/lib/VMCore/PassManager.cpp:1534)<br>
> ==12757==    by 0x9C099D: llvm::MPPassManager::runOnModule(llvm::Module&) (third_party/llvm/llvm/lib/VMCore/PassManager.cpp:1588)<br>
> ==12757==    by 0x9C0E74: llvm::PassManagerImpl::run(llvm::Module&) (third_party/llvm/llvm/lib/VMCore/PassManager.cpp:1672)<br>
> ==12757==    by 0x9C133C: llvm::PassManager::run(llvm::Module&) (third_party/llvm/llvm/lib/VMCore/PassManager.cpp:1716)<br>
> ==12757==    by 0x4E6EBF: main (third_party/llvm/llvm/tools/llc/llc.cpp:374)<br>
><br>
> but doing anything (ie., errs() << "this: " << this;) will cause the error to go away. I can't find anything wrong with your commit, or the code that valgrind is pointing to, but I'm hoping that you or someone on the list will be able to help track it down...<br>


<br>
</div>At PeepholeOptimizer.cpp:138, I see<br>
<br>
bool PeepholeOptimizer::<br>
OptimizeExtInstr(MachineInstr *MI, MachineBasicBlock *MBB,<br>
                 SmallPtrSet<MachineInstr*, 8> &LocalMIs) {<br>
  unsigned SrcReg, DstReg, SubIdx;<br>
  if (!TII->isCoalescableExtInstr(*MI, SrcReg, DstReg, SubIdx))<br>
    return false;<br>
<br>
  if (TargetRegisterInfo::isPhysicalRegister(DstReg) ||<br>
<br>
<br>
Are you sure DstReg is always initialized for all targets by isCoalescableExtInstr ?  I have not checked.<br>
-<br>
<span class="HOEnZb"><font color="#888888">Devang<br>
</font></span></blockquote></div><br></div>