[llvm-commits] [llvm] r53254 - in /llvm/trunk/lib/Target: ARM/ARMAsmPrinter.cpp PowerPC/PPCAsmPrinter.cpp X86/X86ATTAsmPrinter.cpp

Evan Cheng evan.cheng at apple.com
Tue Jul 8 23:35:35 PDT 2008


Hi Dale,

This breaks ppc backend. Just try to llc anything with debug  
information. Can you take a look? I'll back it out for now.

Evan

On Jul 8, 2008, at 2:56 PM, Dale Johannesen wrote:

> Author: johannes
> Date: Tue Jul  8 16:56:22 2008
> New Revision: 53254
>
> URL: http://llvm.org/viewvc/llvm-project?rev=53254&view=rev
> Log:
> Make debug info come out in data-only files.
>
> This is a question of the debugging setup code not
> being called at the right time, and it's called from
> target-dependent code for some reason.  I have only
> attempted to fix Darwin, but I'm pretty sure it's
> broken elsewhere; I'll leave that to people who can
> test it.
>
>
> Modified:
>    llvm/trunk/lib/Target/ARM/ARMAsmPrinter.cpp
>    llvm/trunk/lib/Target/PowerPC/PPCAsmPrinter.cpp
>    llvm/trunk/lib/Target/X86/X86ATTAsmPrinter.cpp
>
> Modified: llvm/trunk/lib/Target/ARM/ARMAsmPrinter.cpp
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/ARM/ARMAsmPrinter.cpp?rev=53254&r1=53253&r2=53254&view=diff
>
> = 
> = 
> = 
> = 
> = 
> = 
> = 
> = 
> ======================================================================
> --- llvm/trunk/lib/Target/ARM/ARMAsmPrinter.cpp (original)
> +++ llvm/trunk/lib/Target/ARM/ARMAsmPrinter.cpp Tue Jul  8 16:56:22  
> 2008
> @@ -42,11 +42,13 @@
> namespace {
>   struct VISIBILITY_HIDDEN ARMAsmPrinter : public AsmPrinter {
>     ARMAsmPrinter(std::ostream &O, TargetMachine &TM, const  
> TargetAsmInfo *T)
> -      : AsmPrinter(O, TM, T), DW(O, this, T), AFI(NULL),  
> InCPMode(false) {
> +      : AsmPrinter(O, TM, T), DW(O, this, T), MMI(0), AFI(NULL),
> +        InCPMode(false) {
>       Subtarget = &TM.getSubtarget<ARMSubtarget>();
>     }
>
>     DwarfWriter DW;
> +    MachineModuleInfo *MMI;
>
>     /// Subtarget - Keep a pointer to the ARMSubtarget around so  
> that we can
>     /// make the right decision when printing asm code for different  
> targets.
> @@ -176,8 +178,6 @@
> bool ARMAsmPrinter::runOnMachineFunction(MachineFunction &MF) {
>   AFI = MF.getInfo<ARMFunctionInfo>();
>
> -  DW.SetModuleInfo(&getAnalysis<MachineModuleInfo>());
> -
>   SetupMachineFunction(MF);
>   O << "\n";
>
> @@ -800,6 +800,11 @@
>
>   bool Result = AsmPrinter::doInitialization(M);
>
> +  // AsmPrinter::doInitialization should have done this analysis.
> +  MMI = getAnalysisToUpdate<MachineModuleInfo>();
> +  assert(MMI);
> +  DW.SetModuleInfo(MMI);
> +
>   // Darwin wants symbols to be quoted if they have complex names.
>   if (Subtarget->isTargetDarwin())
>     Mang->setUseQuotes(true);
>
> Modified: llvm/trunk/lib/Target/PowerPC/PPCAsmPrinter.cpp
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/PowerPC/PPCAsmPrinter.cpp?rev=53254&r1=53253&r2=53254&view=diff
>
> = 
> = 
> = 
> = 
> = 
> = 
> = 
> = 
> ======================================================================
> --- llvm/trunk/lib/Target/PowerPC/PPCAsmPrinter.cpp (original)
> +++ llvm/trunk/lib/Target/PowerPC/PPCAsmPrinter.cpp Tue Jul  8  
> 16:56:22 2008
> @@ -790,9 +790,6 @@
> /// method to print assembly for each instruction.
> ///
> bool DarwinAsmPrinter::runOnMachineFunction(MachineFunction &MF) {
> -  // We need this for Personality functions.
> -  MMI = &getAnalysis<MachineModuleInfo>();
> -  DW.SetModuleInfo(MMI);
>
>   SetupMachineFunction(MF);
>   O << "\n\n";
> @@ -887,6 +884,12 @@
>
>   bool Result = AsmPrinter::doInitialization(M);
>
> +  // We need this for Personality functions.
> +  // AsmPrinter::doInitialization should have done this analysis.
> +  MMI = getAnalysisToUpdate<MachineModuleInfo>();
> +  assert(MMI);
> +  DW.SetModuleInfo(MMI);
> +
>   // Darwin wants symbols to be quoted if they have complex names.
>   Mang->setUseQuotes(true);
>
>
> Modified: llvm/trunk/lib/Target/X86/X86ATTAsmPrinter.cpp
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/X86/X86ATTAsmPrinter.cpp?rev=53254&r1=53253&r2=53254&view=diff
>
> = 
> = 
> = 
> = 
> = 
> = 
> = 
> = 
> ======================================================================
> --- llvm/trunk/lib/Target/X86/X86ATTAsmPrinter.cpp (original)
> +++ llvm/trunk/lib/Target/X86/X86ATTAsmPrinter.cpp Tue Jul  8  
> 16:56:22 2008
> @@ -232,13 +232,6 @@
>   const Function *F = MF.getFunction();
>   unsigned CC = F->getCallingConv();
>
> -  if (TAI->doesSupportDebugInformation()) {
> -    // Let PassManager know we need debug information and relay
> -    // the MachineModuleInfo address on to DwarfWriter.
> -    MMI = &getAnalysis<MachineModuleInfo>();
> -    DW.SetModuleInfo(MMI);
> -  }
> -
>   SetupMachineFunction(MF);
>   O << "\n\n";
>
> @@ -751,13 +744,20 @@
>
> /// doInitialization
> bool X86ATTAsmPrinter::doInitialization(Module &M) {
> +
> +  bool Result = AsmPrinter::doInitialization(M);
> +
>   if (TAI->doesSupportDebugInformation()) {
>     // Emit initial debug information.
>     DW.BeginModule(&M);
> +    // Let PassManager know we need debug information and relay
> +    // the MachineModuleInfo address on to DwarfWriter.
> +    // AsmPrinter::doInitialization should have done this analysis.
> +    MMI = getAnalysisToUpdate<MachineModuleInfo>();
> +    assert(MMI);
> +    DW.SetModuleInfo(MMI);
>   }
>
> -  bool Result = AsmPrinter::doInitialization(M);
> -
>   // Darwin wants symbols to be quoted if they have complex names.
>   if (Subtarget->isTargetDarwin())
>     Mang->setUseQuotes(true);
>
>
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits




More information about the llvm-commits mailing list