Skip to content
  1. Jun 29, 2011
  2. Jun 28, 2011
  3. Jun 27, 2011
  4. Jun 25, 2011
  5. Jun 24, 2011
    • Jim Grosbach's avatar
      ARM movw/movt fixups need to mask the high bits. · 6629b574
      Jim Grosbach authored
      The fixup value comes in as the whole 32-bit value, so for the lo16 fixup,
      the upper bits need to be masked off. Previously we assumed the masking had
      already been done and asserted.
      
      rdar://9635991
      
      llvm-svn: 133818
      6629b574
    • Chad Rosier's avatar
      The Neon VCVT (between floating-point and fixed-point, Advanced SIMD) · fa8d8932
      Chad Rosier authored
      instructions can be used to match combinations of multiply/divide and VCVT 
      (between floating-point and integer, Advanced SIMD).  Basically the VCVT 
      immediate operand that specifies the number of fraction bits corresponds to a 
      floating-point multiply or divide by the corresponding power of 2.
      
      For example, VCVT (floating-point to fixed-point, Advanced SIMD) can replace a 
      combination of VMUL and VCVT (floating-point to integer) as follows:
      
      Example (assume d17 = <float 8.000000e+00, float 8.000000e+00>):
        vmul.f32        d16, d17, d16
        vcvt.s32.f32    d16, d16
      becomes:
        vcvt.s32.f32    d16, d16, #3
      
      Similarly, VCVT (fixed-point to floating-point, Advanced SIMD) can replace a 
      combinations of VCVT (integer to floating-point) and VDIV as follows:
      
      Example (assume d17 = <float 8.000000e+00, float 8.000000e+00>):
        vcvt.f32.s32    d16, d16
        vdiv.f32        d16, d17, d16
      becomes:
        vcvt.f32.s32    d16, d16, #3
      
      llvm-svn: 133813
      fa8d8932
    • Evan Cheng's avatar
      Starting to refactor Target to separate out code that's needed to fully describe · 24753317
      Evan Cheng authored
      target machine from those that are only needed by codegen. The goal is to
      sink the essential target description into MC layer so we can start building
      MC based tools without needing to link in the entire codegen.
      
      First step is to refactor TargetRegisterInfo. This patch added a base class
      MCRegisterInfo which TargetRegisterInfo is derived from. Changed TableGen to
      separate register description from the rest of the stuff.
      
      llvm-svn: 133782
      24753317
  6. Jun 23, 2011
  7. Jun 22, 2011
  8. Jun 21, 2011
  9. Jun 18, 2011
  10. Jun 17, 2011
  11. Jun 16, 2011
    • Owen Anderson's avatar
      Change the REG_SEQUENCE SDNode to take an explict register class ID as its... · 5fc8b77f
      Owen Anderson authored
      Change the REG_SEQUENCE SDNode to take an explict register class ID as its first operand.  This operand is lowered away by the time we reach MachineInstrs, so the actual register-allocation handling of them doesn't need to change.
      This is intended to support using REG_SEQUENCE SDNode's with type MVT::untyped, and is part of the long road to eliminating some of the hacks we currently use to support register pairs and other strange constraints, particularly on ARM NEON.
      
      llvm-svn: 133178
      5fc8b77f
    • Bruno Cardoso Lopes's avatar
      Mark ldrexd/strexd w/ volatile memory by default · d66ab9ea
      Bruno Cardoso Lopes authored
      llvm-svn: 133175
      d66ab9ea
    • Chad Rosier's avatar
      Revision r128665 added an optimization to make use of NEON multiplier · 2730162b
      Chad Rosier authored
      accumulator forwarding.  Specifically (from SVN log entry):
      
      Distribute (A + B) * C to (A * C) + (B * C) to make use of NEON multiplier
      accumulator forwarding:
      vadd d3, d0, d1
      vmul d3, d3, d2
      =>
      vmul d3, d0, d2
      vmla d3, d1, d2
      
      Make sure it catches cases where operand 1 is add/fadd/sub/fsub, which was
      intended in the original revision.
      
      llvm-svn: 133127
      2730162b
    • Jakob Stoklund Olesen's avatar
      Use set operations instead of plain lists to enumerate register classes. · 99f35eab
      Jakob Stoklund Olesen authored
      This simplifies many of the target description files since it is common
      for register classes to be related or contain sequences of numbered
      registers.
      
      I have verified that this doesn't change the files generated by TableGen
      for ARM and X86. It alters the allocation order of MBlaze GPR and Mips
      FGR32 registers, but I believe the change is benign.
      
      llvm-svn: 133105
      99f35eab
  12. Jun 15, 2011
Loading