Skip to content
  1. Nov 30, 2013
  2. Nov 29, 2013
    • Reed Kotler's avatar
      Part 1 of 3 patches that completes very long conditional branches · ad450f23
      Reed Kotler authored
      in constant islands for Mips16. We introdcuce JalB16 as a synomnym
      for Jal16. It makes it easier to read and is also necessary because
      Jal16 is a call instruction but JalB16 is being used as a branch.
      Various parts of LLVM will not work properly even in this late stage of
      the backend if we use what was declared as a call instruction to function
      as a branch. For one, basic block labels may not get emitted in some
      situations. 
      
      llvm-svn: 195968
      ad450f23
    • Zoran Jovanovic's avatar
      Revert revision 195965. · 1bc3cce0
      Zoran Jovanovic authored
      llvm-svn: 195967
      1bc3cce0
    • Zoran Jovanovic's avatar
      Fixed issue with microMIPS long branch. · ff2a40ce
      Zoran Jovanovic authored
      llvm-svn: 195965
      ff2a40ce
    • Hal Finkel's avatar
      Adjust PPC A2 input operand latencies · 1df3205e
      Hal Finkel authored
      On the PPC A2, instructions are only issued after their input operands are
      ready. Model this by specifying that input operands are read at dispatch (0
      cycles after issue). This changes all input operand latencies from 1 to 0.
      
      Significant test-suite performance changes (these are 99.5% confidence
      intervals on 6 runs for both before and after):
      
      speedups:
      MultiSource/Benchmarks/sim/sim
      	-1.21915% +/- 0.175063%
      MultiSource/Benchmarks/TSVC/LinearDependence-flt/LinearDependence-flt
      	-1.23946% +/- 1.05133%
      SingleSource/Benchmarks/Misc/flops-2
      	-1.24237% +/- 0.681362%
      MultiSource/Applications/JM/lencod/lencod
      	-1.33992% +/- 0.757498%
      MultiSource/Benchmarks/TSVC/InductionVariable-flt/InductionVariable-flt
      	-1.51802% +/- 1.21468%
      MultiSource/Benchmarks/TSVC/GlobalDataFlow-flt/GlobalDataFlow-flt
      	-2.18818% +/- 1.28605%
      MultiSource/Benchmarks/TSVC/Packing-flt/Packing-flt
      	-2.21977% +/- 1.19499%
      SingleSource/Benchmarks/BenchmarkGame/spectral-norm
      	-2.29822% +/- 0.671871%
      MultiSource/Benchmarks/TSVC/Packing-dbl/Packing-dbl
      	-2.40975% +/- 0.355931%
      SingleSource/Benchmarks/Misc/fp-convert
      	-2.41899% +/- 1.04751%
      MultiSource/Benchmarks/TSVC/Searching-dbl/Searching-dbl
      	-2.50349% +/- 0.126765%
      SingleSource/Benchmarks/Misc/flops-3
      	-3.00214% +/- 0.700795%
      MultiSource/Benchmarks/TSVC/LoopRestructuring-flt/LoopRestructuring-flt
      	-3.56995% +/- 3.2929%
      MultiSource/Applications/sgefa/sgefa
      	-4.24908% +/- 2.00413%
      MultiSource/Benchmarks/ASC_Sequoia/IRSmk/IRSmk
      	-18.1294% +/- 3.96489%
      
      regressions:
      MultiSource/Benchmarks/TSVC/Reductions-dbl/Reductions-dbl
      	1.03249% +/- 0.178547%
      MultiSource/Applications/hexxagon/hexxagon
      	1.16597% +/- 0.285235%
      MultiSource/Benchmarks/TSVC/IndirectAddressing-flt/IndirectAddressing-flt
      	1.39576% +/- 1.07855%
      SingleSource/Benchmarks/Misc-C++/stepanov_v1p2
      	1.71539% +/- 0.173182%
      MultiSource/Benchmarks/Fhourstones-3.1/fhourstones3.1
      	1.90013% +/- 0.866472%
      MultiSource/Benchmarks/TSVC/Recurrences-dbl/Recurrences-dbl
      	2.39854% +/- 1.05914%
      MultiSource/Benchmarks/TSVC/ControlFlow-dbl/ControlFlow-dbl
      	2.4402% +/- 0.817904%
      MultiSource/Benchmarks/TSVC/LoopRestructuring-dbl/LoopRestructuring-dbl
      	5.87997% +/- 3.3172%
      MultiSource/Benchmarks/Trimaran/netbench-crc/netbench-crc
      	9.02643% +/- 5.79591%
      MultiSource/Benchmarks/VersaBench/bmm/bmm
      	10.3517% +/- 1.227%
      
      Obviously, there are data points on both sides of this; but I think, overall,
      this supports making the change.
      
      llvm-svn: 195951
      1df3205e
    • Lang Hames's avatar
      Teach LocalStackSlotAllocation that stackmaps/patchpoints don't have range · 7468daad
      Lang Hames authored
      constraints on their frame offsets.
      
      llvm-svn: 195950
      7468daad
    • Hal Finkel's avatar
      Create a PPC440 SchedMachineModel · 5a7162f3
      Hal Finkel authored
      Some of the older PPC processor definitions don't have associated
      SchedMachineModels; correct this for the PPC440.
      
      llvm-svn: 195949
      5a7162f3
    • Hal Finkel's avatar
      Fixup PPC440 load/store operand latencies · 4035e8d8
      Hal Finkel authored
      The operand latencies for loads and stores in the PPC440 itinerary were wrong
      (the store operands are all inputs, and the "with update" (pre-increment)
      instructions need a latency for the additional output).
      
      llvm-svn: 195948
      4035e8d8
    • Hal Finkel's avatar
      Adjust PPC440 operand latencies · a10bd1d2
      Hal Finkel authored
      The operand latencies for the PPC440 should be specified relative to dispatch,
      not relative to the initial fetch-and-decode stages. Because most instructions
      (ignoring bypass) wait in dispatch until their operands are ready, this is
      modeled as reading input operands "at dispatch" (0 cycles after issue), and so
      every input and output operand has 4 cycles subtracted from it.
      
      This could alter scheduling slightly, but I don't expect a large effect.
      
      llvm-svn: 195947
      a10bd1d2
    • Hal Finkel's avatar
      Don't model the fetch and decode units for the PPC440 · dd063699
      Hal Finkel authored
      Modeling the fetch and decode units in the PPC440 itinerary does not add
      anything to the hazard detection capability (and so modeling them just wastes
      compile time).
      
      No functionality change intended.
      
      llvm-svn: 195946
      dd063699
    • Lang Hames's avatar
      Remove unused variable from r195944. · c8a73af3
      Lang Hames authored
      llvm-svn: 195945
      c8a73af3
    • Lang Hames's avatar
      Refactor a lot of patchpoint/stackmap related code to simplify and make it · 39609996
      Lang Hames authored
      target independent.
      
      Most of the x86 specific stackmap/patchpoint handling was necessitated by the
      use of the native address-mode format for frame index operands. PEI has now
      been modified to treat stackmap/patchpoint similarly to DEBUG_INFO, allowing
      us to use a simple, platform independent register/offset pair for frame
      indexes on stackmap/patchpoints.
      
      Notes:
        - Folding is now platform independent and automatically supported.
        - Emiting patchpoints with direct memory references now just involves calling
          the TargetLoweringBase::emitPatchPoint utility method from the target's
          XXXTargetLowering::EmitInstrWithCustomInserter method. (See
          X86TargetLowering for an example).
        - No more ugly platform-specific operand parsers.
      
      This patch shouldn't change the generated output for X86. 
      
      llvm-svn: 195944
      39609996
    • Hao Liu's avatar
      AArch64: The pattern match should check the range of the immediate value. · ba38eee8
      Hao Liu authored
      Or we can generate some illegal instructions.
      E.g. shrn2 v0.4s, v1.2d, #35. The legal range should be in [1, 16].
      
      llvm-svn: 195941
      ba38eee8
    • Jiangning Liu's avatar
      Add missing pattern for supporting intrinsic function vbsl_f64 with · c429c00f
      Jiangning Liu authored
      argument double floating point.
      
      llvm-svn: 195938
      c429c00f
    • Kevin Qin's avatar
      [AArch64 NEON]Fix a assertion failure when disassemble SHLL instruction. · 337cfcc8
      Kevin Qin authored
      llvm-svn: 195936
      337cfcc8
  3. Nov 28, 2013
  4. Nov 27, 2013
Loading