Skip to content
  1. Mar 20, 2009
  2. Mar 13, 2009
    • Evan Cheng's avatar
      Fix some significant problems with constant pools that resulted in unnecessary... · 1fb8aedd
      Evan Cheng authored
      Fix some significant problems with constant pools that resulted in unnecessary paddings between constant pool entries, larger than necessary alignments (e.g. 8 byte alignment for .literal4 sections), and potentially other issues.
      
      1. ConstantPoolSDNode alignment field is log2 value of the alignment requirement. This is not consistent with other SDNode variants.
      2. MachineConstantPool alignment field is also a log2 value.
      3. However, some places are creating ConstantPoolSDNode with alignment value rather than log2 values. This creates entries with artificially large alignments, e.g. 256 for SSE vector values.
      4. Constant pool entry offsets are computed when they are created. However, asm printer group them by sections. That means the offsets are no longer valid. However, asm printer uses them to determine size of padding between entries.
      5. Asm printer uses expensive data structure multimap to track constant pool entries by sections.
      6. Asm printer iterate over SmallPtrSet when it's emitting constant pool entries. This is non-deterministic.
      
      
      Solutions:
      1. ConstantPoolSDNode alignment field is changed to keep non-log2 value.
      2. MachineConstantPool alignment field is also changed to keep non-log2 value.
      3. Functions that create ConstantPool nodes are passing in non-log2 alignments.
      4. MachineConstantPoolEntry no longer keeps an offset field. It's replaced with an alignment field. Offsets are not computed when constant pool entries are created. They are computed on the fly in asm printer and JIT.
      5. Asm printer uses cheaper data structure to group constant pool entries.
      6. Asm printer compute entry offsets after grouping is done.
      7. Change JIT code to compute entry offsets on the fly.
      
      llvm-svn: 66875
      1fb8aedd
  3. Mar 10, 2009
  4. Mar 09, 2009
  5. Feb 24, 2009
  6. Feb 21, 2009
    • Anton Korobeynikov's avatar
      Drop bunch of half-working stuff in the ext_weak linkage support. · 42aae865
      Anton Korobeynikov authored
      Now we're using one gross, but quite robust hack :) (previous ones
      did not work, for example, when ext_weak symbol was used deep inside
      constant expression in the initializer).
      
      The proper fix of this problem will require some quite huge asmprinter
      changes and that's why was postponed. This fixes PR3629 by the way :)
      
      llvm-svn: 65230
      42aae865
  7. Feb 05, 2009
  8. Jan 30, 2009
    • Sanjiv Gupta's avatar
      Enable emitting of constant values in non-default address space as well. The... · 964a29f6
      Sanjiv Gupta authored
      Enable emitting of constant values in non-default address space as well. The APIs emitting constants now take an additional parameter signifying the address space in which to emit. The APIs like getData8BitsDirective() etc are made virtual enabling targets to be able to define appropirate directivers for various sizes and address spaces.
      
      llvm-svn: 63377
      964a29f6
  9. Jan 28, 2009
  10. Jan 23, 2009
  11. Jan 22, 2009
  12. Jan 15, 2009
  13. Jan 13, 2009
  14. Jan 12, 2009
  15. Dec 22, 2008
  16. Dec 19, 2008
    • Rafael Espindola's avatar
      Fix bug 3202. · 770b4b83
      Rafael Espindola authored
      The EH_frame and .eh symbols are now private, except for darwin9 and earlier.
      The patch also fixes the definition of PrivateGlobalPrefix on pcc linux.
      
      llvm-svn: 61242
      770b4b83
  17. Dec 03, 2008
    • Rafael Espindola's avatar
      Fix bug 3140. · cda011b5
      Rafael Espindola authored
      Print a single parameter .file directive if we have an ELF target.
      
      llvm-svn: 60480
      cda011b5
  18. Nov 22, 2008
  19. Nov 10, 2008
  20. Nov 09, 2008
  21. Nov 08, 2008
  22. Oct 10, 2008
  23. Oct 09, 2008
  24. Oct 03, 2008
  25. Sep 25, 2008
  26. Sep 24, 2008
  27. Sep 17, 2008
    • Dale Johannesen's avatar
      Add a bit to mark operands of asm's that conflict · f8610ebe
      Dale Johannesen authored
      with an earlyclobber operand elsewhere.  Propagate
      this bit and the earlyclobber bit through SDISel.
      Change linear-scan RA not to allocate regs in a way 
      that conflicts with an earlyclobber.  See also comments.
      
      llvm-svn: 56290
      f8610ebe
  28. Sep 10, 2008
    • Dale Johannesen's avatar
      Move the uglier parts of deciding not to emit a · abb1e777
      Dale Johannesen authored
      UsedDirective for some symbols in llvm.used into
      Darwin-specific code.  I've decided LessPrivateGlobal
      is potentially a useful abstraction and left it in
      the target-independent area, with improved comment.
      
      llvm-svn: 56024
      abb1e777
  29. Sep 09, 2008
    • Dale Johannesen's avatar
      Fix logic for not emitting no-dead-strip for some · f0802254
      Dale Johannesen authored
      objects in llvm.used (thanks Anton).  Makes visible
      the magic 'l' prefix for symbols on Darwin which are
      to be passed through the assembler, then removed at
      linktime (previously all references to this had been
      hidden in the ObjC FE code, oh well).
      
      llvm-svn: 55973
      f0802254
  30. Sep 08, 2008
Loading