Skip to content
  1. Jul 11, 2012
  2. Jul 10, 2012
  3. Jul 09, 2012
  4. 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
    • Manman Ren's avatar
      X86: Fix optimizeCompare to correctly check safe condition. · bb360740
      Manman Ren authored
      It is safe if EFLAGS is killed or re-defined.
      When we are done with the basic block, check whether EFLAGS is live-out.
      Do not optimize away cmp if EFLAGS is live-out.
      
      llvm-svn: 159888
      bb360740
    • Chad Rosier's avatar
      Fix the naming of ensureAlignment. Per the coding standard function names · 73b02825
      Chad Rosier authored
      should be camel case, and start with a lower case letter.
      
      llvm-svn: 159877
      73b02825
  5. Jul 06, 2012
  6. Jul 05, 2012
  7. Jul 04, 2012
    • Jakob Stoklund Olesen's avatar
      Ensure CopyToReg nodes are always glued to the call instruction. · 2dee8124
      Jakob Stoklund Olesen authored
      The CopyToReg nodes that set up the argument registers before a call
      must be glued to the call instruction. Otherwise, the scheduler may emit
      the physreg copies long before the call, causing long live ranges for
      the fixed registers.
      
      Besides disabling good register allocation, that can also expose
      problems when EmitInstrWithCustomInserter() splits a basic block during
      the live range of a physreg.
      
      llvm-svn: 159721
      2dee8124
    • Jakob Stoklund Olesen's avatar
      Add early if-conversion support to X86. · 49e4d4b3
      Jakob Stoklund Olesen authored
      Implement the TII hooks needed by EarlyIfConversion to create cmov
      instructions and estimate their latency.
      
      Early if-conversion is still not enabled by default.
      
      llvm-svn: 159695
      49e4d4b3
Loading