Skip to content
  1. Jul 12, 2012
    • Jack Carter's avatar
      Patch for Mips direct object generation. · 570ae0b1
      Jack Carter authored
      When WriteFragmentData() case FT_align called
      Asm.getBackend().writeNopData() is called, nothing
      is done since Mips implementation of writeNopData just
      returned "true".
      
      For some reason this has not caused problems in 32 bit
      mode, but in 64 bit mode it caused an assert when processing
      multiple function units.
      
      The test case included will assert without this patch. It
      runs twice with different flags to prevent false positives
      due to changes in code generation over time.
      
      llvm-svn: 160084
      570ae0b1
  2. Jul 11, 2012
  3. Jul 10, 2012
  4. Jul 09, 2012
  5. 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
  6. Jul 06, 2012
  7. Jul 05, 2012
  8. 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
Loading