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
    • 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
    • Chandler Carruth's avatar
      Switch this code to use hash_combine_range rather than incremental calls · d4ba3eb4
      Chandler Carruth authored
      to hash_combine. One of the interfaces could already do this, and the
      other can just use a small buffer. This is a much more efficient way to
      use the hash_combine interface, although I don't have any particular
      benchmark where this code was hot, so I can't measure much of an impact.
      It at least doesn't slow anything down.
      
      llvm-svn: 152200
      d4ba3eb4
Loading