[llvm-commits] [llvm] r152704 - /llvm/trunk/lib/CodeGen/SelectionDAG/ScheduleDAGSDNodes.cpp

Francois Pichet pichet2000 at gmail.com
Wed Mar 14 15:42:19 PDT 2012


On Wed, Mar 14, 2012 at 3:14 AM, Bill Wendling <isanbard at gmail.com> wrote:
> Author: void
> Date: Wed Mar 14 02:14:25 2012
> New Revision: 152704
>
> URL: http://llvm.org/viewvc/llvm-project?rev=152704&view=rev
> Log:
> Insert the debugging instructions in one fell-swoop so that it doesn't call the
> expensive "getFirstTerminator" call. This reduces the time of compilation in
> PR12258 from >10 minutes to < 10 seconds.
>
> Modified:
>    llvm/trunk/lib/CodeGen/SelectionDAG/ScheduleDAGSDNodes.cpp
>
> Modified: llvm/trunk/lib/CodeGen/SelectionDAG/ScheduleDAGSDNodes.cpp
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/SelectionDAG/ScheduleDAGSDNodes.cpp?rev=152704&r1=152703&r2=152704&view=diff
> ==============================================================================
> --- llvm/trunk/lib/CodeGen/SelectionDAG/ScheduleDAGSDNodes.cpp (original)
> +++ llvm/trunk/lib/CodeGen/SelectionDAG/ScheduleDAGSDNodes.cpp Wed Mar 14 02:14:25 2012
> @@ -855,16 +855,17 @@
>     }
>     // Add trailing DbgValue's before the terminator. FIXME: May want to add
>     // some of them before one or more conditional branches?
> +    SmallVector<MachineInstr*, 8> DbgMIs;
>     while (DI != DE) {
> -      MachineBasicBlock *InsertBB = Emitter.getBlock();
> -      MachineBasicBlock::iterator Pos= Emitter.getBlock()->getFirstTerminator();
> -      if (!(*DI)->isInvalidated()) {
> -        MachineInstr *DbgMI= Emitter.EmitDbgValue(*DI, VRBaseMap);
> -        if (DbgMI)
> -          InsertBB->insert(Pos, DbgMI);
> -      }
> +      if (!(*DI)->isInvalidated())
> +        if (MachineInstr *DbgMI = Emitter.EmitDbgValue(*DI, VRBaseMap))
> +          DbgMIs.push_back(DbgMI);
>       ++DI;
>     }
> +
> +    MachineBasicBlock *InsertBB = Emitter.getBlock();
> +    MachineBasicBlock::iterator Pos = InsertBB->getFirstTerminator();
> +    InsertBB->insert(Pos, DbgMIs.begin(), DbgMIs.end());

This was causing a MSVC compile error. Please see r152746 for the workaround.




More information about the llvm-commits mailing list