Skip to content
  1. Sep 07, 2012
    • 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
  2. Aug 25, 2012
  3. 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
  4. Jun 28, 2012
  5. Jun 22, 2012
  6. 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
  7. 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
  8. Mar 24, 2012
  9. Mar 20, 2012
  10. Mar 06, 2012
  11. Mar 05, 2012
  12. 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
  13. Feb 15, 2012
  14. Feb 14, 2012
  15. 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
  16. Feb 03, 2012
  17. Feb 01, 2012
  18. 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
  19. Jan 30, 2012
  20. Jan 26, 2012
  21. Jan 25, 2012
  22. Jan 24, 2012
  23. Jan 20, 2012
  24. Jan 13, 2012
  25. Dec 20, 2011
  26. Dec 07, 2011
  27. Dec 06, 2011
    • Jakob Stoklund Olesen's avatar
      Use logarithmic units for basic block alignment. · 10e12522
      Jakob Stoklund Olesen authored
      This was actually a bit of a mess. TLI.setPrefLoopAlignment was clearly
      documented as taking log2(bytes) units, but the x86 target would still
      set a preferred loop alignment of '16'.
      
      CodePlacementOpt passed this number on to the basic block, and
      AsmPrinter interpreted it as bytes.
      
      Now both MachineFunction and MachineBasicBlock use logarithmic
      alignments.
      
      Obviously, MachineConstantPool still measures alignments in bytes, so we
      can emulate the thrill of using as.
      
      llvm-svn: 145889
      10e12522
  28. Dec 04, 2011
  29. Nov 15, 2011
    • Rafael Espindola's avatar
      We currently use a callback to handle an IL pass deleting a BB that still · f11e7f13
      Rafael Espindola authored
      has a reference to it. Unfortunately, that doesn't work for codegen passes
      since we don't get notified of MBB's being deleted (the original BB stays).
      
      Use that fact to our advantage and after printing a function, check if
      any of the IL BBs corresponds to a symbol that was not printed. This fixes
      pr11202.
      
      llvm-svn: 144674
      f11e7f13
  30. Nov 05, 2011
  31. Oct 27, 2011
  32. Oct 05, 2011
Loading