Skip to content
  1. Mar 11, 2012
  2. Mar 10, 2012
  3. Mar 09, 2012
  4. Mar 08, 2012
  5. Mar 07, 2012
    • 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
    • Andrew Trick's avatar
      misched preparation: modularize schedule printing. · edee68ce
      Andrew Trick authored
      ScheduleDAG will not refer to the scheduled instruction sequence.
      
      llvm-svn: 152205
      edee68ce
    • Andrew Trick's avatar
      misched preparation: modularize schedule verification. · 46a58664
      Andrew Trick authored
      ScheduleDAG will not refer to the scheduled instruction sequence.
      
      llvm-svn: 152204
      46a58664
    • Andrew Trick's avatar
      whitespace · 7c6c41a5
      Andrew Trick authored
      llvm-svn: 152203
      7c6c41a5
    • Andrew Trick's avatar
      Added -view-misched=dags options. · a5f19560
      Andrew Trick authored
      llvm-svn: 152178
      a5f19560
    • Andrew Trick's avatar
      Cleanup in preparation for misched: Move DAG visualization logic. · 1b2324d0
      Andrew Trick authored
      Soon, ScheduleDAG will not refer to the BB.
      
      llvm-svn: 152177
      1b2324d0
Loading