Skip to content
  1. Jun 21, 2013
  2. Jun 15, 2013
  3. May 07, 2013
  4. Mar 28, 2013
  5. Mar 26, 2013
    • Jakob Stoklund Olesen's avatar
      Enable SandyBridgeModel for all modern Intel P6 descendants. · 1ac7e662
      Jakob Stoklund Olesen authored
      All Intel CPUs since Yonah look a lot alike, at least at the granularity
      of the scheduling models. We can add more accurate models for
      processors that aren't Sandy Bridge if required. Haswell will probably
      need its own.
      
      The Atom processor and anything based on NetBurst is completely
      different. So are the non-Intel chips.
      
      llvm-svn: 178080
      1ac7e662
    • Jakob Stoklund Olesen's avatar
      Remove IIC_DEFAULT from X86Schedule.td · 4d39e81f
      Jakob Stoklund Olesen authored
      All the instructions tagged with IIC_DEFAULT had nothing in common, and
      we already have a NoItineraries class to represent untagged
      instructions.
      
      llvm-svn: 177937
      4d39e81f
  6. Mar 21, 2013
  7. Mar 19, 2013
  8. Mar 16, 2013
    • Jakob Stoklund Olesen's avatar
      Define more SchedWrites for annotating X86 instructions. · 63bff2eb
      Jakob Stoklund Olesen authored
      Since almost all X86 instructions can fold loads, use a multiclass to
      define register/memory pairs of SchedWrites.
      
      An X86FoldableSchedWrite represents the register version of an
      instruction. It holds a reference to the SchedWrite to use when the
      instruction folds a load.
      
      This will be used inside multiclasses that define rr and rm instruction
      versions together.
      
      llvm-svn: 177210
      63bff2eb
  9. Mar 14, 2013
    • Jakob Stoklund Olesen's avatar
      Prepare for adding InstrSchedModel annotations to X86 instructions. · 71236682
      Jakob Stoklund Olesen authored
      The new InstrSchedModel is easier to use than the instruction
      itineraries. It will be used to model instruction latency and throughput
      in modern Intel microarchitectures like Sandy Bridge.
      
      InstrSchedModel should be able to coexist with instruction itinerary
      classes, but for cleanliness we should switch the Atom processor model
      to the new InstrSchedModel as well.
      
      llvm-svn: 177122
      71236682
  10. Jan 09, 2013
    • Andrew Trick's avatar
      MIsched: add an ILP window property to machine model. · 9f0b95f2
      Andrew Trick authored
      This was an experimental option, but needs to be defined
      per-target. e.g. PPC A2 needs to aggressively hide latency.
      
      I converted some in-order scheduling tests to A2. Hal is working on
      more test cases.
      
      llvm-svn: 171946
      9f0b95f2
  11. Jul 07, 2012
    • Andrew Trick's avatar
      I'm introducing a new machine model to simultaneously allow simple · 87255e34
      Andrew Trick authored
      subtarget CPU descriptions and support new features of
      MachineScheduler.
      
      MachineModel has three categories of data:
      1) Basic properties for coarse grained instruction cost model.
      2) Scheduler Read/Write resources for simple per-opcode and operand cost model (TBD).
      3) Instruction itineraties for detailed per-cycle reservation tables.
      
      These will all live side-by-side. Any subtarget can use any
      combination of them. Instruction itineraries will not change in the
      near term. In the long run, I expect them to only be relevant for
      in-order VLIW machines that have complex contraints and require a
      precise scheduling/bundling model. Once itineraries are only actively
      used by VLIW-ish targets, they could be replaced by something more
      appropriate for those targets.
      
      This tablegen backend rewrite sets things up for introducing
      MachineModel type #2: per opcode/operand cost model.
      
      llvm-svn: 159891
      87255e34
  12. Jun 05, 2012
  13. May 11, 2012
  14. May 10, 2012
  15. May 04, 2012
  16. May 02, 2012
  17. Mar 19, 2012
  18. Feb 29, 2012
  19. Feb 28, 2012
    • Preston Gurd's avatar
      · a49ef92a
      Preston Gurd authored
      This patch adds instruction latencies for the SSE instructions
      to the instruction scheduler for the Intel Atom.
      
      llvm-svn: 151590
      a49ef92a
  20. Feb 18, 2012
  21. Feb 02, 2012
    • Andrew Trick's avatar
      Instruction scheduling itinerary for Intel Atom. · 8523b16f
      Andrew Trick authored
      Adds an instruction itinerary to all x86 instructions, giving each a default latency of 1, using the InstrItinClass IIC_DEFAULT.
      
      Sets specific latencies for Atom for the instructions in files X86InstrCMovSetCC.td, X86InstrArithmetic.td, X86InstrControl.td, and X86InstrShiftRotate.td. The Atom latencies for the remainder of the x86 instructions will be set in subsequent patches.
      
      Adds a test to verify that the scheduler is working.
      
      Also changes the scheduling preference to "Hybrid" for i386 Atom, while leaving x86_64 as ILP.
      
      Patch by Preston Gurd!
      
      llvm-svn: 149558
      8523b16f
Loading