Skip to content
  1. Sep 30, 2013
    • Arnold Schwaighofer's avatar
      IfConverter: Use TargetSchedule for instruction latencies · d2f96b91
      Arnold Schwaighofer authored
      For targets that have instruction itineraries this means no change. Targets
      that move over to the new schedule model will use be able the new schedule
      module for instruction latencies in the if-converter (the logic is such that if
      there is no itineary we will use the new sched model for the latencies).
      
      Before, we queried "TTI->getInstructionLatency()" for the instruction latency
      and the extra prediction cost. Now, we query the TargetSchedule abstraction for
      the instruction latency and TargetInstrInfo for the extra predictation cost. The
      TargetSchedule abstraction will internally call "TTI->getInstructionLatency" if
      an itinerary exists, otherwise it will use the new schedule model.
      
      ATTENTION: Out of tree targets!
      
      (I will also send out an email later to LLVMDev)
      
      This means, if your target implements
      
       unsigned getInstrLatency(const InstrItineraryData *ItinData,
                                const MachineInstr *MI,
                                unsigned *PredCost);
      
      and returns a value for "PredCost", you now also need to implement
      
       unsigned getPredictationCost(const MachineInstr *MI);
      
      (if your target uses the IfConversion.cpp pass)
      
      radar://15077010
      
      llvm-svn: 191671
      d2f96b91
    • Rafael Espindola's avatar
      Enable building LTO on WIN32. · e693181c
      Rafael Espindola authored
      Enable building the LTO library (.lib and.dll) and llvm-lto.exe on Windows with
      MSVC and Mingw as well as re-enabling the associated test.
      
      Patch by Greg Bedwell!
      
      llvm-svn: 191670
      e693181c
    • Joey Gouly's avatar
      Fix a bug in InstCombine where it attempted to cast a Value* to an Instruction* · d51a35c6
      Joey Gouly authored
      when it was actually a Constant*.
      
      There are quite a few other casts to Instruction that might have the same problem,
      but this is the only one I have a test case for.
      
      llvm-svn: 191668
      d51a35c6
    • Tilmann Scheller's avatar
      [ARM] Assembler: Add more negative tests for ARM LDRD. · 38c4ef68
      Tilmann Scheller authored
      llvm-svn: 191664
      38c4ef68
    • Richard Sandiford's avatar
      [SystemZ] Revert r191661: Add definitions of LFH and STFH · a25f268c
      Richard Sandiford authored
      For some reason, adding definitions for these load and store
      instructions changed whether some of the build bots matched
      comparisons as signed or unsigned.
      
      llvm-svn: 191663
      a25f268c
    • Richard Sandiford's avatar
      [SystemZ] Add definitions of LFH and STFH · d30ac3a1
      Richard Sandiford authored
      llvm-svn: 191661
      d30ac3a1
    • Richard Sandiford's avatar
      [SystemZ] Add GRH32 for the high word of a GR64 · f9496060
      Richard Sandiford authored
      The only thing this does on its own is make the definitions of RISB[HL]G
      a bit more precise.  Those instructions are only used by the MC layer at
      the moment, so no behavioral change is intended.  The class is needed by
      later patches though.
      
      llvm-svn: 191660
      f9496060
    • Richard Sandiford's avatar
      [SystemZ] Rename subregs and add subreg_h32 · 87a44364
      Richard Sandiford authored
      Use subreg_hNN and subreg_lNN for the high and low NN bits of a register.
      List the low registers first, so that subreg_l32 also means the low 32
      bits of a 128-bit register.
      
      Floats are stored in the upper 32 bits of a 64-bit register, so they
      should use subreg_h32 rather than subreg_l32.
      
      No behavioral change intended.
      
      llvm-svn: 191659
      87a44364
    • Daniel Sanders's avatar
      [mips] Fix a broken link to mips.com in the documentation. · cc0a056b
      Daniel Sanders authored
      It now points to the equivalent page on imgtec.com
      
      llvm-svn: 191658
      cc0a056b
    • Richard Sandiford's avatar
      [SystemZ] Add change missing from previous commit · ddec3e42
      Richard Sandiford authored
      llvm-svn: 191656
      ddec3e42
    • Richard Sandiford's avatar
      [SystemZ] Rename 32-bit GPR registers · 7789b082
      Richard Sandiford authored
      I'm about to add support for high-word operations, so it seemed better
      for the low-word registers to have names like R0L rather than R0W.
      No behavioral change intended.
      
      llvm-svn: 191655
      7789b082
    • Craig Topper's avatar
      Filter out repeated sections from the X86 disassembler modRMTable. Saves about... · 009de601
      Craig Topper authored
      Filter out repeated sections from the X86 disassembler modRMTable. Saves about ~43K from a released build. Unfortunately the disassembler tables are still upwards of 800K.
      
      llvm-svn: 191652
      009de601
    • Craig Topper's avatar
      Add a few more FMA4 disassembler test cases to match the scalar set with... · 93a3d597
      Craig Topper authored
      Add a few more FMA4 disassembler test cases to match the scalar set with regards to combinations of L and W-bits.
      
      llvm-svn: 191650
      93a3d597
    • Craig Topper's avatar
      Various x86 disassembler fixes. · ed59dd34
      Craig Topper authored
      Add VEX_LIG to scalar FMA4 instructions.
      Use VEX_LIG in some of the inheriting checks in disassembler table generator.
      Make use of VEX_L_W, VEX_L_W_XS, VEX_L_W_XD contexts.
      Don't let VEX_L_W, VEX_L_W_XS, VEX_L_W_XD, VEX_L_W_OPSIZE inherit from their non-L forms unless VEX_LIG is set.
      Let VEX_L_W, VEX_L_W_XS, VEX_L_W_XD, VEX_L_W_OPSIZE inherit from all of their non-L or non-W cases.
      Increase ranking on VEX_L_W, VEX_L_W_XS, VEX_L_W_XD, VEX_L_W_OPSIZE so they get chosen over non-L/non-W forms.
      
      llvm-svn: 191649
      ed59dd34
  2. Sep 29, 2013
  3. Sep 28, 2013
Loading