Skip to content
  1. Sep 28, 2009
  2. Sep 25, 2009
    • Dan Gohman's avatar
      Improve MachineMemOperand handling. · 48b185d6
      Dan Gohman authored
       - Allocate MachineMemOperands and MachineMemOperand lists in MachineFunctions.
         This eliminates MachineInstr's std::list member and allows the data to be
         created by isel and live for the remainder of codegen, avoiding a lot of
         copying and unnecessary translation. This also shrinks MemSDNode.
       - Delete MemOperandSDNode. Introduce MachineSDNode which has dedicated
         fields for MachineMemOperands.
       - Change MemSDNode to have a MachineMemOperand member instead of its own
         fields with the same information. This introduces some redundancy, but
         it's more consistent with what MachineInstr will eventually want.
       - Ignore alignment when searching for redundant loads for CSE, but remember
         the greatest alignment.
      
      Target-specific code which previously used MemOperandSDNodes with generic
      SDNodes now use MemIntrinsicSDNodes, with opcodes in a designated range
      so that the SelectionDAG framework knows that MachineMemOperand information
      is available.
      
      llvm-svn: 82794
      48b185d6
    • Dan Gohman's avatar
      Rename getTargetNode to getMachineNode, for consistency with the · 32f71d71
      Dan Gohman authored
      naming scheme used in SelectionDAG, where there are multiple kinds
      of "target" nodes, but "machine" nodes are nodes which represent
      a MachineInstr.
      
      llvm-svn: 82790
      32f71d71
  3. Sep 24, 2009
  4. Sep 21, 2009
  5. Sep 18, 2009
  6. Sep 14, 2009
  7. Sep 13, 2009
  8. Sep 11, 2009
  9. Sep 10, 2009
  10. Sep 09, 2009
    • Chris Lattner's avatar
      hoist the call to processDebugLoc out of the generated · 716a8c92
      Chris Lattner authored
      asm printer into the "printInstruction" routine.  This
      fixes a problem where the experimental asmprinter would
      drop debug labels in some cases, and fixes issues on ppc/xcore
      where pseudo instructions like "mr" didn't get debug locs properly.
      
      It is annoying that this moves the call from one place into each
      target, but a future set of more invasive refactorings will fix
      that problem.
      
      llvm-svn: 81377
      716a8c92
  11. Sep 06, 2009
  12. Aug 29, 2009
    • Bob Wilson's avatar
      PR4795: Remove EEVT::isFP, isInt and isVec types used by TableGen's type · 57b946c9
      Bob Wilson authored
      inferencing.  As far as I can tell, these are equivalent to the existing
      MVT::fAny, iAny and vAny types, and having both of them makes it harder
      to reason about and modify the type inferencing code.
      
      The specific problem in PR4795 occurs when updating a vAny type to be fAny
      or iAny, or vice versa.  Both iAny and fAny include vector types -- they
      intersect with the set of types represented by vAny.  When merging them,
      choose fAny/iAny to represent the intersection.  This is not perfect, since
      fAny/iAny also include scalar types, but it is good enough for TableGen's
      type inferencing.
      
      llvm-svn: 80423
      57b946c9
  13. Aug 27, 2009
  14. Aug 25, 2009
    • Dan Gohman's avatar
      Make LLVM command-line tools overwrite their output files without -f. · 61a8796d
      Dan Gohman authored
      This is conventional command-line tool behavior. -f now just means
      "enable binary output on terminals".
      
      Add a -f option to llvm-extract and llvm-link, for consistency.
      
      Remove F_Force from raw_fd_ostream and enable overwriting and
      truncating by default. Introduce an F_Excl flag to permit users to
      enable a failure when the file already exists. This flag is
      currently unused.
      
      Update Makefiles and documentation accordingly.
      
      llvm-svn: 79990
      61a8796d
  15. Aug 24, 2009
    • Chris Lattner's avatar
      prune the #includes in raw_ostream.h by moving a · 06fa1768
      Chris Lattner authored
      member out of line. ftostr is not particularly speedy,
      so that method is presumably not perf sensitive.
      
      llvm-svn: 79885
      06fa1768
    • Chris Lattner's avatar
      Prune #includes from llvm/Linker.h and llvm/System/Path.h, · c521f541
      Chris Lattner authored
      forcing them down into various .cpp files.
      
      This change also:
      1. Renames TimeValue::toString() and Path::toString() to ::str()
         for similarity with the STL.
      2. Removes all stream insertion support for sys::Path, forcing
         clients to call .str().
      3. Removes a use of Config/alloca.h from bugpoint, using smallvector
         instead.
      4. Weans llvm-db off <iostream>
      
      sys::Path really needs to be gutted, but I don't have the desire to
      do it at this point.
      
      llvm-svn: 79869
      c521f541
  16. Aug 23, 2009
    • Benjamin Kramer's avatar
      Try to fix MSVC build after r79846. · c2dbd5d6
      Benjamin Kramer authored
      llvm-svn: 79850
      c2dbd5d6
    • Daniel Dunbar's avatar
      Fix non-determinism in DAGISel emitter. · ced00815
      Daniel Dunbar authored
       - This manifested as non-determinism in the .inc output in rare cases (when two
         distinct patterns ended up being equivalent, which is rather rare). That
         meant the pattern matching was non-deterministic, which could eventually mean
         the code generator selected different instructions based on the arch.
      
       - It's probably worth making the DAGISel ensure a total ordering (or force the
         user to), but the simple fix here is to totally order the Record* maps based
         on a unique ID.
      
       - PR4672, PR4711.
      
      Yay:
      --
      ddunbar@giles:~$ cat ~/llvm.obj.64/lib/Target/*/*.inc | shasum
      d1099ff34b21459a5a3e7021c225c080e6017ece  -
      ddunbar@giles:~$ cat ~/llvm.obj.ppc/lib/Target/*/*.inc | shasum
      d1099ff34b21459a5a3e7021c225c080e6017ece  -
      --
      
      llvm-svn: 79846
      ced00815
    • Chris Lattner's avatar
      Change Pass::print to take a raw ostream instead of std::ostream, · 1362602e
      Chris Lattner authored
      update all code that this affects.
      
      llvm-svn: 79830
      1362602e
    • Chris Lattner's avatar
      remove some DOUTs · 34822f6e
      Chris Lattner authored
      llvm-svn: 79821
      34822f6e
    • Chris Lattner's avatar
      Change raw_fd_ostream to take flags as an optional bitmask · 9e6f1f16
      Chris Lattner authored
      instead of as two bools.  Use this to add a F_Append flag
      which has the obvious behavior.
      
      Other unrelated changes conflated into this patch:
      
      1. REmove EH stuff from llvm-dis and llvm-as, the try blocks
         are dead.
      2. Simplify the filename inference code in llvm-as/llvm-dis,
         because raw_fd_ostream does the right thing with '-'.
      3. Switch machine verifier to use raw_ostream instead of ostream
         (Which is the thing that needed append in the first place).
      
      llvm-svn: 79807
      9e6f1f16
  17. Aug 22, 2009
  18. Aug 17, 2009
  19. Aug 13, 2009
Loading