Skip to content
  1. Jan 07, 2014
  2. Jan 03, 2014
    • Rafael Espindola's avatar
      Make the llvm mangler depend only on DataLayout. · 58873566
      Rafael Espindola authored
      Before this patch any program that wanted to know the final symbol name of a
      GlobalValue had to link with Target.
      
      This patch implements a compromise solution where the mangler uses DataLayout.
      This way, any tool that already links with Target (llc, clang) gets the exact
      behavior as before and new IR files can be mangled without linking with Target.
      
      With this patch the mangler is constructed with just a DataLayout and DataLayout
      is extended to include the information the Mangler needs.
      
      llvm-svn: 198438
      58873566
  3. Dec 05, 2013
    • Rafael Espindola's avatar
      Remove the isImplicitlyPrivate argument of getNameWithPrefix. · 117b20c4
      Rafael Espindola authored
      getSymbolWithGlobalValueBase use is to create a name of a new symbol based
      on the name of an existing GV. Assert that and then remove the last call
      to pass true to isImplicitlyPrivate.
      
      This gives the mangler API a 1:1 mapping from GV to names, which is what we
      need to drop the mangler dependency on the target (and use an extended
      datalayout instead).
      
      llvm-svn: 196472
      117b20c4
  4. Nov 28, 2013
  5. Nov 27, 2013
  6. Nov 14, 2013
    • Rafael Espindola's avatar
      Don't mangle \n and " · fe4e088d
      Rafael Espindola authored
      There is nothing special about quotes and newlines from the object
      file point of view, only the assembler has to worry about expanding
      the \n and \".
      
      This patch then removes the special handling from the Mangler.
      
      llvm-svn: 194667
      fe4e088d
  7. Nov 13, 2013
    • Rafael Espindola's avatar
      Remove AllowQuotesInName and friends from MCAsmInfo. · fdc88137
      Rafael Espindola authored
      Accepting quotes is a property of an assembler, not of an object file. For
      example, ELF can support any names for sections and symbols, but the gnu
      assembler only accepts quotes in some contexts and llvm-mc in a few more.
      
      LLVM should not produce different symbols based on a guess about which assembler
      will be reading the code it is printing.
      
      llvm-svn: 194575
      fdc88137
    • Rafael Espindola's avatar
      Remove always true flag. · 6cd1b9ae
      Rafael Espindola authored
      llvm-svn: 194530
      6cd1b9ae
  8. Oct 29, 2013
  9. Jul 29, 2013
    • Nico Rieck's avatar
      Use proper section suffix for COFF weak symbols · 7fdaee8f
      Nico Rieck authored
      32-bit symbols have "_" as global prefix, but when forming the name of
      COMDAT sections this prefix is ignored. The current behavior assumes that
      this prefix is always present which is not the case for 64-bit and names
      are truncated.
      
      llvm-svn: 187356
      7fdaee8f
  10. Jun 18, 2013
  11. May 29, 2013
  12. Apr 19, 2013
  13. 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
  14. 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
  15. Oct 08, 2012
  16. Sep 14, 2012
    • Dmitri Gribenko's avatar
      Fix Doxygen issues: · 5485acd4
      Dmitri Gribenko authored
      * wrap code blocks in \code ... \endcode;
      * refer to parameter names in paragraphs correctly (\arg is not what most
        people want -- it starts a new paragraph);
      * use \param instead of \arg to document parameters in order to be consistent
        with the rest of the codebase.
      
      llvm-svn: 163902
      5485acd4
  17. Aug 17, 2012
    • Bill Wendling's avatar
      Change the `linker_private_weak_def_auto' linkage to `linkonce_odr_auto_hide' to · 34bc34ec
      Bill Wendling authored
      make it more consistent with its intended semantics.
      
      The `linker_private_weak_def_auto' linkage type was meant to automatically hide
      globals which never had their addresses taken. It has nothing to do with the
      `linker_private' linkage type, which outputs the symbols with a `l' (ell) prefix
      among other things.
      
      The intended semantic is more like the `linkonce_odr' linkage type.
      
      Change the name of the linkage type to `linkonce_odr_auto_hide'. And therefore
      changing the semantics so that it produces the correct output for the linker.
      
      Note: The old linkage name `linker_private_weak_def_auto' will still parse but
      is not a synonym for `linkonce_odr_auto_hide'. This should be removed in 4.0.
      <rdar://problem/11754934>
      
      llvm-svn: 162114
      34bc34ec
  18. Apr 07, 2012
    • Alexis Hunt's avatar
      Output UTF-8-encoded characters as identifier characters into assembly · 0235f684
      Alexis Hunt authored
      by default.
      
      This is a behaviour configurable in the MCAsmInfo. I've decided to turn
      it on by default in (possibly optimistic) hopes that most assemblers are
      reasonably sane. If this proves a problem, switching to default seems
      reasonable.
      
      I'm not sure if this is the opportune place to test, but it seemed good
      to make sure it was tested somewhere.
      
      llvm-svn: 154235
      0235f684
  19. Jul 18, 2011
  20. Feb 11, 2011
  21. Aug 21, 2010
    • Bill Wendling's avatar
      Create the new linker type "linker_private_weak_def_auto". · 578ee407
      Bill Wendling authored
      It's similar to "linker_private_weak", but it's known that the address of the
      object is not taken. For instance, functions that had an inline definition, but
      the compiler decided not to inline it. Note, unlike linker_private and
      linker_private_weak, linker_private_weak_def_auto may have only default
      visibility.  The symbols are removed by the linker from the final linked image
      (executable or dynamic library).
      
      llvm-svn: 111684
      578ee407
  22. Jul 01, 2010
    • Bill Wendling's avatar
      Implement the "linker_private_weak" linkage type. This will be used for · 03bcd6ec
      Bill Wendling authored
      Objective-C metadata types which should be marked as "weak", but which the
      linker will remove upon final linkage. However, this linkage isn't specific to
      Objective-C.
      
      For example, the "objc_msgSend_fixup_alloc" symbol is defined like this:
      
            .globl l_objc_msgSend_fixup_alloc
            .weak_definition l_objc_msgSend_fixup_alloc
            .section __DATA, __objc_msgrefs, coalesced
            .align 3
      l_objc_msgSend_fixup_alloc:
             .quad   _objc_msgSend_fixup
             .quad   L_OBJC_METH_VAR_NAME_1
      
      This is different from the "linker_private" linkage type, because it can't have
      the metadata defined with ".weak_definition".
      
      Currently only supported on Darwin platforms.
      
      llvm-svn: 107433
      03bcd6ec
  23. Jun 30, 2010
  24. Jun 29, 2010
    • Bill Wendling's avatar
      Introducing the "linker_weak" linkage type. This will be used for Objective-C · 1767723d
      Bill Wendling authored
      metadata types which should be marked as "weak", but which the linker will
      remove upon final linkage. For example, the "objc_msgSend_fixup_alloc" symbol is
      defined like this:
      
             .globl l_objc_msgSend_fixup_alloc
             .weak_definition l_objc_msgSend_fixup_alloc
             .section __DATA, __objc_msgrefs, coalesced
             .align 3
      l_objc_msgSend_fixup_alloc:
              .quad   _objc_msgSend_fixup
              .quad   L_OBJC_METH_VAR_NAME_1
      
      This is different from the "linker_private" linkage type, because it can't have
      the metadata defined with ".weak_definition".
      
      llvm-svn: 107205
      1767723d
  25. Apr 29, 2010
  26. Mar 30, 2010
  27. Mar 12, 2010
  28. Jan 17, 2010
  29. Jan 16, 2010
  30. Jan 13, 2010
Loading