Skip to content
  1. Nov 10, 2008
    • Chris Lattner's avatar
      add new file · 4978d359
      Chris Lattner authored
      llvm-svn: 58955
      4978d359
    • Chris Lattner's avatar
      Add a new set of helper classes for creating and reading debug · 6d389335
      Chris Lattner authored
      information.  This logically replaces the "Desc" classes in
      MachineModuleInfo.  Nice features of these classes are that they:
      
      1. Are much more efficient than MMI because they don't create a 
         temporary parallel data structure for debug info that has to be
         'serialized' and 'deserialized' into/out of the module.
      2. These provide a much cleaner abstraction for debug info than 
         MMI, which will make it easier to change the implementation in 
         the future (to be MDNode-based).
      3. These are much easier to use than the MMI interfaces, requiring
         a lot less code in the front-ends.
      4. These can be used to both create (for frontends) and read (for
         codegen) debug information.  DebugInfoBuilder can only be used
         to create the nodes.
      
      So far, this is implemented just enough to support the debug info
      generation needs of clang.  This can and should be extended to 
      support the full set of debug info constructs, and we should switch
      llvm-gcc and llc over to using this in the near future.
      
      This code also has a ton of FIXMEs in it, because the way we 
      currently represent debug info in LLVM IR is basically insane in a
      variety of details.  This sort of issue should be fixed when we
      eventually reimplement debug info on top of MDNodes.
      
      llvm-svn: 58954
      6d389335
    • Evan Cheng's avatar
      Forgot these. · 0d9db409
      Evan Cheng authored
      llvm-svn: 58952
      0d9db409
    • Evan Cheng's avatar
      9f3058f3
    • Bill Wendling's avatar
      Correction for the last patch. Should match the conditional in the first part · 4fb13c05
      Bill Wendling authored
      of the select match, not the select instruction itself.
      
      llvm-svn: 58947
      4fb13c05
    • Bill Wendling's avatar
      The method of doing the matching with a 'select' instruction was wrong. The · 15792875
      Bill Wendling authored
      original code was matching like this:
      
      	if (match(A, m_Not(m_Value(B))))
      
      B was already matched as a 'select' instruction. However, this isn't matching
      what we think it's matching. It would match B as a 'Value', so basically
      anything would match to it. In this case, a Constant matched. B was replaced
      with a constant representation. And then the wrong value would be used in the
      SelectInst::Create statement, causing a crash.
      
      After thinking on this for a moment, and after Nick L. told me how the pattern
      matching stuff was supposed to work, the solution was to match NOT an m_Value,
      but an m_Select.
      
      llvm-svn: 58946
      15792875
  2. Nov 09, 2008
  3. Nov 08, 2008
  4. Nov 07, 2008
Loading