[llvm-commits] [llvm] r108369 - in /llvm/trunk: include/llvm/CodeGen/MachineModuleInfo.h lib/CodeGen/MachineModuleInfo.cpp

Devang Patel dpatel at apple.com
Thu Jul 15 09:46:45 PDT 2010


Dan,
On Jul 14, 2010, at 4:08 PM, Dan Gohman wrote:

> Author: djg
> Date: Wed Jul 14 18:08:16 2010
> New Revision: 108369
> 
> URL: http://llvm.org/viewvc/llvm-project?rev=108369&view=rev
> Log:
> Make the order in which variables are described in debug information
> independent of the order that isel happens to visit the dbg_declare
> intrinsics. This fixes a bug in which the formal arguments were
> being printed in reverse order, now that fast isel is going bottom up.

This won't help llvm-gcc because of lack of column no. info llvm-gcc generated debug info.
-
Devang
> 
> Modified:
>    llvm/trunk/include/llvm/CodeGen/MachineModuleInfo.h
>    llvm/trunk/lib/CodeGen/MachineModuleInfo.cpp
> 
> Modified: llvm/trunk/include/llvm/CodeGen/MachineModuleInfo.h
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/CodeGen/MachineModuleInfo.h?rev=108369&r1=108368&r2=108369&view=diff
> ==============================================================================
> --- llvm/trunk/include/llvm/CodeGen/MachineModuleInfo.h (original)
> +++ llvm/trunk/include/llvm/CodeGen/MachineModuleInfo.h Wed Jul 14 18:08:16 2010
> @@ -344,7 +344,7 @@
>     VariableDbgInfo.push_back(std::make_pair(N, std::make_pair(Slot, Loc)));
>   }
> 
> -  VariableDbgInfoMapTy &getVariableDbgInfo() {  return VariableDbgInfo;  }
> +  VariableDbgInfoMapTy &getVariableDbgInfo();
> 
> }; // End class MachineModuleInfo
> 
> 
> Modified: llvm/trunk/lib/CodeGen/MachineModuleInfo.cpp
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/MachineModuleInfo.cpp?rev=108369&r1=108368&r2=108369&view=diff
> ==============================================================================
> --- llvm/trunk/lib/CodeGen/MachineModuleInfo.cpp (original)
> +++ llvm/trunk/lib/CodeGen/MachineModuleInfo.cpp Wed Jul 14 18:08:16 2010
> @@ -563,3 +563,26 @@
>   return 0;
> }
> 
> +namespace {
> +  /// VariableDebugSorter - Comparison to sort the VariableDbgInfo map
> +  /// by source location, to avoid depending on the arbitrary order that
> +  /// instruction selection visits variables in.
> +  struct VariableDebugSorter {
> +    bool operator()(const MachineModuleInfo::VariableDbgInfoMapTy::value_type &A,
> +                    const MachineModuleInfo::VariableDbgInfoMapTy::value_type &B)
> +                  const {
> +       if (A.second.second.getLine() != B.second.second.getLine())
> +         return A.second.second.getLine() < B.second.second.getLine();
> +       if (A.second.second.getCol() != B.second.second.getCol())
> +         return A.second.second.getCol() < B.second.second.getCol();
> +       return false;
> +    }
> +  };
> +}
> +
> +MachineModuleInfo::VariableDbgInfoMapTy &
> +MachineModuleInfo::getVariableDbgInfo() {
> +  std::stable_sort(VariableDbgInfo.begin(), VariableDbgInfo.end(),
> +                   VariableDebugSorter());
> +  return VariableDbgInfo;
> +}
> 
> 
> _______________________________________________
> 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