Skip to content
  1. Dec 16, 2008
  2. Dec 15, 2008
  3. Dec 14, 2008
    • Duncan Sands's avatar
      Reapply r60997, this time without forgetting that · f312dc77
      Duncan Sands authored
      target constants are allowed to have an illegal
      type.
      
      llvm-svn: 61006
      f312dc77
    • Bill Wendling's avatar
      Temporarily revert r60997. It was causing this failure: · e5af6f19
      Bill Wendling authored
      Running /Users/void/llvm/llvm.src/test/CodeGen/Generic/dg.exp ...
      FAIL: /Users/void/llvm/llvm.src/test/CodeGen/Generic/asm-large-immediate.ll
      Failed with exit(1) at line 1
      while running:  llvm-as < /Users/void/llvm/llvm.src/test/CodeGen/Generic/asm-large-immediate.ll |  llc | /usr/bin/grep 68719476738
      Assertion failed: ((TypesNeedLegalizing || getTypeAction(VT) == Legal) && "Illegal type introduced after type legalization?"), function HandleOp, file /Users/void/llvm/llvm.src/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp, line 493.
      0   llc               0x0085392e char const* std::find<char const*, char>(char const*, char const*, char const&) + 98
      1   llc               0x00853e63 llvm::sys::PrintStackTraceOnErrorSignal() + 593
      2   libSystem.B.dylib 0x96cac09b _sigtramp + 43
      3   libSystem.B.dylib 0xffffffff _sigtramp + 1765097359
      4   libSystem.B.dylib 0x96d24ec2 raise + 26
      5   libSystem.B.dylib 0x96d3447f abort + 73
      6   libSystem.B.dylib 0x96d26063 __assert_rtn + 101
      7   llc               0x004f9018 llvm::cast_retty<llvm::SubprogramDesc, llvm::DebugInfoDesc*>::ret_type llvm::cast<llvm::Sub
      ...
      
      llvm-svn: 61001
      e5af6f19
  4. Dec 13, 2008
  5. Dec 12, 2008
    • Devang Patel's avatar
      Do not print empty DW_AT_comp_dir. · 42828e81
      Devang Patel authored
      llvm-svn: 60965
      42828e81
    • Duncan Sands's avatar
      When expanding unaligned loads and stores do not make · 8f352fe1
      Duncan Sands authored
      use of illegal integer types: instead, use a stack slot
      and copying via integer registers.  The existing code
      is still used if the bitconvert is to a legal integer
      type.
      
      This fires on the PPC testcases 2007-09-08-unaligned.ll
      and vec_misaligned.ll.  It looks like equivalent code
      is generated with these changes, just permuted, but
      it's hard to tell.
      
      With these changes, nothing in LegalizeDAG produces
      illegal integer types anymore.  This is a prerequisite
      for removing the LegalizeDAG type legalization code.
      
      While there I noticed that the existing code doesn't
      handle trunc store of f64 to f32: it turns this into
      an i64 store, which represents a 4 byte stack smash.
      I added a FIXME about this.  Hopefully someone more
      motivated than I am will take care of it.
      
      llvm-svn: 60964
      8f352fe1
    • Evan Cheng's avatar
      Fix add/sub expansion: don't create ADD / SUB with two results (seems like... · 3270a1de
      Evan Cheng authored
      Fix add/sub expansion: don't create ADD / SUB with two results (seems like everyone is doing this these days :-). Patch by Daniel M Gessel!
      
      llvm-svn: 60958
      3270a1de
    • Duncan Sands's avatar
      When using a 4 byte jump table on a 64 bit machine, · e4bcb8e2
      Duncan Sands authored
      do an extending load of the 4 bytes rather than a
      potentially illegal (type) i32 load followed by a
      sign extend.
      
      llvm-svn: 60945
      e4bcb8e2
    • Mon P Wang's avatar
      Added support for SELECT v8i8 v4i16 for X86 (MMX) · 9c2d26d2
      Mon P Wang authored
      Added support for TRUNC v8i16 to v8i8 for X86 (MMX)
      
      llvm-svn: 60916
      9c2d26d2
    • Bill Wendling's avatar
      Redo the arithmetic with overflow architecture. I was changing the semantics of · 1a317678
      Bill Wendling authored
      ISD::ADD to emit an implicit EFLAGS. This was horribly broken. Instead, replace
      the intrinsic with an ISD::SADDO node. Then custom lower that into an
      X86ISD::ADD node with a associated SETCC that checks the correct condition code
      (overflow or carry). Then that gets lowered into the correct X86::ADDOvf
      instruction.
      
      Similar for SUB and MUL instructions.
      
      llvm-svn: 60915
      1a317678
  6. Dec 11, 2008
  7. Dec 10, 2008
  8. Dec 09, 2008
    • Dan Gohman's avatar
      Rewrite the SDep class, and simplify some of the related code. · 2d170896
      Dan Gohman authored
      The Cost field is removed. It was only being used in a very limited way,
      to indicate when the scheduler should attempt to protect a live register,
      and it isn't really needed to do that. If we ever want the scheduler to
      start inserting copies in non-prohibitive situations, we'll have to
      rethink some things anyway.
      
      A Latency field is added. Instead of giving each node a single
      fixed latency, each edge can have its own latency. This will eventually
      be used to model various micro-architecture properties more accurately.
      
      The PointerIntPair class and an internal union are now used, which
      reduce the overall size.
      
      llvm-svn: 60806
      2d170896
    • Dan Gohman's avatar
      Minor code simplification. · 9356d8f7
      Dan Gohman authored
      llvm-svn: 60804
      9356d8f7
    • Bill Wendling's avatar
      Add sub/mul overflow intrinsics. This currently doesn't have a · db8ec2d7
      Bill Wendling authored
      target-independent way of determining overflow on multiplication. It's very
      tricky. Patch by Zoltan Varga!
      
      llvm-svn: 60800
      db8ec2d7
Loading