Skip to content
  1. Feb 22, 2014
  2. Dec 17, 2013
    • Quentin Colombet's avatar
      Add warning capabilities in LLVM. · b4c44d23
      Quentin Colombet authored
      This reapplies r197438 and fixes the link-time circular dependency between
      IR and Support. The fix consists in moving the diagnostic support into IR.
      
      The patch adds a new LLVMContext::diagnose that can be used to communicate to
      the front-end, if any, that something of interest happened.
      The diagnostics are supported by a new abstraction, the DiagnosticInfo class.
      The base class contains the following information:
      - The kind of the report: What this is about.
      - The severity of the report: How bad this is.
      
      This patch also adds 2 classes:
      - DiagnosticInfoInlineAsm: For inline asm reporting. Basically, this diagnostic
      will be used to switch to the new diagnostic API for LLVMContext::emitError.
      - DiagnosticStackSize: For stack size reporting. Comes as a replacement of the
      hard coded warning in PEI.
      
      This patch also features dynamic diagnostic identifiers. In other words plugins
      can use this infrastructure for their own diagnostics (for more details, see
      getNextAvailablePluginDiagnosticKind).
      
      This patch introduces a new DiagnosticHandlerTy and a new DiagnosticContext in
      the LLVMContext that should be set by the front-end to be able to map these
      diagnostics in its own system.
      
      http://llvm-reviews.chandlerc.com/D2376
      <rdar://problem/15515174>
      
      llvm-svn: 197508
      b4c44d23
    • Quentin Colombet's avatar
    • Quentin Colombet's avatar
      Add warning capabilities in LLVM. · 66673f40
      Quentin Colombet authored
      The patch adds a new LLVMContext::diagnose that can be used to communicate to
      the front-end, if any, that something of interest happened.
      The diagnostics are supported by a new abstraction, the DiagnosticInfo class.
      The base class contains the following information:
      - The kind of the report: What this is about.
      - The severity of the report: How bad this is.
      
      This patch also adds 2 classes:
      - DiagnosticInfoInlineAsm: For inline asm reporting. Basically, this diagnostic
      will be used to switch to the new diagnostic API for LLVMContext::emitError.
      - DiagnosticStackSize: For stack size reporting. Comes as a replacement of the
      hard coded warning in PEI.
      
      This patch also features dynamic diagnostic identifiers. In other words plugins
      can use this infrastructure for their own diagnostics (for more details, see
      getNextAvailablePluginDiagnosticKind).
      
      This patch introduces a new DiagnosticHandlerTy and a new DiagnosticContext in
      the LLVMContext that should be set by the front-end to be able to map these
      diagnostics in its own system.
      
      http://llvm-reviews.chandlerc.com/D2376
      <rdar://problem/15515174>
      
      llvm-svn: 197438
      66673f40
  3. Mar 06, 2013
  4. Feb 12, 2013
  5. Feb 11, 2013
  6. Feb 08, 2013
    • Bob Wilson's avatar
      Revert "Add LLVMContext::emitWarning methods and use them. <rdar://problem/12867368>" · bfb44ef9
      Bob Wilson authored
      This reverts r171041. This was a nice idea that didn't work out well.
      Clang warnings need to be associated with warning groups so that they can
      be selectively disabled, promoted to errors, etc. This simplistic patch didn't
      allow for that. Enhancing it to provide some way for the backend to specify
      a front-end warning type seems like overkill for the few uses of this, at
      least for now.
      
      llvm-svn: 174748
      bfb44ef9
  7. Jan 02, 2013
    • Chandler Carruth's avatar
      Move all of the header files which are involved in modelling the LLVM IR · 9fb823bb
      Chandler Carruth authored
      into their new header subdirectory: include/llvm/IR. This matches the
      directory structure of lib, and begins to correct a long standing point
      of file layout clutter in LLVM.
      
      There are still more header files to move here, but I wanted to handle
      them in separate commits to make tracking what files make sense at each
      layer easier.
      
      The only really questionable files here are the target intrinsic
      tablegen files. But that's a battle I'd rather not fight today.
      
      I've updated both CMake and Makefile build systems (I think, and my
      tests think, but I may have missed something).
      
      I've also re-sorted the includes throughout the project. I'll be
      committing updates to Clang, DragonEgg, and Polly momentarily.
      
      llvm-svn: 171366
      9fb823bb
    • Chandler Carruth's avatar
      Rename VMCore directory to IR. · ef860a24
      Chandler Carruth authored
      Aside from moving the actual files, this patch only updates the build
      system and the source file comments under lib/... that are relevant.
      
      I'll be updating other docs and other files in smaller subsequnet
      commits.
      
      While I've tried to test this, but it is entirely possible that there
      will still be some build system fallout.
      
      Also, note that I've not changed the library name itself: libLLVMCore.a
      is still the library name. I'd be interested in others' opinions about
      whether we should rename this as well (I think we should, just not sure
      what it might break)
      
      llvm-svn: 171359
      ef860a24
  8. Dec 26, 2012
  9. Dec 25, 2012
    • Bob Wilson's avatar
      Rename LLVMContext diagnostic handler types and functions. · fe73ac34
      Bob Wilson authored
      These are now generally used for all diagnostics from the backend, not just
      for inline assembly, so this drops the "InlineAsm" from the names.  No
      functional change.  (I've left aliases for the old names but only for long
      enough to let me switch over clang to use the new ones.)
      
      llvm-svn: 171047
      fe73ac34
  10. Dec 24, 2012
    • Bob Wilson's avatar
      Add LLVMContext::emitWarning methods and use them. <rdar://problem/12867368> · 4ed23578
      Bob Wilson authored
      When the backend is used from clang, it should produce proper diagnostics
      instead of just printing messages to errs(). Other clients may also want to
      register their own error handlers with the LLVMContext, and the same handler
      should work for warnings in the same way as the existing emitError methods.
      
      llvm-svn: 171041
      4ed23578
  11. Dec 03, 2012
    • Chandler Carruth's avatar
      Use the new script to sort the includes of every file under lib. · ed0881b2
      Chandler Carruth authored
      Sooooo many of these had incorrect or strange main module includes.
      I have manually inspected all of these, and fixed the main module
      include to be the nearest plausible thing I could find. If you own or
      care about any of these source files, I encourage you to take some time
      and check that these edits were sensible. I can't have broken anything
      (I strictly added headers, and reordered them, never removed), but they
      may not be the headers you'd really like to identify as containing the
      API being implemented.
      
      Many forward declarations and missing includes were added to a header
      files to allow them to parse cleanly when included first. The main
      module rule does in fact have its merits. =]
      
      llvm-svn: 169131
      ed0881b2
  12. Sep 13, 2012
  13. Jun 19, 2012
    • Nuno Lopes's avatar
      revert r158660, since Chris has some issues with this patch (namely using code... · f9abcb7b
      Nuno Lopes authored
      revert r158660, since Chris has some issues with this patch (namely using code to reprent information only used by the compiler)
      
      Original commit msg:
      add the 'alloc' metadata node to represent the size of offset of buffers pointed to by pointers.
      This metadata can be attached to any instruction returning a pointer
      
      llvm-svn: 158688
      f9abcb7b
  14. Jun 18, 2012
  15. Apr 14, 2012
  16. Mar 24, 2012
  17. Jan 04, 2012
  18. Oct 27, 2011
  19. Oct 16, 2011
  20. Jul 06, 2011
  21. Dec 19, 2010
  22. Dec 18, 2010
  23. Nov 17, 2010
  24. Sep 14, 2010
    • Dan Gohman's avatar
      Remove the experimental AliasAnalysis::getDependency interface, which · 41f14cf3
      Dan Gohman authored
      isn't a good level of abstraction for memdep. Instead, generalize
      AliasAnalysis::alias and related interfaces with a new Location
      class for describing a memory location. For now, this is the same
      Pointer and Size as before, plus an additional field for a TBAA tag.
      
      Also, introduce a fixed MD_tbaa metadata tag kind.
      
      llvm-svn: 113858
      41f14cf3
  25. Sep 08, 2010
  26. Jul 20, 2010
    • Dan Gohman's avatar
      Add support for remapping metadata kind IDs when reading in a · 43aa8f03
      Dan Gohman authored
      bitcode file, so that two bitcode files where the same metadata kind
      name happens to have been assigned a different ID can still be
      linked together.
      
      Eliminate the restriction that metadata kind IDs can't be 0.
      
      Change MD_dbg from 1 to 0, because we can now, and because it's
      less mysterious that way.
      
      llvm-svn: 108939
      43aa8f03
  27. Apr 08, 2010
    • Chris Lattner's avatar
      introduce a new recoverable error handling API to LLVMContext · 1e45789e
      Chris Lattner authored
      and use it in one place in inline asm handling stuff.  Before
      we'd generate this for an invalid modifier letter:
      
      $ clang asm.c -c -o t.o
      fatal error: error in backend: Invalid operand found in inline asm: 'abc incl    ${0:Z}'
      INLINEASM <es:abc incl    ${0:Z}>, 10, %EAX<def>, 2147483657, %EAX, 14, %EFLAGS<earlyclobber,def,dead>, <!-1>
      
      
      Now we generate this:
      
      $ clang asm.c -c -o t.o
      error: invalid operand in inline asm: 'incl    ${0:Z}'
      asm.c:3:12: note: generated from here
        __asm__ ("incl    %Z0" : "+r" (X));
                 ^
      1 error generated.
      
      This is much better but still admittedly not great ("why" is the operand 
      invalid??), codegen should try harder with its diagnostics :)
      
      llvm-svn: 100723
      1e45789e
  28. Apr 06, 2010
  29. Mar 31, 2010
    • Chris Lattner's avatar
      Fix a major source of compile-time slowness at -O0 -g by optimizing · c263b42d
      Chris Lattner authored
      the storage of !dbg metadata kinds in the instruction themselves.
      The on-the-side hash table works great for metadata that not-all
      instructions get, or for metadata that only exists when optimizing.
      But when compile-time is everything, it isn't great.
      
      I'm not super thrilled with the fact that this plops a TrackingVH in
      Instruction, because it grows it by 3 words.  I'm investigating 
      alternatives, but this should be a step in the right direction in any
      case.
      
      llvm-svn: 99957
      c263b42d
  30. Mar 30, 2010
  31. Dec 29, 2009
  32. Dec 28, 2009
  33. Oct 22, 2009
  34. Sep 28, 2009
  35. Sep 16, 2009
  36. Sep 04, 2009
Loading