Skip to content
  1. Dec 12, 2012
    • Pedro Artigas's avatar
      · 7212ee45
      Pedro Artigas authored
      Make the MCStreamer have a reset method and call that after finalization of the asm printer, 
      also changed MCContext to a single reset only method for simplicity as requested on the list
      
      llvm-svn: 170041
      7212ee45
  2. Dec 10, 2012
  3. 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
  4. Nov 27, 2012
    • Ulrich Weigand's avatar
      Never use .lcomm on platforms where it does not accept an alignment · e5f94058
      Ulrich Weigand authored
      argument.  Instead, use a pair of .local and .comm directives.
      
      This avoids spurious differences between binaries built by the
      integrated assembler vs. those built by the external assembler,
      since the external assembler may impose alignment requirements
      on .lcomm symbols where the integrated assembler does not.
      
      llvm-svn: 168704
      e5f94058
  5. Nov 20, 2012
  6. Nov 01, 2012
    • Chandler Carruth's avatar
      Revert the majority of the next patch in the address space series: · 5da3f051
      Chandler Carruth authored
      r165941: Resubmit the changes to llvm core to update the functions to
               support different pointer sizes on a per address space basis.
      
      Despite this commit log, this change primarily changed stuff outside of
      VMCore, and those changes do not carry any tests for correctness (or
      even plausibility), and we have consistently found questionable or flat
      out incorrect cases in these changes. Most of them are probably correct,
      but we need to devise a system that makes it more clear when we have
      handled the address space concerns correctly, and ideally each pass that
      gets updated would receive an accompanying test case that exercises that
      pass specificaly w.r.t. alternate address spaces.
      
      However, from this commit, I have retained the new C API entry points.
      Those were an orthogonal change that probably should have been split
      apart, but they seem entirely good.
      
      In several places the changes were very obvious cleanups with no actual
      multiple address space code added; these I have not reverted when
      I spotted them.
      
      In a few other places there were merge conflicts due to a cleaner
      solution being implemented later, often not using address spaces at all.
      In those cases, I've preserved the new code which isn't address space
      dependent.
      
      This is part of my ongoing effort to clean out the partial address space
      code which carries high risk and low test coverage, and not likely to be
      finished before the 3.2 release looms closer. Duncan and I would both
      like to see the above issues addressed before we return to these
      changes.
      
      llvm-svn: 167222
      5da3f051
    • Chandler Carruth's avatar
      Revert the series of commits starting with r166578 which introduced the · 7ec5085e
      Chandler Carruth authored
      getIntPtrType support for multiple address spaces via a pointer type,
      and also introduced a crasher bug in the constant folder reported in
      PR14233.
      
      These commits also contained several problems that should really be
      addressed before they are re-committed. I have avoided reverting various
      cleanups to the DataLayout APIs that are reasonable to have moving
      forward in order to reduce the amount of churn, and minimize the number
      of commits that were reverted. I've also manually updated merge
      conflicts and manually arranged for the getIntPtrType function to stay
      in DataLayout and to be defined in a plausible way after this revert.
      
      Thanks to Duncan for working through this exact strategy with me, and
      Nick Lewycky for tracking down the really annoying crasher this
      triggered. (Test case to follow in its own commit.)
      
      After discussing with Duncan extensively, and based on a note from
      Micah, I'm going to continue to back out some more of the more
      problematic patches in this series in order to ensure we go into the
      LLVM 3.2 branch with a reasonable story here. I'll send a note to
      llvmdev explaining what's going on and why.
      
      Summary of reverted revisions:
      
      r166634: Fix a compiler warning with an unused variable.
      r166607: Add some cleanup to the DataLayout changes requested by
               Chandler.
      r166596: Revert "Back out r166591, not sure why this made it through
               since I cancelled the command. Bleh, sorry about this!
      r166591: Delete a directory that wasn't supposed to be checked in yet.
      r166578: Add in support for getIntPtrType to get the pointer type based
               on the address space.
      llvm-svn: 167221
      7ec5085e
  7. Oct 24, 2012
  8. Oct 15, 2012
  9. Oct 11, 2012
  10. Oct 08, 2012
  11. Sep 25, 2012
  12. Sep 07, 2012
    • Benjamin Kramer's avatar
      Fix alignment of .comm and .lcomm on mingw32. · 68b9f058
      Benjamin Kramer authored
      For some reason .lcomm uses byte alignment and .comm log2 alignment so we can't
      use the same setting for both. Fix this by reintroducing the LCOMM enum.
      I verified this against mingw's gcc.
      
      llvm-svn: 163420
      68b9f058
    • Chad Rosier's avatar
      b759ede9
    • Benjamin Kramer's avatar
      MC: Overhaul handling of .lcomm · 47f9ec92
      Benjamin Kramer authored
      - Darwin lied about not supporting .lcomm and turned it into zerofill in the
        asm parser. Push the zerofill-conversion down into macho-specific code.
      - This makes the tri-state LCOMMType enum superfluous, there are no targets
        without .lcomm.
      - Do proper error reporting when trying to use .lcomm with alignment on a target
        that doesn't support it.
      - .comm and .lcomm alignment was parsed in bytes on COFF, should be power of 2.
      - Fixes PR13755 (.lcomm crashes on ELF).
      
      llvm-svn: 163395
      47f9ec92
  13. Aug 25, 2012
  14. 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
  15. Jun 28, 2012
  16. Jun 22, 2012
  17. Jun 02, 2012
    • Jakob Stoklund Olesen's avatar
      Switch all register list clients to the new MC*Iterator interface. · 54038d79
      Jakob Stoklund Olesen authored
      No functional change intended.
      
      Sorry for the churn. The iterator classes are supposed to help avoid
      giant commits like this one in the future. The TableGen-produced
      register lists are getting quite large, and it may be necessary to
      change the table representation.
      
      This makes it possible to do so without changing all clients (again).
      
      llvm-svn: 157854
      54038d79
  18. May 18, 2012
    • Jim Grosbach's avatar
      Refactor data-in-code annotations. · 4b63d2ae
      Jim Grosbach authored
      Use a dedicated MachO load command to annotate data-in-code regions.
      This is the same format the linker produces for final executable images,
      allowing consistency of representation and use of introspection tools
      for both object and executable files.
      
      Data-in-code regions are annotated via ".data_region"/".end_data_region"
      directive pairs, with an optional region type.
      
      data_region_directive := ".data_region" { region_type }
      region_type := "jt8" | "jt16" | "jt32" | "jta32"
      end_data_region_directive := ".end_data_region"
      
      The previous handling of ARM-style "$d.*" labels was broken and has
      been removed. Specifically, it didn't handle ARM vs. Thumb mode when
      marking the end of the section.
      
      rdar://11459456
      
      llvm-svn: 157062
      4b63d2ae
  19. Mar 24, 2012
  20. Mar 20, 2012
  21. Mar 06, 2012
  22. Mar 05, 2012
  23. Feb 22, 2012
    • Hal Finkel's avatar
      Allow the use of an alternate symbol for calculating a function's size. · ad4d9f58
      Hal Finkel authored
      The standard function epilog includes a .size directive, but ppc64 uses
      an alternate local symbol to tag the actual start of each function.
      
      Until recently, binutils accepted the .size directive as:
       .size	test1, .Ltmp0-test1
      however, using this directive with recent binutils will result in the error:
       .size expression for XXX does not evaluate to a constant
      so we must use the label which actually tags the start of the function.
      
      llvm-svn: 151200
      ad4d9f58
  24. Feb 15, 2012
  25. Feb 14, 2012
  26. Feb 05, 2012
    • Chris Lattner's avatar
      reapply the patches reverted in r149470 that reenable ConstantDataArray, · cf9e8f69
      Chris Lattner authored
      but with a critical fix to the SelectionDAG code that optimizes copies
      from strings into immediate stores: the previous code was stopping reading
      string data at the first nul.  Address this by adding a new argument to
      llvm::getConstantStringInfo, preserving the behavior before the patch.
      
      llvm-svn: 149800
      cf9e8f69
  27. Feb 03, 2012
  28. Feb 01, 2012
  29. Jan 31, 2012
    • Chris Lattner's avatar
      · 8ea967d0
      Chris Lattner authored
      with recent changes, ConstantArray is never a "string".  Remove the associated
      methods and constant fold the clients to false.
      
      llvm-svn: 149362
      8ea967d0
    • Chris Lattner's avatar
      don't emit a 1-byte object as a .fill. This is silly and causes · 0d3785e1
      Chris Lattner authored
      CodeGen/X86/global-sections.ll to fail with CDArray
      
      llvm-svn: 149343
      0d3785e1
    • Chandler Carruth's avatar
      Chris's constant data sequence refactoring actually enabled printing · 2c469ff1
      Chandler Carruth authored
      vectors of all one bits to be printed more cleverly in the AsmPrinter.
      Unfortunately, the byte value for all one bits is the same with
      -fsigned-char as the error return of '-1'. Force this to be the unsigned
      byte value when returning it to avoid this problem, and update the test
      case for the shiny new behavior.
      
      Yay for building LLVM and Clang with -funsigned-char.
      
      Chris, please review, and let me know if there is any reason to not
      desire this change. It seems good on the surface, and certainly intended
      based on the code written.
      
      llvm-svn: 149299
      2c469ff1
  30. Jan 30, 2012
  31. Jan 26, 2012
Loading