Skip to content
  1. Oct 31, 2007
  2. Oct 30, 2007
    • Evan Cheng's avatar
      Typo. · 0747bc1d
      Evan Cheng authored
      llvm-svn: 43511
      0747bc1d
    • Duncan Sands's avatar
      Add support for expanding trunc stores. Consider · 9ad54650
      Duncan Sands authored
      storing an i170 on a 32 bit machine.  This is first
      promoted to a trunc-i170 store of an i256.  On a
      little-endian machine this expands to a store of
      an i128 and a trunc-i42 store of an i128.  The
      trunc-i42 store is further expanded to a trunc-i42
      store of an i64, then to a store of an i32 and a
      trunc-i10 store of an i32.  At this point the operand
      type is legal (i32) and expansion stops (legalization
      of the trunc-i10 needs to be handled in LegalizeDAG.cpp).
      On big-endian machines the high bits are stored first,
      and some bit-fiddling is needed in order to generate
      aligned stores.
      
      llvm-svn: 43499
      9ad54650
    • Duncan Sands's avatar
      If a call to getTruncStore is for a normal store, · 341f093b
      Duncan Sands authored
      offload to getStore rather than trying to handle
      both cases at once (the assertions for example
      assume the store really is truncating).
      
      llvm-svn: 43498
      341f093b
  3. Oct 29, 2007
  4. Oct 28, 2007
    • Duncan Sands's avatar
      The guaranteed alignment of ptr+offset is only the minimum of · 1826deda
      Duncan Sands authored
      of offset and the alignment of ptr if these are both powers of
      2.  While the ptr alignment is guaranteed to be a power of 2,
      there is no reason to think that offset is.  For example, if
      offset is 12 (the size of a long double on x86-32 linux) and
      the alignment of ptr is 8, then the alignment of ptr+offset
      will in general be 4, not 8.  Introduce a function MinAlign,
      lifted from gcc, for computing the minimum guaranteed alignment.
      I've tried to fix up everywhere under lib/CodeGen/SelectionDAG/.
      I also changed some places that weren't wrong (because both values
      were a power of 2), as a defensive change against people copying
      and pasting the code.
      Hopefully someone who cares about alignment will review the rest
      of LLVM and fix up the remaining places.  Since I'm on x86 I'm
      not very motivated to do this myself...
      
      llvm-svn: 43421
      1826deda
  5. Oct 26, 2007
  6. Oct 25, 2007
  7. Oct 24, 2007
  8. Oct 23, 2007
  9. Oct 22, 2007
    • Evan Cheng's avatar
      Add missing paratheses. · 5163a8f5
      Evan Cheng authored
      llvm-svn: 43227
      5163a8f5
    • Duncan Sands's avatar
      Support for expanding extending loads of integers with · 941db4da
      Duncan Sands authored
      funky bit-widths.
      
      llvm-svn: 43225
      941db4da
    • Duncan Sands's avatar
      Fix up the logic for result expanding the various extension · 8fc99506
      Duncan Sands authored
      operations so they work right for integers with funky
      bit-widths.  For example, consider extending i48 to i64
      on a 32 bit machine.  The i64 result is expanded to 2 x i32.
      We know that the i48 operand will be promoted to i64, then
      also expanded to 2 x i32.  If we had the expanded promoted
      operand to hand, then expanding the result would be trivial.
      Unfortunately at this stage we can only get hold of the
      promoted operand.  So instead we kind of hand-expand, doing
      explicit shifting and truncating to get the top and bottom
      halves of the i64 operand into 2 x i32, which are then used
      to expand the result.  This is harmless, because when the
      promoted operand is finally expanded all this bit fiddling
      turns into trivial operations which are eliminated either
      by the expansion code itself or the DAG combiner.
      
      llvm-svn: 43223
      8fc99506
    • Evan Cheng's avatar
      - Only perform the unfolding optimization when the folding in question is modref. · 85576037
      Evan Cheng authored
      - Remove a bogus assertion.
      
      llvm-svn: 43211
      85576037
  10. Oct 21, 2007
  11. Oct 20, 2007
  12. Oct 19, 2007
Loading