Skip to content
  1. Mar 09, 2012
  2. Mar 08, 2012
  3. Mar 07, 2012
    • Benjamin Kramer's avatar
      Copy the right amount of elements. · 22842f89
      Benjamin Kramer authored
      llvm-svn: 152254
      22842f89
    • Benjamin Kramer's avatar
      SmallPtrSet: Copy all the elements when swapping, not just numelements. · 6e8d4b8e
      Benjamin Kramer authored
      This fixes a build failure in webkit. Copying all elements shouldn't be
      necessary, I'll look out for a better fix soon.
      
      llvm-svn: 152252
      6e8d4b8e
    • Chad Rosier's avatar
      [fast-isel] ARMEmitCmp generates FMSTAT, which transfers the floating-point · 377f1f2d
      Chad Rosier authored
      condition flags to CPSR.  This allows us to simplify SelectCmp.
      Patch by Zonr Chang <zonr.xchg@gmail.com>.
      
      llvm-svn: 152243
      377f1f2d
    • Jakob Stoklund Olesen's avatar
      Fix infinite loop in nested multiclasses. · aa0f752f
      Jakob Stoklund Olesen authored
      Patch by Michael Liao!
      
      llvm-svn: 152232
      aa0f752f
    • Chandler Carruth's avatar
      Try to clarify this comment some. · 636ee38a
      Chandler Carruth authored
      llvm-svn: 152221
      636ee38a
    • Chandler Carruth's avatar
      Remove another outbreak of customized (and completely broken) hashing. · 962152ca
      Chandler Carruth authored
      This one is particularly annoying because the hashing algorithm is
      highly specialized, with a strange "equivalence" definition that subsets
      the fields involved.
      
      Still, this looks at the exact same set of data as the old code, but
      without bitwise or-ing over parts of it and other mixing badness. No
      functionality changed here. I've left a substantial fixme about the fact
      that there is a cleaner and more principled way to do this, but it
      requires making the equality definition actual stable for particular
      types...
      
      llvm-svn: 152218
      962152ca
    • Bill Wendling's avatar
      Where the BranchFolding pass removes a branch then adds another better branch, · 7c5dcb6c
      Bill Wendling authored
      the DebugLoc information can be maintained throughout by grabbing the DebugLoc
      before the RemoveBranch and then passing the result to the InsertBranch.
      Patch by Andrew Stanford-Jason!
      
      llvm-svn: 152212
      7c5dcb6c
    • Andrew Trick's avatar
      Fix cmake · 1a1b54a2
      Andrew Trick authored
      llvm-svn: 152210
      1a1b54a2
    • Andrew Trick's avatar
      comment · f9fa8afd
      Andrew Trick authored
      llvm-svn: 152209
      f9fa8afd
    • Andrew Trick's avatar
      misched preparation: clarify ScheduleDAG and ScheduleDAGInstrs roles. · 60cf03e7
      Andrew Trick authored
      ScheduleDAG is responsible for the DAG: SUnits and SDeps. It provides target hooks for latency computation.
      
      ScheduleDAGInstrs extends ScheduleDAG and defines the current scheduling region in terms of MachineInstr iterators. It has access to the target's scheduling itinerary data. ScheduleDAGInstrs provides the logic for building the ScheduleDAG for the sequence of MachineInstrs in the current region. Target's can implement highly custom schedulers by extending this class.
      
      ScheduleDAGPostRATDList provides the driver and diagnostics for current postRA scheduling. It maintains a current Sequence of scheduled machine instructions and logic for splicing them into the block. During scheduling, it uses the ScheduleHazardRecognizer provided by the target.
      
      Specific changes:
      - Removed driver code from ScheduleDAG. clearDAG is the only interface needed.
      
      - Added enterRegion/exitRegion hooks to ScheduleDAGInstrs to delimit the scope of each scheduling region and associated DAG. They should be used to setup and cleanup any region-specific state in addition to the DAG itself. This is necessary because we reuse the same ScheduleDAG object for the entire function. The target may extend these hooks to do things at regions boundaries, like bundle terminators. The hooks are called even if we decide not to schedule the region. So all instructions in a block are "covered" by these calls.
      
      - Added ScheduleDAGInstrs::begin()/end() public API.
      
      - Moved Sequence into the driver layer, which is specific to the scheduling algorithm.
      
      llvm-svn: 152208
      60cf03e7
    • Andrew Trick's avatar
      ScheduleDAGInstrs comments · 42756e2e
      Andrew Trick authored
      llvm-svn: 152207
      42756e2e
    • Andrew Trick's avatar
      misched preparation: modularize schedule emission. · e932bb77
      Andrew Trick authored
      ScheduleDAG has nothing to do with how the instructions are scheduled.
      
      llvm-svn: 152206
      e932bb77
Loading