Skip to content
  1. Jun 20, 2011
    • Jay Foad's avatar
      Remove the AugmentedUse struct. · 5c54d757
      Jay Foad authored
      I don't think the AugmentedUse struct buys us much, either in
      correctness or in ease of use. Ditch it, and simplify Use::getUser() and
      User::allocHungoffUses().
      
      llvm-svn: 133433
      5c54d757
    • Rafael Espindola's avatar
      Re enable 133415 with two fixes · 336e1023
      Rafael Espindola authored
      * Don't introduce a duplicated bb in the CFG
      * When making a branch unconditional, clear the PredCond array so that it
        is really unconditional.
      
      llvm-svn: 133432
      336e1023
    • Duncan Sands's avatar
      Disable the logic added by rafael in commit 133415 to see if it brings the · 406b9be0
      Duncan Sands authored
      dragonegg buildbots back to life.  Original commit message:
      Teach early dup how to duplicate basic blocks with one successor and only phi instructions
      into more complex blocks.
      
      llvm-svn: 133430
      406b9be0
    • Nadav Rotem's avatar
      Fix PromoteIntRes_TRUNCATE: Add support for cases where the · d34ce434
      Nadav Rotem authored
      source vector type is to be split while the target vector is to be promoted.
      (eg: <4 x i64> -> <4 x i8> )
      
      llvm-svn: 133424
      d34ce434
    • Francois Pichet's avatar
      Fix MSVC build. next() function already exists in the MSVC headers. This... · 3f60acad
      Francois Pichet authored
      Fix MSVC build. next() function already exists in the MSVC headers. This create a overload conflict. Make sure we pick up the llvm one.
      
      llvm-svn: 133416
      3f60acad
    • Rafael Espindola's avatar
      Teach early dup how to duplicate basic blocks with one successor and only phi instructions · ef636bff
      Rafael Espindola authored
      into more complex blocks.
      
      llvm-svn: 133415
      ef636bff
    • Chris Lattner's avatar
      Revamp the "ConstantStruct::get" methods. Previously, these were scattered · cc19efaa
      Chris Lattner authored
      all over the place in different styles and variants.  Standardize on two
      preferred entrypoints: one that takes a StructType and ArrayRef, and one that
      takes StructType and varargs.
      
      In cases where there isn't a struct type convenient, we now add a
      ConstantStruct::getAnon method (whose name will make more sense after a few
      more patches land).  
      
      It would be "really really nice" if the ConstantStruct::get and 
      ConstantVector::get methods didn't make temporary std::vectors.
      
      llvm-svn: 133412
      cc19efaa
    • Chris Lattner's avatar
      introduce an isLayoutIdentical() method, which is currently just a pointer · 676a3177
      Chris Lattner authored
      equality check.
      
      llvm-svn: 133409
      676a3177
    • Jakob Stoklund Olesen's avatar
      Add a RegisterTuples class to Target.td and TableGen. · 3bd1b65e
      Jakob Stoklund Olesen authored
      A RegisterTuples instance is used to synthesize super-registers by
      zipping together lists of sub-registers. This is useful for generating
      pseudo-registers representing register sequence constraints like 'two
      consecutive GPRs', or 'an even-odd pair of floating point registers'.
      
      The RegisterTuples def can be used in register set operations when
      building register classes. That is the only way of accessing the
      synthesized super-registers.
      
      For example, the ARM QQ register class of pseudo-registers could have
      been formed like this:
      
        // Form pairs Q0_Q1, Q2_Q3, ...
        def QQPairs : RegisterTuples<[qsub_0, qsub_1],
                                     [(decimate QPR, 2),
                                      (decimate (shl QPR, 1), 2)]>;
      
        def QQ : RegisterClass<..., (add QQPairs)>;
      
      Similarly, pseudo-registers representing '3 consecutive D-regs with
      wraparound' look like:
      
        // Form D0_D1_D2, D1_D2_D3, ..., D30_D31_D0, D31_D0_D1.
        def DSeqTriples : RegisterTuples<[dsub_0, dsub_1, dsub_2],
                                         [(rotl DPR, 0),
                                          (rotl DPR, 1),
                                          (rotl DPR, 2)]>;
      
      TableGen automatically computes aliasing information for the synthesized
      registers.
      
      Register tuples are still somewhat experimental. We still need to see
      how they interact with MC.
      
      llvm-svn: 133407
      3bd1b65e
  2. Jun 19, 2011
  3. Jun 18, 2011
Loading